RimLight(轮廓光) - Shader

  RimLight指的是物体的轮廓光。效果如下:

  RimLight(轮廓光) - Shader-LMLPHP

  轮廓光的强度通过 1.0 - dot(normal, eye_vector)来计算。使用这个公式,则指向camera的轮廓光强度会是0,垂直到camera的轮廓光强度是1,而背离的强度会是2。GLSL实现如下:

  RimLight(轮廓光) - Shader-LMLPHP

  smoothstep(a,b,x)函数将a-b范围的x值投射到0-1区间上。为了让轮廓光只在边缘出现,我们需要只显示vdn 0.6以上的值,如仅仅把0.6以下部分抛弃,则会产生Hard Edige。

使用smoothstep函数,把0.6-1.0平滑插值成0-1即可产生平滑的轮廓光。

  RimLight(轮廓光) - Shader-LMLPHP

  效果如下:

  RimLight(轮廓光) - Shader-LMLPHP

Reference:

1、http://www.roxlu.com/2014/037/opengl-rim-shader

05-11 15:54