17.Shader中的深度写入

  1. 17.Shader中的深度写入
    1. 17.1 题目
    2. 17.2 深入解析
    3. 17.3 答题示例
    4. 17.4 关键词联想

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

×

喜欢就点赞,疼爱就打赏