渲染輪廓線的5種方法

實現渲染輪廓的方法有很多。在《Real Time Rendering, third edition》一書中,作者把這些方法分成了5種類型:

卡通渲染 + 輪廓渲染

<aside> <img src="/icons/alien-pixel_gray.svg" alt="/icons/alien-pixel_gray.svg" width="40px" /> 可以將Shader用在Sphere上,更好理解

</aside>

扁平化和裁剪Front

書中有提到將z設置為-0.5,具體的原因可以參考作者早期的博客。其實簡單地理解就是拉伸輪廓時,z軸是可以忽略的,所以將其想像成在-0.5的平面中進行拉伸便可。至於為甚麼是-0.5,一來是因為在View Space下變為了右手座標,二來是為了防止輪廓的深度值太大,覆蓋掉物體。

至於Cull Front的原因,是為了百分百保證輪廓不會遮擋到物體。

計算高光

該章節最難理解的就是高光的計算了。有