06_鼻线添加

鼻线添加

转动灯光到正面这里看不见鼻子了,所以需要对鼻线进行添加

贴图信息

鼻线的位置在面部贴图的Alpha通道中 之前代码中已经提取了,但没有使用

获取观察向量

因为鼻线需要对视线方向做混合,偏转大的视角比如说侧脸,就直接看不见鼻线,所以需要获取观察向量

计算鼻线的DisplayValue

这里直接在SDF代码下面写就行。先获取描边颜色,后面进行混合处理。根据点乘判断方向>0同向,小于0反向,计算ViewDir和HeadUP点积已及ViewDir和HeadRight点积。 我这里没有对鼻线的颜色进行修改,直接就使用面部描边颜色,如果要修改再加一个变量控制即可 这里描边颜色之前变量写在局部的描边Pass内,我这里移动到了全局变量中,同时追加两个变量 计算混合值,这里很多应该都是经验性的处理,对_NoseLineKDnDisp, _NoseLineHoriDisp进行插值,这里是进行了竖直方向的Alpha控制,混合水平控制直接使用了viewDotHeadForward - dispValue;然后钳制和混和贴图鼻线 反正最后效果就是上下左右的偏转都看不见鼻线,只在正脸的小范围有鼻线。理论上了乘法混合,效果也差不多,因为乘法原因是取到0时对应角度太大了,所以得对viewDotHeadForward范围钳制一次,有点多余。这块自己随意调整吧 这里换乘法混合效果是差不多的 参数设置,我这里参数如下,自己看着调就行: 当前效果


Enjoy Reading This Article?

Here are some more articles you might like to read next:

  • URP - RendererFeature :ScreenSpaceOutline
  • 平滑法线处理 - 八面体映射
  • Lv.3 Unity主线:一个简单的PBRShader
  • 理论支线:直接光漫反射与GGX高光的混合问题
  • 理论支线:PBR - 基于图像的照明( image based lighting-IBL)
  • # #