目录
一、作业点评
纯色hello word和Lambert代码都没有问题
右下角用了菲涅尔边缘光的效果,还可以做的更细腻,
取世界坐标法线的绿通道(RGB的G,也就是XYZ的Y),得到上下关系,用这个乘一下菲涅尔,这样只有朝上的面片会有菲涅尔效果,会更真实
尝试了卡通shader
1、会批改这个shader
2、用了两层材质,内部是较为透亮的外层包了一个油漆,是写shader的常用套路
3、Matcap超纲
4、今日作业唯一正解
代码没有问题,连连看也没有得出正解
会拆解这个shader
二、作业答案
1、HalfLambert代码
唯一需要修改的地方就是把截断负值改为映射至0-1(*0.5+0.5)
2、SSSLut
做作业时想了半天也没有想到居然是一张贴图就可以实现的效果
SSS效果就是一个透光的效果(光线穿透皮肤的效果),次级表面散射
刚开始有SSS效果的时候,只集中在明暗交界线,后面扩散开
思路:让RampTex上下有变化,并利用一个滑杆开放采样RampTex的V坐标,进行采样
这张图可以用PS画出来,也可以用工具生成
贴图的wrapmode改为clamp,图片大小调小,不压缩
三、作业批改
01批改一
光照模型乘上一个颜色,将它分为RGB三个通道并做三个截断(step),因为每一种颜色通道的黑白信息不同,便会得到分层的效果
暗部部分:做了一个反色,可以直接用onemins节点,再乘以一个颜色控制暗部颜色
亮部部分:同样乘上一个颜色并且给亮部赋予了一个贴图纹理
(未完成,后面想思考一下如何可以分别控制每一部分的颜色)
02批改2
后续自己大概修改了下实现出了这个shader的效果
亮部柠檬黄部分可以跟随视线的移动而变化不是固定在一个方向
同时明暗部分的界限有一个扰动的效果
面板如下
我们拆解下这个节点
先找到光的部分
这里法线乘了一个半角,是下节课要讲的内容,黑白灰可以随着实现方向变化,
乘上了一个power这里加了一个slider可以控制高光部分的大小
再来看一下上半部分
对UV坐标,做了两个乘法缩放UV,对同一张贴图做了一大一小两次采样,得到两张图,相乘得到一个双层纹理,这样会得出两层细节
将刚刚得到的两个光照模型分别和得出的纹理进行混合,再四舍五入得到两个不同的黑白纹理
用lerp节点将它们作为黑白遮罩赋予高光、亮部与暗部的颜色
三、情报·预积分皮肤
四、情报·TA专业向
有接触过一点houdini,对于程序化建模感觉很神奇,几个数据关联可以变化出很多样式,后面会研究一下下