您的位置: 單機(jī) > 攻略 > 常見(jiàn)問(wèn)題 > 攻略詳情

古劍奇譚2 卡頓原因科學(xué)分析 技術(shù)宅帶你剖析優(yōu)化

時(shí)間:2013-07-22 10:00:53
  • 來(lái)源:阿澤
  • 作者:售夢(mèng)者
  • 編輯:售夢(mèng)者
0

接下來(lái),簡(jiǎn)單分析一下大家都比較關(guān)心的優(yōu)化問(wèn)題,即“會(huì)導(dǎo)致‘卡’的一部分原因”。

渣優(yōu)化什么的,真的不想噴了。隨便一個(gè)簡(jiǎn)單的場(chǎng)景就近千drawcall,完全沒(méi)有節(jié)制??傊褪歉鞣N浪費(fèi)!次數(shù)多也就算了,很多物體還都是各種地面:

是地面也就算了。你說(shuō)你就一平面!還是基本看不見(jiàn)的!你妹的!有必要用6144個(gè)頂點(diǎn)2048個(gè)面?????

當(dāng)前幀繪制的第一個(gè)物體:

這是天空球……作為背景它的精度逆天了……

于是我決定必須要分析一下模型。

果然,天空(包括云層)就用了近2W面,略顯奢侈了,你這個(gè)畫面效果根本用不著如此浪費(fèi)吖!

喔。我終于弄懂安全褲的發(fā)型了:

原來(lái)真的很像深海電鰩……

另外,我證實(shí)了安全褲是有胸的!雖然形狀有點(diǎn)奇特,但確實(shí)完整帶溝!

Good!

模型的質(zhì)量沒(méi)有太大的問(wèn)題,但有些地方不是很均勻,比如無(wú)射的呆毛稍微有點(diǎn)費(fèi)了。

可是脖子卻太省了點(diǎn),轉(zhuǎn)起來(lái)很別扭。

(嗯,喉結(jié)不會(huì)動(dòng),這孩子肯定沒(méi)看過(guò)張學(xué)友唱歌~)

建筑方面也還不錯(cuò)(雖然只可遠(yuǎn)觀(因?yàn)槊鏀?shù)不多))

重點(diǎn)來(lái)了。

首先,LOD和視錐體裁剪肯定是有的,但!請(qǐng)看:

還是之前的問(wèn)題——你妹啊!這地形就是一平面啊!你用將近四萬(wàn)面渲染了40多個(gè)平面??!

真的,除了河道低一點(diǎn)之外,其它地方都是平的??!我勒個(gè)去啊!

如果你這是起伏不平的山地我就不說(shuō)了。我勒個(gè)去??!

更要命的是,沒(méi)有任何occlusion culling——

圖中紅色箭頭是我當(dāng)前所在位置和面對(duì)的方向??梢?jiàn),大多數(shù)渲染出來(lái)的對(duì)象我是看不到的。

比如這個(gè)大皮鞋,絕對(duì)是被建筑擋住、肯定在我的視線之外,但還是照樣無(wú)差別的被渲染出來(lái)了:

而且前面提到的LOD只限于地形,也就是說(shuō)這里的LOD根本沒(méi)有任何作用、沒(méi)有任何意義……只能說(shuō)“沒(méi)有LOD的話會(huì)更卡”而不能說(shuō)“LOD可以提高效率”!

此時(shí)的大皮鞋還是被蓋住的狀態(tài),但!這個(gè)目前根本看不到的、就算看到也是被蓋住的模型——

它里面仍然是完整的!

我勒個(gè)去!后來(lái)的劇情里,就算我走到它跟前了,也看不到它的真容!——看不到的東西就不要了嘛!不要了嘛!這玩意也是兩萬(wàn)多面的模型啊!

類似的情況還有一些。比如大皮鞋附近的一個(gè)小攤,也是根本看不到的東西,也有16000多面的消耗:

再比如這些我看不到的樹,又是近15000面的浪費(fèi)?。?/p>

而且數(shù)量還這么多……

Occlusion Culling不好做,我理解,但至少也應(yīng)該手動(dòng)配一下,或者用四叉樹濾一下吧……基本的優(yōu)化還是有必要花點(diǎn)時(shí)間的。

總而言之,這一幀上千次DrawCall(可理解為對(duì)顯卡的消耗),其中至少2/3是渲染被遮擋的、看不到的物體,另外1/3中還包含有“超精細(xì)”的廢物地面網(wǎng)格。F**k!你們就這么喜歡讓顯卡做無(wú)用功!?

