unity-shader-02
2024年1月23日
摘要:2HighLight、Hatching、Halftone
上节课答案:
Tips: mip map 指的是根据屏幕距离生成的等比缩小的原图-类似LOD mip map
规范
为美术团队规范,整理项目资源,是TA的职责之一;所以要从规范自身做起。
规范:
- 路径规范
- 命名规范
- 递交形式规范
shader路径设置 和 材质shader路径选择
Shader
偏移用加减-缩放用乘除
在开始之前,得提起一个口诀:偏移用加减-缩放用乘除,接下来会用到加减乘除较多。
2HighLight
两个高光实现的方法-是通过对法线的偏移实现的。然后通过if把值给限定,得到高光mask。
RampTex + lambert
Offce + nDir
Lerp + fresnel
然后通过开放参数在材质球上调整偏移+颜色等即可实现。
Hatching
主要节点:
实现方法
- 绘制一张贴图,通过对屏幕空间正面叠底
- 然后通过step节点, 取绝对值,得到阴影线,然后再使用lrep节点叠加颜色。最后则是add 相加一下lambert明暗信息-增加体积感。
tips:可以同过使用
slide
节点对line width
(描边宽度)进行控制-这样材质面板中就会暴露出一个滑块,比填数值好用。
Halftone
首先-我们需要知道,屏幕空间坐标U和V方向的是这样的。然后我们通过对屏幕空间UV的相乘,大于0的值不断被叠加,那么白色的区域占比会越来越多。
然后我们再对这个屏幕空间这个值,取小数。 就会得到这么一个循环,然后U和V通道合并就等于得到了一个tiling的UV坐标。
接下来对它进行一个从映射-也就对当前的局部uv坐标进行偏移(如下说明一样),然后在进行取0-1的长度,就能得到一个点阵一样的程序纹理了。
然后创建明暗信息(lambert),然后对明暗进行重映射
然后在使用power,对小数不断相乘-会越来越小-也就是说会越来越黑。 例如:0.1*0.1=0.01
最后使用Round (四舍五入)取整数,黑的越黑白的越白。