Hello . 大家好,今天给大家带来从节点到代码分析光照模型“半兰伯特+Ramp”。
公式详解
这个是比较基础的光照模型,通过它,我们可以理解漫反射是怎么形成的,从而引入其他类型的光照模型和Rmap映射
我们先来回忆一下兰伯特公式:
上图公式可以得出,我们想要求出Cdiffuse,需要知道四个值
分别为:
Clight= 光源颜色
Mdiffuse= 材质的漫反射颜色
N= 表面法线
L= 光源方向的单位矢量
MAX为钳制值不可以超过1
由此我们引入我们再来看一下兰伯特光照模型的变种半兰伯特
由上图曲线得知,半兰伯特模型是在兰伯特的基础上乘0.5+0.5后得出的,就会得出一个背面不会一片死黑的光照模型
公式如上,可以回忆一下数学老师讲的图像
以下为节点实现方式:
基本思路就是套公式为主,通过World Light Dir获取到世界空间光的方向,获取到世界法线后点积,然后乘0.5+0.5
然后我这里拓展了一下,讲点积后的结果和灯光信息相乘,获得灯光颜色和强度后我们转到片源内计算,以便获得锯齿不是很明显的过渡(逐像素光照)
然后将光照模型传值给Ramp的UV,如下图,RampSkin是一个固定贴图,常用于配合半兰伯特渲染手游的角色。他是一个对比渐变类型的贴图,可以模拟出皮肤的透感。最后,我们加上环境光(ambient),输出即可。
这里要强调一点,一定要将Ramp的参数改为Clamp,否则会出现黑点。
节点图
代码部分,建议大家手撸一遍
最终效果:
由此,下期会为大家带来手游中3S皮肤的渲染与制作,感谢大家支持。
来源:Thepoly
热门课程
专业讲师指导 快速摆脱技能困惑相关文章
多种教程 总有一个适合自己专业问题咨询
你担心的问题,火星帮你解答《黑神话:悟空》作为一款现象级中国游戏,其成功离不开多种先进计算机技术的支持。本文将深入解析该游戏背后的关键技术,包括虚幻引擎......
在游戏开发领域,Unity和Unreal Engine(虚幻引擎)都是备受推崇的游戏引擎,但它们各自拥有不同的特点和优势。
春节之后大量抢人!这6个行业是转行首选,进去1年顶3年!火星毕业就能进
春节后求职,哪些行业进去能立马涨薪?打破信息差很关键!
还没毕业,就去帮电视台拍活动,作品被主任说“非常好”!猜猜是哪个专业呀?
回想过去,电子游戏里的草其实并不是真正的草。开发者们只是简单地把草的纹理直接贴在游戏关卡的地板上
在火星的就业指导老师那里,经常收到同学们这样、那样的提问。其中有一些共性问题,就业老师会根据自己丰富的经验,为同学们给出合适的回答。