天天看点

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

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

3.11 禁用材质剔除

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

3.11.1 准备工作

3.11.2 操作步骤

请按照下面的步骤禁止材质剔除:

1)打开带有unity内置shaders源码的压缩包,解压defaultresources文件夹中名为alphatest-bumpspec.shader的文件到桌面上。

2)复制alphatest-bumpspec.shader 重命名为 alphatest-doublesided. shader,并打开。

3)把第一行修改成: shader "transparent/cutout/doublesided" {。

4)添加下面的代码:

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

3.11.3 实现原理

cull off 命令让unity渲染物体的前后表面,虽然对于cutout shader来说用着还行,但用透明着色器的其他类型可能导致不可预料的结果。

3.11.4 更多内容

这里有一些附加的资源和解决方案:

学习更多关于shaders的知识

通过编辑对象的geometry解决问题

可以通过复制3d模型的表面得到类似的结果,然后翻转新几何体的法线。

继续阅读