渲染管線
圖形數據在Gpu上經過運算處理,最后輸出到屏幕的過程
- DrawCall:一幀調用顯卡渲染物體的次數
頂點處理
- 接受頂點模型頂點數據
- 坐標系轉換
圖元裝配
組裝面,連接相連的頂點,繪制三角面
光柵化
計算三角面上的像素,並為后面着色階段提高合理的插值參數
像素處理
對每個像素區域進行着色
寫入到(顯卡)緩存中
緩存:
一個存儲像素數據的內存塊,最重要的緩存是幀緩存與深度緩存
幀緩存
存儲每個像素的色彩即渲染后的圖像。幀緩存常常在顯存中,顯卡不斷讀取並輸出到屏幕中
深度緩存Z-buffer
存儲像素的深度信息,即物體到攝像機的距離,光柵化時便計算各像素的深度值,如果新的深度值比現有值更近,則像素顏色被寫道幀緩存,並替換深度緩存。近的被保存,遠的被遮擋就不顯示了
優化
性能優化主要三方面
- CPU Usage CPU的使用。
- Render 渲染
- Memory 內存
Occlusion Culling即時遮擋剔除
遮擋剔除:當物體被送進渲染流水線之前,將攝像機視角內看不到的物體進行剔除,從而減少了每幀渲染數據量,提高渲染性能
使用插件Instantoc實現遮擋剔除
- 原理:隨機發射射線碰到了說明不被遮擋
- 缺點:增加CPU性能
- 適用場景:場景中物體較為密集
多細節層次(LOD Levels of Detail)
根據物體模型的節點在顯示環境中所處的位置和重要度,決定物體渲染的資源分配(選擇高低中模型),降低非重要物體的面數和細節度。從而獲得高效率的渲染運算