渲染管道

渲染管道git

一、吞吐量(throughput)度量整體每秒可產生的數據量。潛伏期(latency)度量單個數據須要花多少時間才能走完整個管道。編程

二、渲染管道概觀數據結構

  1)數字內容創做(digital content creation,DCC):mesh和材質數據是由DCC應用程序建立。測試

  2)資產調節管道(asset conditioning pipeline,ACP):導出處理、連接多個種類的資產,生成內聚的總體。spa

  3)應用程序階段(CPU)設計

  4)幾何階段(GPU)遊戲

  5)光柵化階段(GPU)ip

三、裁剪(clipping)階段把三角形在平截頭體之外的部分切掉。其原理是先斷定哪些頂點在平截頭體以外,而相交點會被裁剪後造成新的三角圖元。內存

四、合併階段不能編程,但高度可配置。若片斷經過了全部測試,其顏色就會與幀緩衝原來的顏色進行混合。資源

五、幾何着色器的輸入爲單個n頂點幾何圖元,其輸出爲0或多個圖元,這些圖元的種類可與輸入的有所不一樣。

六、着色器的輸出是將要寫至幀緩衝的顏色。

七、在着色器編程中,訪問內存只有2個方法:寄存器和紋理貼圖。在調用着色器程序以前,GPU會從顯存自動複製頂點或片斷屬性數據至適當的輸入寄存器;當程序執行完成,GPU會把輸出寄存器的內存寫入顯存,使數據能給予下個管道階段。

八、在3)應用程序階段,應用應該僅把可見的物體提交GPU,以避免浪費寶貴的資源渲染老是看不見的物體。

九、把可見表中徹底被其餘物體遮擋的物體移除,稱爲遮擋剔除(occlusion culling)。常見的作法有入口系統,反入口系統。

十、GPU管道內的全部可配置參數稱爲硬件狀態(hardware state)或渲染狀態(render state)。這些狀態設置徹底由每一個子網格對應的材質揚描述。若是在提交圖元之間,咱們忘記設置某方面的渲染狀態,那麼上一圖元的設置便會「泄漏」至下一圖元。叫作渲染狀態泄漏(render state leak)

十一、深度預渲染(z prepass),關閉像素着色器並僅更新深度緩衝,GPU便會使用特設的雙倍速度的渲染模式。在此渲染步驟中,不透明物體可按從前至後的順序渲染,使嘗試緩衝的寫入次數變得最少。

十二、渲染半透明幾何物體時,咱們必須接受頻繁切換狀態的成本。

1三、對於大量物體的場景,全使用平截頭體剔除每一個這些物體,一般難以置信地耗費時間資源。一般精心設計場景圖(scene graph)數據結構,能夠迅速丟棄大量徹底不接近攝像機下截頭體的世界部分。如四叉樹、八叉樹、BSP樹(binary space partitioning, BSP)

1四、對於有室外平坦地形的遊戲,四叉樹很是合適。對於內容密集場景,反入口系統很是合適。

相關文章
相關標籤/搜索