ngui渲染順序概述ngui用panel來管理渲染.
乙個uipanel例項表示乙個panel.
在渲染時,panel遍歷它管理的所有widgets. 生成drawcall命令list.
於是ngui需要控制的渲染順序包括以下:
ui 是 2d 的,不需要在渲染時開啟深度測試(depth test)。因此,若渲染位置相同時,後渲染的圖形覆蓋先渲染的圖形。
在使用 ngui 時,都知道可以設定 panel 和 widget 的 depth 屬性。depth 值越低,越容易被覆蓋。
depth 值低的 panel 或 widget 會先被處理。
我們明白了應用層面 depth 的設定,但是實際的渲染是在 shader 中進行的
如何根據應用層的 depth 控制 shader 的渲染呢?
經過上面分析,depth 小的 panel 先繪製,同一 panel 中 depth 小的 widget 先繪製。這就是 ngui 渲染順序。
由於需要控制 panel 繪製順序,所以 ngui 繪製時在單個 lateupdate 中根據列表處理所有的 panel ,為了避免所有 panel 的 lateupdate 都處理一遍,因此引入了 static uipanel.mupdateframe 控制呼叫頻率。
void lateupdate ()
}
NGUI渲染元件基類 UIWidget
目錄 ngui原始碼學習 一 uigeometry 儲存了集合圖形的頂點資訊,包括頂點座標 uv 顏色值資訊,並提供了這些資訊的獲取方法。這些頂點資訊最終會新增到所屬uiwidget的uidrawcall裡。uigeometry 幾何物件資料儲存 獲取 property verts 頂點陣列,正常是...
UGUI渲染順序
1,當有多個canvas並且渲染模式都為overlay。這種情況下,渲染順序是由canvas元件下的sort order決定的,值越大的越後渲染。2,當有多個canvas並且渲染模式都為camera。這種情況下,渲染順序首先由rendener camera的depth值決定,值越大越後渲染。如果de...
GPU渲染管線概述
頂點著色器是流水線的第乙個階段,它的輸入來自於cpu。頂點著色器的處理單位是頂點,也就是說輸入進來的每個頂點都會呼叫一次頂點著色器。頂點著色器需要完成的工作主要有 座標變換和逐頂點光照。當然,除了這兩個主要任務外,頂點著色器還可以輸出後續階段所需的資料。座標變換,顧名思義,就是對頂點的座標進行某種變...