對(duì)了,我說(shuō)過(guò):如果用同樣的方法渲染10000個(gè)面,那么“渲染十個(gè)1000面的模型”會(huì)比“只渲染一個(gè)10000面的模型”更慢。

然后,你看這些草,雖然只有2000多面,但竟有20多個(gè)物體:

這種情況下,應(yīng)該是物體越少越高效。

水邊的墻也是一樣,你又沒(méi)裁掉,沒(méi)必要分那么細(xì)吧:

著色方面。

先上一張SSAO的Pass:

效果是有的,不知為什么到了最終畫面中就不太明顯。

可能是最后合成做疵了。而且,貌似頭發(fā)沒(méi)有?哪路或多。X!這發(fā)型是最需要AO的,對(duì)吧……

別說(shuō)沒(méi)做過(guò)就沒(méi)發(fā)言權(quán)。看當(dāng)年哥的SSAO(下圖)做得多和諧、多自然:

有玩家反映陰影的開銷很大。我看了一下它的PixelShader,用掉130多個(gè)指令槽,果然是效率比較低的,這還只是像素。再加上需要把(幾乎)每個(gè)模型都投影到光源,因此……結(jié)果……就是現(xiàn)在這樣了。

如果你對(duì)著色器的instruction slot沒(méi)有概念,那么很簡(jiǎn)單,slot用得越多=GPU的工作量越大。我們可以對(duì)比一下:

最爛的、效果最差的陰影貼圖,我試了一下,大概需要50個(gè)指令槽。

最常用的Blinn像素著色(基本上就是大家在游戲中見(jiàn)過(guò)最多的物體表面效果),在比較完整的、標(biāo)準(zhǔn)的情況下大約也是50個(gè)指令槽。

**2中多數(shù)的模型材質(zhì)的像素著色器,少則三四十、多則七八十。

**2的DOF(景深)大約只需要45個(gè)slot,因此這個(gè)不會(huì)太浪費(fèi)。

而LightShaft雖然也僅有40多,但需要迭代多次,因此開銷會(huì)比較大。不過(guò)應(yīng)該是做了降采樣,所以尚可接受。

**2使用了Enhanced Subpixel Morphological Antialiasing(SMAA)。雖然SMAA需要150個(gè)指令槽,但它一幀只用一次,所以仍是比較高效的后期抗鋸齒。

至于頂點(diǎn)著色器,簡(jiǎn)單說(shuō)凡是會(huì)隨風(fēng)擺動(dòng)的模型,基本都在120個(gè)slot以上。不過(guò),大家可以這樣理解:頂點(diǎn)的數(shù)量是比像素少很多的,如果不是**2在面數(shù)上的奢侈,這方面應(yīng)該可以表現(xiàn)得比較正常??上В麄儗?duì)基礎(chǔ)的重視還有待加強(qiáng)。

最后,大家要清楚,現(xiàn)在的貼圖精度,就算開到最高,也非常低。主角是很精致的,一張頭發(fā)都有1024*1024。但其它NPC整個(gè)人頂多也就256*256。

假如正式版更“高清”,那么壓力也會(huì)相應(yīng)提升。

其它的嘛……

**2在CPU方面還有很大的優(yōu)化空間?,F(xiàn)在八成還是有內(nèi)存泄露的可能性。具體就不多說(shuō)了,主要是我不想花太多精力去評(píng)測(cè)一坨X。

以上僅代表我個(gè)人的觀點(diǎn),因?yàn)槲乙仓皇谴致苑治?,所以肯定?huì)有錯(cuò)漏。希望大家不要太較真。

友情提示:支持鍵盤左右鍵"←""→"翻頁(yè)
6.9
已有72人評(píng)分 您還未評(píng)分!
  • 類型:角色扮演
  • 發(fā)行:北京網(wǎng)元圣唐娛樂(lè)科技有限公司
  • 發(fā)售:2013年8月18日
  • 開發(fā):上海燭龍信息科技有限公司
  • 語(yǔ)言:簡(jiǎn)中
  • 平臺(tái):PC
  • 標(biāo)簽:國(guó)產(chǎn)

玩家點(diǎn)評(píng) 0人參與,0條評(píng)論)

收藏
違法和不良信息舉報(bào)
分享:

熱門評(píng)論

全部評(píng)論

3DM自運(yùn)營(yíng)游戲推薦 更多+