【技術美術】引擎渲染管線概述
引擎渲染管線是發生在遊戲引擎中的完整渲染流程,GPU渲染管線也是其中的一部分,在此GPU相當於是畫筆,而引擎則是畫家。
在Unity中有內置渲染管線和SRP渲染管線兩種,考慮SRP是未來趨勢,且更加公開透明,後續引擎渲染管線均指SRP。
引擎渲染管線流程
- 收集渲染對象,如渲染器、燈光等物體,該部分由SRP自動處理。
- 更新渲染信息至GPU端,如燈光、時間、矩陣等數據。
- 進行攝像機剔除,剔除掉不需要渲染的物體。
- 進行渲染對象排序,從而實現渲染優化和透明。
- 使用帶有指定光照模式標籤的着色器,進行最終繪製。
- 對渲染後的顏色附件進行可選的後處理繪製,並呈現到最終屏幕。
引擎渲染管線資源
引擎渲染管線,為了便於繪製和優化性能,對GPU渲染管線中的資源進行了一定封裝。
網格
網格是對GPU渲染中幾何數據的封裝,並實現了一些行業中的標準功能,例如包含如下內容:
- 頂點緩衝區
- 索引緩衝區(基元默認為三角形)
- 子網格
- 蒙皮
材質
對網格之外的數據進行封裝,因為很多情況下,模型渲染往往只是網格不同,但會使用同樣的着色器和材質,屬於是一種局部性原理的表現了。
- 紋理:與GPU中的靜態紋理一致。
- 常量緩衝區:與GPU中的常量緩衝區一致,此處存儲一些特定於材質的數據,例如物體的基礎顏色。
- 着色器:與GPU中的着色器不同,此處是對GPU中所有着色器以及渲染狀態的設置,並決定了材質能接收的屬性(紋理、常量)。
本文章為轉載內容,我們尊重原作者對文章享有的著作權。如有內容錯誤或侵權問題,歡迎原作者聯繫我們進行內容更正或刪除文章。