《Unity着色器和屏幕特效开发秘笈》—— 1.6 创建Half Lambert光照模型-阿里云开发者社区

开发者社区> 华章出版社> 正文
登录阅读全文

《Unity着色器和屏幕特效开发秘笈》—— 1.6 创建Half Lambert光照模型

简介:

本节书摘来自华章出版社《Unity着色器和屏幕特效开发秘笈》一 书中的第1章,第1.6节,作者:(美)Kenny Lammers,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

1.6 创建Half Lambert光照模型

Half Lambert(半兰伯特)是由Valve公司提出的技术,是一种用于在低光照区域照亮物体的技术。它基本上提高了材质和物体表面周围的漫反射光照。
“Half Lambert”光照模型是一项最早应用于原版《半条命》游戏的技术。它用来防止某个物体的背光面丢失形状并且显得太过平面化。这个技术是完全没有基于任何物理原理的,而仅仅是一种感性的视觉增强。它是广义光照模型的一个例子。

1.6.1 如何操作

首先使用我们在上一节创建的基础着色器,让我们通过如下步骤来更新漫反射计算:
将漫反射计算结果乘以0.5,然后,将下面的代码加入至光照函数里:
screenshot

下图展示了在着色器的光照模型中加入Half Lambert技术之后的效果:
screenshot

1.6.2 实现原理

Half Lambert技术实现的原理是把漫反射光照值的范围分成两半,然后加上0.5。基本意思就是如果光照值是1,对半开后就是0.5,然后再加0.5回去,将会再得到1。如果你对0进行操作,那么你会得到0.5,因此我们将0~1之间的所有值重新映射到区间0.5~1。
下图展示了漫反射的值经过Half Lambert计算后的函数曲线图。

screenshot

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享: