Unity Shader入门精要 第八章

  1. 1. 8.透明效果
  2. 2. 8.0
  3. 3. 8.1
  4. 4. 8.2 Unity Shader的渲染顺序
  5. 5. 8.3 透明度测试
  6. 6. 8.4 透明度混合
  7. 7. 8.5 开启深度写入的半透明效果
  8. 8. 8.6 ShaderLab的混合命令
  9. 9. 8.6.0
  10. 10. 8.6.1 混合等式和参数
  11. 11. 8.6.2 混合操作
  12. 12. 8.7 双面渲染的透明效果

8.透明效果


8.0

  • 深度缓冲:在实时渲染中,深度缓冲是用于解决可见性问题的,它可以决定哪个物体的哪个部分会被渲染在前面,哪些物体会被遮挡。它的基本思想是,根据深度缓冲的值来判断该片元距离摄像机的距离,当渲染一个片元时,需要把它的深度值和已经存储在深度缓冲中的值进行比较(开启深度测试的前提下),如果它的值距离摄像机更远,说明这个片元不应该被渲染到屏幕上,因为有物体遮挡住了它;否则这个片元应该覆盖掉颜色缓冲中的像素值,并把它的深度值更新到深度缓冲中

8.1

8.2 Unity Shader的渲染顺序

8.3 透明度测试





8.4 透明度混合




8.5 开启深度写入的半透明效果


  • 开启深度写入造成的渲染错误

    ColorMask 0:该Pass不写入任何颜色通道,即不会输出任何颜色

8.6 ShaderLab的混合命令

8.6.0

8.6.1 混合等式和参数


8.6.2 混合操作









8.7 双面渲染的透明效果