百人計劃圖形1.3——紋理
?紋理中儲存著數(shù)據(jù),類似于數(shù)組的形式
紋理可以用來儲存高度、紋理通道、法線等各種信息
紋理的對象除了包含儲存的信息外還包含紋理采樣的一些設(shè)置

紋理的出現(xiàn)——劃算、節(jié)約成本、工作量?
實際上是為了可以使用圖像函數(shù)或者其他數(shù)據(jù)源來修正模型的表現(xiàn)從而模擬物體表面的一項技術(shù)

紋理如何用——紋理管線

紋理投影(紋理函數(shù))——獲取所需渲染的位置,將之從模型空間投影到紋理坐標(biāo)空間中,轉(zhuǎn)化成紋理坐標(biāo),俗稱為UV坐標(biāo)
常規(guī)情況下投影函數(shù)通常匯總模型建模流程“展UV”的階段中使用,將投影的結(jié)果儲存在頂點數(shù)據(jù)中,一般不會使用該函數(shù)而是直接使用儲存的結(jié)果

紋理采樣設(shè)置中常見且重要——Warp Mode

fillter Mode決定了當(dāng)紋理由于變化而產(chǎn)生拉伸時,選擇一種濾波模式來調(diào)整自身的表現(xiàn),使采樣更合理






紋理縮小時會出現(xiàn)幾個紋理覆蓋一個像素的情況,常見縮小過濾方法有最鄰近和雙線性差值

降低紋理頻率常見方法mipmap——通過預(yù)處理紋理并且創(chuàng)建數(shù)據(jù)結(jié)構(gòu)有助于實時工作時快速計算一組紋素對一個像素的效果的近似值

mipmap具有嚴(yán)重缺陷——過度模糊

?用于解決過度模糊的方法——各項異性過濾
其指代的是一種思想或者是各種方法的總稱

積分法為創(chuàng)建一個和紋理大小相同,但是儲存顏色精度更高的數(shù)組


CPU渲染優(yōu)化方向其一——降低DrawCall
紋理顯示在屏幕上時需要CPU跟GPU一起協(xié)作完成,然后為了CPU和GPU可以并行工作,需要一個命令緩沖區(qū),命令緩沖區(qū)有一個命令隊列,CPU添加指令GPU讀取指令,這使得CPU與GPU可以相互獨立工作。DrawCall為緩沖區(qū)里的一種代碼,CPU大量時間會用于提交DrawCall。

降低DrawCall常見方式有紋理圖集、紋理數(shù)組以及無約束紋理,其目的在于降低頻繁改變紋理所帶來的消耗但實際應(yīng)用上最常見的還是紋理圖集(將大量的小圖集合并為一個大圖集)
GPU渲染優(yōu)化思路從帶寬入手,顯存帶寬指GPU讀寫專用內(nèi)存時的速度,若游戲速度受限于顯存帶寬的haul,往往是實驗紋理過大GPU沒有辦法快速處理。


