庄懂着色器_L01_(Half)Lambert/SSS


 01.结构Struct
一些相关数据的组织方式
02.渲染过程
模型 > 输入结构 > 顶点Shader > 输出结构 > 像素Shader > 渲染结果
将模型每个顶点位置信息,换算为每个顶点应该屏幕的位置
计算和赋值其他顶点信息,如: UV,顶点色,顶点法线
03. 向量
标量(Scalar):只有大小,没有方向的量;如:年龄,体重,等;
向量(Vector):既有大小,也有方向的量;如:力,速度等
理论上不存在没有大小,只有方向的量;但存在大小无现实意义的量,我们多把它归一化处理.
04.点乘Dot
点乘/点积/Dot:两向量间的一种运算方式,结果为一标量.,具有良好的几何含义;
结果的几何意义为:一个向量在另一向量上的投影长度
结果的图形学表现为:两向量,方向同时 结果=1(白色),方向 结果=-1(黑色),垂直 结果=0(黑色)
 
两个向量方向 一样,它的投影长度 最长
两个向量方向 相反,它的投影长度为 负值
两个向量方向 垂直,它的投影长度为
中午12点钟的太阳照到头上,投影就在脚下,值为0
如果一个向量是光的方向,
光的方向的反方向,
一个是物体表面的朝向 
05.兰伯特光照模型Lambert
根据向量点乘的图形学含义,我们令:
-模型表面的垂直方向为向量nDir(即:法线方向)
-令光照方向的反方向为向量lDir(即:LightDir)
-令nDir * lDir(两者点乘)结果为像素输出;
最两处:值为1,纯白;
明暗交接处:值为0,纯黑;
暗部:值为负数,亦为黑;
负数是个意义的亮度,所以我们通常把结果为负数的值,都改为0;
则有: Max(0,nDir * lDir)
即为 兰伯特光照模型
Max(x,y)
选择x和y中的最大的
06.半兰博特光照模型 Half-Lambert
优点:比Lambert透气,不至于暗部死黑
缺点:显然和素描老师教的不一样
lDir 即平行光 Direction Light取方向光的 反方向
Clamp 0-1
输出不小于0,不大于1 限制两端点之间的范围
Clamp
将指定值限制在指定的最小和最大范围内
07.映射
映射:两个集合,元素间相互对应的关系
08.调子映射 RampTex
Append 
把两个标量值合并成一个二维向量
一维向量+一维向量 = 二维向量
二维向量 + 一个标量 = 三维向量,限制最多四维
结论
两个向量的方向越接近,它的点乘Dot结果越接近1
两个向量的方向越相反,它的点乘Dot结果越接近-1
两个向量的夹角为90度,它的点乘Dot结果为0 
光 直射到表面 就应该 亮
光 背向表面     就应该 暗
光 垂直于90度  应该也暗
Append  是相加分量的节点
Component Mask  是拆分量的节点
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值