利维亚的杰洛特 发表于 2018-4-6 20:46:25

Unreal Engine 4 基于Kajiya-Kay的头发材质迭代

在先前的文章Unreal Engine 4 —— Kajiya-Kay Shading在UE4中的实现 中过了一遍怎么在UE4中实现Kajiya-Kay Shading,但是这个着色效果还是略显简陋。因此这篇文章是基于Kajiya-Kay Shading对这个材质进行了迭代,力争使其更有表现力。

发丝颜色过渡



在发丝的表现中,有时会出现发根与发梢有着不同的颜色(例如对于比较干燥的头发,往往发根偏黑而发梢偏白)。因此这里输入两个颜色分别代表发根与发梢的颜色、输入过渡高度以及过渡程度的参数,从而实现在两个颜色之间的过渡:



边缘光(Fresnel Effect)

菲涅尔效应在很多地方都有用到,主要用来表现反射材质的高光、特殊状态的表现等。Fresnel Effect主要表现在物体越与视线相切的地方,则值越大,越与视线重合,则值越小(其实Fresnel Effect很好实现,法线与视线的点乘即可):



在发丝的表现中,也需要有这种的边缘光表现,唯一不同的是将视线换成光线方向,也就是说光线与物体相切的地方则越亮,否则越暗:



高光噪点

在现实的发丝中,由于很多时候光线在第一层头发反射后,一部分光线会穿过第一层头发,在第二层头发上反射再一次照亮第一层头发。这也就是很多时候会有高光的噪点。

在这个材质里面如果真的要模拟现实的计算,未免计算量太大。因此在这里直接使用噪点图,分别加在两个高光分量上:



高光跟随视线

在Kajiya-Kay Shading中,高光的表现通常是与V向量相关,也就是说只要摄像机位置不动,无论其如何旋转,高光的表现是不会变化的。

我在晚上上街去观察了一些长发女生的头发在路灯下的表现,发现的确也是无论视线盯着哪个地方,高光信息的确是不变的(不敢太凑近看会被打)。

在我与公司的原画美术讨论后,他倒是认为高光信息随着视线改变实际上会更有表现力,因此将对于V向量进行了进一步的处理:



最终能达到这个效果,我个人其实相当满意:




狼之独步 发表于 2018-4-8 10:35:28

厉害~~

卖套套的小男生 发表于 2018-10-14 19:52:42

就看看,

KungFuBoy226 发表于 2018-10-14 21:54:31

这头发不错!杠杠的!我要学!!!!!感谢楼主分享!

xiaodou1022 发表于 2018-10-15 06:27:01

谢谢楼主分享

fengzhiyun 发表于 2018-10-15 08:16:14

感谢分享~~~~~~~~~~~

鱼肠 发表于 2018-10-15 09:17:09

谢楼主分享

姑娘,那只猫 发表于 2018-10-17 20:21:21

头发不错

qq_马卡龙_WRh 发表于 2018-10-19 09:28:38

资源甚好,发帖艰辛,且阅且珍惜!

不能好好起名 发表于 2018-10-20 21:47:57

很好

胖-哒 发表于 2018-10-20 22:11:44

感谢分享~~~~~

飞翔之翼 发表于 2018-10-20 22:15:39

6666666

黄小厨 发表于 2018-10-21 10:11:31

带你赚币带你飞,元素里面有正妹!

迷路的小星扬 发表于 2018-10-21 19:59:15

66666666

┌.┌锋/shui 发表于 2018-10-23 08:11:13

元素帖子强,满满正能量!

qq_饺子_OGp 发表于 2018-10-23 08:25:57

谢谢分享,学习学习

又又 发表于 2018-10-23 08:26:42

谢谢分享 。。。。。。

狂奔de蜗牛 发表于 2018-10-23 12:06:21


十分感谢分享!

1843918957 发表于 2018-10-23 14:47:32

{:1_229:}

残破の羽翼 发表于 2018-10-23 21:39:14

6666666
页: [1] 2 3 4
查看完整版本: Unreal Engine 4 基于Kajiya-Kay的头发材质迭代