晓的博客

shader入门基础-复杂光照二

光照衰减 Unity 使用一张纹理作为查找表来在片原着色器中计算逐像素光照的衰减。 优点 计算衰减不依赖数学公式的复杂性,只需要使用一个参数做纹理采样。 缺点 需要预处理得到采样纹理,而且纹理的大小也会影响到衰减的精度。 不直观,不方便,一旦把数据存储到查找表中,无法使用其他数学公式计算衰减。 用于光照衰减的纹理 Unity 在内部使用了一张名为_Light...

shader入门基础-透明效果四

开启深度写入的透明效果 由于关闭深度写入可能造成错误排序 解决方案:使用两个 pass 来渲染模型 第一个 pass 开启深度写入,但不输出颜色,目的仅仅是把该模型深度值写入到深度缓冲中。 第二个 pass 进行正常的透明度混合,由于上一个 pass 已经得到了逐像素的正确深度信息,该 pass 就可以额按照像素级别 的深度排序结果进行透明渲染。 缺点:多使用一个 pass 会对性能...

shader入门基础-透明效果三

本文内容主要参考 《Unity shader 入门精要》一书,旨在总结所学知识与加深个人理解 透明度混合 这种方法可以得到真正的半透明效果,它会使用当前片元的透明度作为混合因子,与已经存储在颜色缓冲中的颜色进行混合,得到新的颜色。 但是透明度混合需要关闭深度写入,这使得我们要非常小心物体的渲染顺序。 混合就和两个操作数有关 源颜色(source color), 目标颜色(destinat...