17.Shader中的深度写入
17.1 题目
Unity Shader中,某片元通过了深度测试,但是没有开启深度写入,该片元的颜色信息是否写入到颜色缓冲区?
17.2 深入解析
该片元的颜色信息会写入到颜色缓冲区。因为深度写入和颜色写入是两个独立的操作。只要片元通过了深度测试,不管是否写入深度缓冲区,其颜色信息都会写入到颜色缓冲区中。
在Shader中,深度测试和深度写入是可以分别设置的。即使没有开启深度写入,只要片元通过了深度测试,其颜色信息就会被写入到颜色缓冲区,影响最终渲染结果。
17.3 答题示例
“在 Unity Shader 中,深度测试和深度写入是独立的流程:即便
ZWrite Off(关闭深度写入),只要片元通过了深度测试,它的颜色依然会写入颜色缓冲区。深度缓冲区不会更新,但屏幕上仍可见该片元的渲染结果。”
17.4 关键词联想
- 深度测试(ZTest)
- 深度写入(ZWrite)
- 颜色缓冲区(Color Buffer)
- 片元通过测试
- 独立操作
- 半透明材质常用
- ShaderLab 设置
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 785293209@qq.com