如今,我們可以預先計算出所有這類吃重的混合,將它存成虛擬貼圖紋理,只有在必要時提前載入並顯示。此外,我們不再需要於曲面細分階段進行物質混合。所以儘管我們使用了曲面細分(形狀緊密地貼合排列在一起)效能上卻沒有明顯地降低。
如何運作?
地形本身就是種非常複雜的東西,是由眾多的物質所構成:雜草、沙子、石頭… 任何您說得出來的東西。最複雜的情況下,每幀的每個像素裡我們混合了八種物質,這會對您的 GPU 造成嚴重的影響。地形以前是每幀渲染的。
以往,我們是用「蠻力」的方法在水中創造出反射,從反射方向複製場景的渲染。如今這會是最有效率的方式嗎?當然不是。新的繪圖引擎讓我們可以運用環境光反射來改善這點。
如何運作?
我們將環境光反射與視差結合,修正了保存在預先計算反射資料中的反射探頭。另一個好處是,這種新方法增加了水體的保真度,因為現在我們反射了自己確實看見的東西,而不是像以前那樣將反射簡化。
在資源方面上,大家都知道陰影是最為吃重的圖形選項。但對我們來說不會!因為我們使用了跟虛擬貼圖紋理類似的方式來避免對性能造成更多的負載。
如何運作?
大多數的陰影是在第一次載入地圖時計算出來,而且只有在關卡改變時才會重新計算。這樣就能大幅提升性能,就算是低階硬體設備也能正確無誤地照亮物件。
介面也進行了大規模的最佳化,以降低性能上的負載和記憶體消耗。
如何運作?
被不透明使用者介面元素(小地圖和傷害面板)所蓋住的 3D 景觀不再渲染,這樣就能節省 GPU 的性能。
簡單的小技巧:
每個履帶的三角形頂點都被用來計算客戶端的履帶物理性。讓我們把它換算成數字;單就計算量就大於 10,000 次。而這還只是戰車行走了整整一步而已。很明顯地,這沒什麼效率可言。
改變之處
現在履帶的運動方式是按照每個履帶塊來進行計算的(平均戰車每行走一步約計算 100 次)。在提高性能的同時,這樣的最佳化不會影響到視覺品質。它降低了 GPU 的負載,同時履帶也能展現出自然而逼真的運動方式。
1.0 更新為樹木引進了先進的告示牌系統。
改變之處
樹木被烤乾成具有厚度和照明資料等全部資訊在內的告示牌(帶有貼圖紋理的扁平長方形)。多虧了這系統,我們可以將樹木變成離觀看者更近的告示牌 (而且您絲毫不會注意到差異!)。
會根據鏡頭到物件間的距離以及您的設定來對細緻度進行調整。您越靠近該物件,它看起來就會越細緻。拉遠就會發生相反的情況。同理而言,如果看不見就用不著將牆上的每一道裂縫給詳細繪製出來。
改變之處
隨著新繪圖引擎的轉換,會盡可能在短時間之內流暢地進行調整,所以不同細緻度間的轉換不會有不和諧的情況出現。更棒的是,這種無縫轉換是不需要額外資源的。
注意:為了用標準渲染來完成這些,我們必須放棄使用零級(最佳品質)的細緻度。實際上這與次佳之間的品質差異難以區分,但是這個決定讓我們可以維持相同的最低系統需求。
還記得同時發生幾個爆炸就會導致每秒幀數下降甚至更糟──卡住嗎?我們透過加入粒子多解析度渲染來確保它不會再次發生。
如何運作?
現在同時出現幾個爆炸時,只會沿著邊緣顯示高解析度的特效,而內部則以較低的解析度來渲染。這種轉換實際上並不明顯,但關鍵時刻能省下大量的性能。