本篇主要用于记录自己的实战操作,以及一些碎碎念(观后感),如果有什么好想法或者本篇出现什么错误,请多指教~
本篇的内容参考视频:庄懂的技术美术入门课(美术向)
使用软件:Unity 2019 3.6f1 ,ShaderForge
本篇主要内容包含:案例解析,BRDF了解;
一.案例解析
1.FakeEnvReflect
思路解析:将半兰伯特模型的那一套RampTexture流程套在Phong模型上,最后再与纯Phong模型相加;
制作:
- 先整一个Phong模型,这里用的是简略的连法;
- 接着搞一个用Phong模型先进行Remap映射变成“half Phong”,再用Append连接slider,并映射到Texture的UV上并用另一个slider相乘控制反射强度,最后将该模块与上一步的Phong模型模块相加得到结果;
2.葡萄
改前参考图
改后参考图
原方案思路分析:使用兰伯特模型做SSSLut,使用noise纹理做遮罩,最后与Phong模型相加
制作:
- 先在MAYA里手动准备个葡萄模型 ,面数最好高些,不然高光可能就集中在一片面片上了…
(好久没碰建模,手生的厉害…)
-
原作者使用的Lut图是上一次使用的,为了表现葡萄的感觉,我们整一张葡萄专用lut;
-
接着开始连连看环节,先搞两个光照模型,然后将刚才做好的lut图片放入做lut模块,用blend节点将lut模块与葡萄的纹理相连,再与Phong模型相连,先看看效果;
(这里,我就直接用一个noise纹理作为葡萄表皮的贴图,意思一下)
- 接下来为了对葡萄中偏黑和偏亮的地方分别控制其高光,我们将原来Phong模型中的Power那里的exp换成一个lerp,再复制一个原来的slider利用lerp节点和BaseTexture遮罩进行亮和暗高光的范围控制从而得到不是圆点的高光;
(视频中,将葡萄贴图的BaseTexture先进行了去色处理,然后用处理后较平滑的红通道用来与兰伯特模型相乘,用绿通道加深对比度用来做遮罩)
最后结果还是差点意思,毕竟没画贴图,只是随手找了一张纹理贴图,所以也没有像视频中那样处理那么多,效果不是很好;
3.掉漆/铁锈案例
原方案思路分析:Phong模型与菲涅尔相加,再使用noise图作为遮罩,对兰伯特进行两种颜色混合,两种颜色中一种单纯是兰伯特乘颜色,另一种是在此基础上再与高光模块相加;
制作:
- 老规矩,先从光的模块开始做起,Phong模型和兰伯特模型;
- 接下来处理纹理模块,这里使用UV采样的方法,因为我们是用step去链接的纹理和slider,所以这里添加一个Desaturate (去色)处理成黑白;
- 接下来我们将纹理模块作为与高光模块Power节点的exp值相连,得到不同效果的高光;
- 再来我们再使用lerp节点,纹理模块加上两个颜色作为模型颜色的差异,将其结果与兰伯特结果相乘,最后与高光模块相加,得到最后的效果;
- 哦,忘了还有菲涅尔!
二.BRDF
看着麻烦,其实就是包括但不限于学过的两种光模型,见下图
BRDF浏览器,帮助更好理解光模型
碎碎念:当大佬在做风格化创意时,你能想到的只是简单的嫁接,当大佬开始做仿真化实例创意时,你才刚想起风格化,永远比大佬的创意思路慢上一步…