本文最后更新于188 天前,其中的信息可能已经过时,如有错误请发送邮件到2939296129@qq.com
作业分享
先来看看别人的作业分享





作业答案
HalfLambert代码

比较容易,这里不多说了
SSSLut连连看

SSS(SubSurface Scattering):
- 次表面散射是线穿透半透明材质表面后,在内部经过多次散射并最终穿出的物理现象。
- 这种效果常见于皮肤、蜡、玉石、牛奶等材质。
- 如图,皮肤背光照射的时候,有一部分光在皮肤边缘的效果,就是次表面散射。

SSSLut:
- 原本的Ramp图仅仅是在水平方向上有渐变,在垂直方向上颜色相同
- 而SSSLut,则是在Ramp图的基础上,加上了垂直方向上的渐变
- 相当于是一张二维的Ramp图
连连看解析:
- 用NdotL去作为 Texture u坐标
- 用0-1的参数去作为 Texture v坐标
- 用上面的uv坐标去采样SSSLut图,输出就能得到效果了
作业批改

这两个作业效果比较怪,实现过程中也有许多错误,就不仔细复刻了,简单复述一下思路。
作业一
屏幕空间uv效果,上节课中有
加上自己的trick上色:
- NdotL,用一个颜色去做Step
- 非常怪的一个效果


- 之后乘上一个颜色就是亮部颜色
- OneMinus,乘上颜色就是暗部颜色
- 最后加上屏幕空间纹理

作业二
复刻了个大概
- 同一张Noise图放大和缩小,然后乘在一起,Remap调整颜色,再乘NdotL
- 加上Blinn-Phong高光,Round形成遮罩,乘上高光颜色
- 底色没说清楚,不太明白,就加上了一个颜色


情报-预积分皮肤
预积分次表面散射

首先什么是预积分?
- 预积分是理论推导,以及理论生成Lut图的过程
- 图形开发需要知道,TA可以暂时不知道(在后面研究真实感人物渲染时,补上这块)
- 通过这样严格的图形学公式,可以得出来一张Lut图,可以去实现皮肤的次表面散射
其次什么是Lut图?
- Lut全称Look up Texture,查找纹理,有些计算非常复杂,无法实时进行计算,因此将其预先计算好存在一张Texture中(因此也叫预积分),用于快速查找和替换图像中的颜色信息
- 可以理解为二维的Ramp图
可以在图中介绍的插件中得到Shader和理论生成Lut的工具的源码!(之后深入学习时去看一下)
最后一定要遵循公式吗?
- 根据公式生成的Lut图是理论正确的,但可能并不适用于实际情况
- 我们可以根据标准Lut为基础,根据美术的需求来进行更改,或者直接自己画Lut
- 可以看到Mhy分享的内容中,也并不是标准的Lut图,要根据项目情况去更改的
