【UE4 Shader复现】新笑傲江湖手游眼睛材质Shader

最近一位朋友试着在UE4复现了一下新笑傲江湖手游的材质,下面是眼睛的材质

目标效果

UE4中的效果


首先,将UV上下翻转

眼睛高光,用的GGX

GGX

第一道高光

前方高光

第二道高光

灯光高光

第三道高光

视线方向高光

叠加后效果


采样一张遮罩图,限制高光区域


眼睛颜色计算

计算眼睛折射

忽略以上的连线,直接看HLSL(空间转换那个函数是伪代码)


具体可以参考马甲大佬的这篇文章(跪

然而这里的前房液厚度是0(emmmmmm)

通过遮罩和眼白颜色做混合。并且做个去色,准备开始染色计算

利用遮罩的GB通道进行染色计算

染色前和染色后


方向光Diffuse计算


此时此刻的Diffuse+SpecularColor


利用染色后的颜色,根据遮罩,算一个环境反射用的亮度出来

采样反射图的函数

函数里面是这样的

EnvBRDFApprox和ComputeReflectionCaptureMipFromRoughness用的都是UE4的实现,下面是UE4中的截图

EnvBRDFApprox
ComputeReflectionCaptureMipFromRoughness

对环境漫反射和镜面反射进行亮度控制。参数是焊死在Shader里的

全部相加之后得到最后结果


编辑于 2020-09-04 20:25