【Unity Shader学习笔记】Unity透明效果-透明度测试与透明度混合

Java78

1、基本概念

1.1、基本概念

在实时渲染中实现透明效果,需要在渲染模型时控制它的透明通道(Alpha Channel)。

透明度为1代表该像素是完全不透明的;0代表完全透明。

Unity中可以使用两种方式得到透明效果: 透明度测试(alpha test,无法得到真正的透明效果)、 透明度混合(alpha blending)。

对于不透明物体, 深度缓冲(depth buffer)就能正确判断物体的遮挡关系。

  • 透明度测试:一个片元的透明度达不到某个标准,那么就会被舍弃;否则就按不透明物体进行处理。因此,透明度测试不需要关闭深度写入。

【Unity Shader学习笔记】Unity透明效果-透明度测试与透明度混合

  • 透明度混合:使用当前片元作为混合因子,与已经存储在颜色缓冲区中的颜色进行混合。透明度混合需要关闭深度写入(即离镜头更近的片元不会覆盖原有的同一位置的片元)。因此我们需要小心物体的渲染顺序。但是仍然可以进行深度测试。

【Unity Shader学习笔记】Unity透明效果-透明度测试与透明度混合

输入验证码查看隐藏内容

扫描二维码关注本站微信公众号 Johngo学长
或者在微信里搜索 Johngo学长
回复 svip 获取验证码
wechat Johngo学长