而已許多很淺的文本,適宜新手及金融行業(yè)后輩,絕大部分文本源自非官方音頻 Online Class ,有興趣的人能花點(diǎn)天數(shù)去看呵呵。文章文本會(huì)定期預(yù)覽,期望能幫到后輩。有嚴(yán)重錯(cuò)誤熱烈歡迎表示。
陰霾
- 小型分層體邁入靜態(tài)陰霾會(huì)極為耗用操控性
- 能停用細(xì)微分層體的距場(chǎng)陰霾 distance field shadow
- 矩形數(shù)目會(huì)負(fù)面影響靜態(tài)陰霾操控性,請(qǐng)采用距場(chǎng)陰霾強(qiáng)化,距場(chǎng)陰霾適宜與圓潤(rùn)的八邊形一同采用
- 適度的這時(shí)候透過標(biāo)識(shí)符掌控靜態(tài)光與陰霾的掌控器
- 夜空球不須要陰霾
乳白色
- 織物Shadering Model盡量采用unlit,怎樣能同時(shí)實(shí)現(xiàn)相差無(wú)幾的效用不然
- Forward + reflections is very expensive
- 很多乳白色效用能采用Dithered結(jié)點(diǎn) + masked mode 同時(shí)實(shí)現(xiàn)
- 數(shù)個(gè)乳白色重合不然,會(huì)減少命令數(shù),耗損操控性
- 鏡頭中乳白色地區(qū)全面覆蓋的畫素越多,耗損越大,盡量千萬(wàn)別把攝影機(jī)對(duì)著整座乳白色球體
[多采用console variable 進(jìn)行調(diào)試,(r.shaderXXX)]
Baking light
- Large streaming levels must be loaded together to bake lighting on
- 在你認(rèn)為場(chǎng)景中光照質(zhì)量最重要的地區(qū)中,多采用Lightmass importance volume
- 別忘了多Check lightmap density and resolution
- 盡量減少光源半徑與衰減半徑,這將減少drawcall
- 別忘了檢查L(zhǎng)ightmap Size
- Build time = Lightmap Res + Lights + Meshes + light Source Radius+...
Reflection
- 平面反射耗用挺大,采用要小心
- Reflection capture :如果場(chǎng)景中存在太多不然會(huì)有操控性問題,相互重合太多不然也會(huì)有問題,因?yàn)闀?huì)反復(fù)計(jì)算重合地區(qū),能在項(xiàng)目中設(shè)置捕獲分辨率
- 如果硬件不行,請(qǐng)避免采用SSR(screen space reflection)
- 小型戶外場(chǎng)景,能采用sky light提供基礎(chǔ)的全局反射
Merge Actor
- The more common a mesh AND the lower poly the better (合并常用且面數(shù)低的)
- Merge only meshes within the same area (只合并同一地區(qū)的分層體)
- Merge only meshes sharing the same material(合并具有相同織物的mesh)
- Meshes with no or simple collision are better for merging(沒有或只有基礎(chǔ)collision的mesh適宜merge)
- Smaller meshes or meshes receiving only dynamic are better candidates(小的mesh或者dynamic的mesh適宜merge)
- Distant geometry is usually great to merge(遠(yuǎn)處的mesh適宜merge , 類似HLOD)
Material
- 在遠(yuǎn)距時(shí),禁用頂點(diǎn)偏移(world position offset),因?yàn)樵诰嗪苓h(yuǎn)時(shí),幾乎看不到動(dòng)畫效用
- 在低操控性設(shè)備上,能啟用 full rough,慎用 high quality reflection, 啟用single-pass linear rendering
- Additive can only brighten the material ,while Modulate can only darken the material
- 織物數(shù)目要少,采用要盡量頻繁,這樣能減少GPU切換著色器的頻率 (減少draw call)
采用"set fixed foveated rendering level",降低視角兩邊的畫素處理力度
嘗試將耗損分?jǐn)偟讲煌糜布?,比如說顯卡遇到了瓶頸,就嘗試采用更大內(nèi)存,或者占用更多cpu,同時(shí)實(shí)現(xiàn)類似得效用
頂點(diǎn)處理和片元處理
- 頂點(diǎn)處理主要是降低頂點(diǎn)數(shù)目或者強(qiáng)化頂點(diǎn)著色器(這個(gè)我目前做不到) 在許多特定平臺(tái)上,頂點(diǎn)處理可能會(huì)計(jì)算2次(比如oculus quest),與特定平臺(tái)的渲染方法有關(guān)
- 片元處理主要是減少紋理的采用,以及渲染目標(biāo)(render target)的采用,因?yàn)榧y理要從內(nèi)存中讀取,會(huì)大幅降低操控性,所以在操控性較低的平臺(tái)上,推薦一個(gè)織物千萬(wàn)別引用超過2張以上的紋理。如果紋理能用簡(jiǎn)單的數(shù)學(xué)計(jì)算替代,就盡量千萬(wàn)別用紋理(noise那種是復(fù)雜的計(jì)算,任何這時(shí)候都應(yīng)該避免采用)
VR
- Oculus rift 和 quest 采用不同的渲染方式,所以說,針對(duì)其中一個(gè)平臺(tái)做的強(qiáng)化,在另一個(gè)平臺(tái)上可能會(huì)不起作用,quest 的操控性更低一點(diǎn)
- 在vr中,不啟用 smooth frame rate 、use fixed frame rate 、custom time step,確保這些由vr平臺(tái)接管
- PCVR中幀率最好保持 90+,分辨率 2160 x 1200是個(gè)挺不錯(cuò)的方案,并且,幀率的優(yōu)先級(jí)在分辨率之上,也就是說能降低分辨率來提高幀率,低幀率更容易導(dǎo)致用戶眩暈,移動(dòng)VR中幀率應(yīng)努力保持72+
- PCVR中應(yīng)讓可見面數(shù)小于 2 million,draw call < 1500
- VR中應(yīng)該盡量避免添加鏡頭效用,諸如攝影機(jī)抖動(dòng)、運(yùn)動(dòng)模糊、曝光等,以及突然的加速運(yùn)動(dòng),避免改變FOV
- 移動(dòng)VR中,只支持2種 shading models : Lit & Unlit
- 移動(dòng)VR中,最大的貼圖分辨率應(yīng)該不超過2k , 貼圖內(nèi)存不超過 128 MB
- 移動(dòng)VR中,最大可見面數(shù)不超過 100k,draw call 應(yīng)該小于 100
- 移動(dòng)VR中,應(yīng)該僅采用烘培光照,避免采用靜態(tài)光照,盡量減少乳白色的采用
- VR中采用靜態(tài)光時(shí),對(duì)所有的模型邁入 Single sample shadow from stationary lights ,這會(huì)降低陰霾質(zhì)量,但會(huì)提高操控性
- 在VR中,能啟用Project Setting-Rendering-VR-Mobile multi-view,能降低大約50%的drawcall!
- 啟用Instanced Stereo,也能減少繪制調(diào)用
- 對(duì)于 motion controller , 啟用 disable low latency update 也能提升操控性
- 采用precompute visibility volume 來降低繪制調(diào)用,visibility cell size 越小,效率越高,但對(duì)內(nèi)存和build的占用也會(huì)提高
設(shè)置選項(xiàng)
- 在移動(dòng)端平臺(tái)上,能考慮停用以下選項(xiàng),能減少編譯天數(shù)和包大小,對(duì)forward shading的效用更明顯