当前位置:首页 >教程首页 > 游戏设计 > 3D模型大师班 >从节点到代码分析光照模型“半兰伯特+Ramp”

从节点到代码分析光照模型“半兰伯特+Ramp”

发布时间:2020-06-16 10:28:09

Hello . 大家好,今天给大家带来从节点到代码分析光照模型“半兰伯特+Ramp”。

公式详解

这个是比较基础的光照模型,通过它,我们可以理解漫反射是怎么形成的,从而引入其他类型的光照模型和Rmap映射

我们先来回忆一下兰伯特公式:

1.jpg

上图公式可以得出,我们想要求出Cdiffuse,需要知道四个值

分别为:

Clight= 光源颜色

Mdiffuse= 材质的漫反射颜色

N= 表面法线

L= 光源方向的单位矢量

MAX为钳制值不可以超过1

由此我们引入我们再来看一下兰伯特光照模型的变种半兰伯特

2.png

由上图曲线得知,半兰伯特模型是在兰伯特的基础上乘0.5+0.5后得出的,就会得出一个背面不会一片死黑的光照模型

3.jpg

公式如上,可以回忆一下数学老师讲的图像

以下为节点实现方式:

基本思路就是套公式为主,通过World Light Dir获取到世界空间光的方向,获取到世界法线后点积,然后乘0.5+0.5

然后我这里拓展了一下,讲点积后的结果和灯光信息相乘,获得灯光颜色和强度后我们转到片源内计算,以便获得锯齿不是很明显的过渡(逐像素光照)

然后将光照模型传值给Ramp的UV,如下图,RampSkin是一个固定贴图,常用于配合半兰伯特渲染手游的角色。他是一个对比渐变类型的贴图,可以模拟出皮肤的透感。最后,我们加上环境光(ambient),输出即可。

这里要强调一点,一定要将Ramp的参数改为Clamp,否则会出现黑点。

4-1.png

4-2.png4-3.webp.jpg

节点图

5.webp.jpg

代码部分,建议大家手撸一遍

6.png

最终效果:

7.png

由此,下期会为大家带来手游中3S皮肤的渲染与制作,感谢大家支持。

来源:Thepoly

学员作品赏析
  • 2101期学员李思庭作品

    2101期学员李思庭作品

  • 2104期学员林雪茹作品

    2104期学员林雪茹作品

  • 2107期学员赵凌作品

    2107期学员赵凌作品

  • 2107期学员赵燃作品

    2107期学员赵燃作品

  • 2106期学员徐正浩作品

    2106期学员徐正浩作品

  • 2106期学员弓莉作品

    2106期学员弓莉作品

  • 2105期学员白羽新作品

    2105期学员白羽新作品

  • 2107期学员王佳蕊作品

    2107期学员王佳蕊作品

专业问题咨询

你担心的问题,火星帮你解答

微信扫码在线答疑

扫码领福利1V1在线答疑

点击咨询
添加老师微信,马上领取免费课程资源

1. 打开微信扫一扫,扫描左侧二维码

2. 添加老师微信,马上领取免费课程资源

×

同学您好!

您已成功报名0元试学活动,老师会在第一时间与您取得联系,请保持电话畅通!
确定