Shader 之 Forward Render

前向渲染:泛指傳統上的只有兩個通道的渲染技術。

  1. Opaque Pass(不透明,從前往後按順序渲染)
  2. Transparent Pass(透明,從後往前按順序渲染)

前向渲染的弊端在於,每添加一個燈光所有的物體都會渲染一變,舉個栗子,場景中有10個物體,一盞燈光就是10個pass,再加一盞就是20個pass。
可以使用延遲渲染方案解決,但是延遲渲染不能渲染透明物體,這也是人們常說的場景中儘量不要使用半透明物體的原因之一。
unity2018.1(3?)之後的版本中,有了LWRP(Lightweight Rendering Pipeline),支持Single-Pass前向渲染(最多在一個pass中支持8個像素光),就是說所有的燈光會渲染到一個pass中,但也不是無限加的,最多可以包含8個。
LWRP只有一個前向渲染的pass,會對每個物件進行light culling,優勢在於所有的光照都會在一個pass中被計算。與Unity build-in的前向渲染(一個光照一個pass)比起來,LWRP的DC更少,代價是shader稍微複雜一些。LWRP支持最多每個物件8盞燈(可以全部像素光),但是支持的功能只是Unity默認渲染管線功能的子集,具體見鏈接,如果不喜歡看英文,這裏還有中文版本,只是中文版本其實是一個文章,不會定期更新,目前看上去雖然大部分還成立,不過小部分已經有更新了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章