《Unity开发实战》——3.11节禁用材质剔除

简介:

本节书摘来自华章社区《Unity开发实战》一书中的第3章,第3.11节禁用材质剔除,作者 (爱尔兰)Matt Smith (巴西)Chico Queiroz,更多章节内容可以访问云栖社区“华章社区”公众号查看

3.11 禁用材质剔除
当创建一个透明或半透明对象的时候,可能想看它的内部表面。但是默认情况下Unity的透明着色器让其不可见。本节将编辑Unity中的内置透明着色器以让其对用户可见。

3.11.1 准备工作
请从网址 http://unity3d.com/unity/download/archive下载Unity的内置shaders的源码以便完成本节的学习, 还需要一个带有透明通道的纹理,在文件夹0423_03_10中可以找到名为grid.tga的图片。

3.11.2 操作步骤
请按照下面的步骤禁止材质剔除:
1)打开带有Unity内置shaders源码的压缩包,解压DefaultResources文件夹中名为AlphaTest-BumpSpec.shader的文件到桌面上。
2)复制AlphaTest-BumpSpec.shader 重命名为 AlphaTest-DoubleSided. Shader,并打开。
3)把第一行修改成: Shader "Transparent/Cutout/DoubleSided" {。
4)添加下面的代码:


6648ddc1ebe7b3735149b7d0c799c90648da1509


23b16a9ba8b9e1e896726f42d854d3d33dd3825d

3.11.3 实现原理
Cull Off 命令让Unity渲染物体的前后表面,虽然对于Cutout shader来说用着还行,但用透明着色器的其他类型可能导致不可预料的结果。

3.11.4 更多内容
这里有一些附加的资源和解决方案:

  1. 学习更多关于shaders的知识
    Unity的文档中有几篇关于shader编程的文章,链接为http://docs.unity3d.com/Documentation/ Components/ SL-Reference.html。
  2. 通过编辑对象的geometry解决问题
    可以通过复制3D模型的表面得到类似的结果,然后翻转新几何体的法线。
相关文章
|
8月前
|
存储 编译器 图形学
使用Unity在材质球上实现绘画:详细解释每一行Shader代码!
使用Unity在材质球上实现绘画:详细解释每一行Shader代码!
102 0
|
8月前
|
存储 编译器 图形学
使用Unity在材质球上实现绘画:详细解释每一行Shader代码!
使用Unity在材质球上实现绘画:详细解释每一行Shader代码!
104 0
|
图形学 机器人
带你读《Unity游戏开发(原书第3版)》之三:模型、材质和纹理
本书主要介绍Unity2018的使用和游戏开发流程中涉及的各种知识。每一章的结构特别清晰,先综述该章要介绍的内容,然后一步步深入讲解,中间穿插着很多动手做的实践操作,可以让读者加深对某个概念、方法的理解,每章的最后还有一个小测验和一个稍微大一点的实践练习,用于巩固该章的学习内容。