RimLight(轮廓光)

RimLight(轮廓光) - Shader

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

  

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

  

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

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

  

  效果如下:

  

Reference:

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

原文地址:https://www.cnblogs.com/tekkaman/p/3983455.html