四十八:GPU的工作原理
簡而言之,GPU的圖形(處理)流水線完成如下的工作:(并不一定是按照如下順序) 頂點處理:這階段GPU讀取描述3D圖形外觀的頂點數(shù)據(jù)并根據(jù)頂點數(shù)據(jù)確定3D圖形的形狀及位置關(guān)系,建立起3D圖形的骨架。在支持DX8和DX9規(guī)格的GPU中,這些工作由硬件實現(xiàn)的Vertex Shader(定點著色器)完成。 光柵化計算:顯示器實際顯示的圖像是由像素組成的,我們需要將上面生成的圖形上的點和線通過一定的算法轉(zhuǎn)換到相應(yīng)的像素點。把一個矢量圖形轉(zhuǎn)換為一系列像素點的過程就稱為光柵化。例如,一條數(shù)學(xué)表示的斜線段,最終被轉(zhuǎn)化成階梯狀的連續(xù)像素點。 紋理帖圖:頂點單元生成的多邊形只構(gòu)成了3D物體的輪廓,而紋理映射(texture mapping)工作完成對多變形表面的帖圖,通俗的說,就是將多邊形的表面貼上相應(yīng)的圖片,從而生成“真實”的圖形。TMU(Texture mapping unit)即是用來完成此項工作。 像素處理:這階段(在對每個像素進行光柵化處理期間)GPU完成對像素的計算和處理,從而確定每個像素的最終屬性。在支持DX8和DX9規(guī)格的GPU中,這些工作由硬件實現(xiàn)的Pixel Shader(像素著色器)完成。 最終輸出:由ROP(光柵化引擎)最終完成像素的輸出,1幀渲染完畢后,被送到顯存幀緩沖區(qū)。
總結(jié):GPU的工作通俗的來說就是完成3D圖形的生成,將圖形映射到相應(yīng)的像素點上,對每個像素進行計算確定最終顏色并完成輸出。
四十九:什么是渲染管道?
是指在顯示器上為了顯示出圖像而經(jīng)過的一系列必要操作。 渲染管道中的很多步驟,都要將幾何物體從一個坐標系中變換到另一個坐標系中去。主要步驟有:
本地坐標->視圖坐標->背面裁剪->光照->裁剪->投影->視圖變換->光柵化
五十:如何優(yōu)化內(nèi)存?
有很多種方式,例如
1.壓縮自帶類庫;
2.將暫時不用的以后還需要使用的物體隱藏起來而不是直接Destroy掉;
3.釋放AssetBundle占用的資源;
4.降低模型的片面數(shù),降低模型的骨骼數(shù)量,降低貼圖的大小;
5.使用光照貼圖,使用多層次細節(jié)(LOD),使用著色器(Shader),使用預(yù)設(shè)(Prefab)。
6.代碼中少產(chǎn)生臨時變量
五十一:動態(tài)加載資源的方式?
1.Resources.Load();
2.AssetBundle