Doom4技術採訪

DOOM4技術訪談:


原文地址 http://www.eurogamer.net/articles/digitalfoundry-2016-doom-tech-interview

Digital Foundry採訪 id軟件如何使用技術創建了迄今爲止視覺效果最好的60fps遊戲。



 已經有一段時間了,因爲我們完成了其中的一個!在將我們的技術分析整合到id軟、件的夢幻般的Doom重新啓動中,有一件事變得很清楚 - 

這是一款在保持非常高的幀速率的同時保持卓越的視覺保真度的遊戲。這裏的成就規模不可能被低估:我們正在看一個60fps的遊戲,

比許多(如果不是大多數)30fps的遊戲更好地處理視覺 效果。他們是怎麼做到的?


遊戲花費了這麼多時間才能開發出,許多創作者在GDC和Siggraph這樣的技術進行交流,讓我們深入瞭解許多現代遊戲的技術基礎,甚至出現在這些遊戲之前

 - 當我們整理我們的文章和視頻時,它給了我們寶貴的研究。

但是很少有人知道idTech6,它與其前身的關係,實際上是對取消的Doom 4的引擎的補充。

所以當有機會組織一個“沒有禁止”的技術採訪id軟件,我們抓住了它的熱情。在這件作品中,我們將深入研究,這是idTech的發展,它是遊
\戲最新的迭代所依據的核心渲染原則,團隊對解決方案,縮放和抗鋸齒的觀點,加上當然越來越多異步計算的重要性,以及新一代PC圖形API。

而且這件作品的時機也是幸運的 - 本週,ID發佈了期待已久的Vulkan補丁,爲Doom帶來了一些遊戲改變的PC遊戲改進,特別是AMD Radeon的硬
件。開發人員現在應該從DirectX 11開始,並擁抱Vulkan和DX12嗎?你會在下面找到。
回答問題是一個真正的誰是id軟件的關鍵技術人員。非常感謝球隊給我們這麼多時間的這篇文章。


Robert A Duffy - 首席技術官
比利汗 - 首席程序員
Tiago Sousa - 首席渲染程序員
高級引擎程序員Jean Geffroy
Axel Gneiting - 高級引擎程序員




約翰·林尼曼(John Linneman)對Doom的原始分析視頻深入瞭解爲什麼這個標題是如此強大的技術展示。
Digital Foundry:當我們看看Doom和id軟件的歷史時,我們看到了卓越的技術遺產。idTech6的目標是什麼?您對最終結果感到滿意嗎?


羅伯特·達菲:原來的目標很簡單; 我們希望保持遊戲在60fps的同時,達到最佳的視覺效果和最好的FPS遊戲。顯然,成爲實現這些目標的基礎
的較小目標的整體列表,但作爲主要消費者面臨的技術目標,就是這些目標。我們對最終結果非常滿意,但我們正在繼續推出控制檯更新,
Vulkan對PC的支持,以及面向社區的其他更新。


Digital Foundry:我們能否瞭解到idTech6 的時間表 - 它是否與Doom開發同時進行,在最終的遊戲和被取消的Doom 4中呢?或者當您目標

60fps時,您是否徹底改造了基礎技術?

羅伯特·達菲(Robert A Duffy):正如我們原型的Doom遊戲和環境開始形成的,很明顯我們需要將技術以不同的方向來實現我們認爲現代
Doom遊戲所必需的視覺保真度。60fps始終是遊戲的目標,但是當我們開始添加充分的動態照明,陰影和其他功能時,性能目標成爲工程團隊的

主要目標。簡短的答案是引擎技術有了很大的變化,但不是一切。


Digital Foundry:您能否討論idTech5和6之間的主要變化?憤怒特別是一種更加靜態的照明方式,而且大概是前鋒式的渲染器。另一方面,

Doom更加豐富的動態燈光和陰影。它是一種形式的tile延遲還是聚集的延遲渲染器?


Tiago Sousa:從一開始,我們對idTech 6渲染器的目標之一就是儘可能地實現性能和統一的設計,以使照明,陰影和細節在不同的表面類型之
間無縫地工作; 同時牢記可擴展性和控制檯,MSAA /良好的圖像質量和MGPU [多GPU]可擴展性等。

當前的渲染器是一個混合的轉發和延遲渲染器。通過這樣的設計,我們嘗試從兩個世界獲得最佳效果:前瞻性渲染器的簡單性和延遲的靈活性
能夠有效地逼近某些技術。從一開始的另一個目標是改善藝術團隊的迭代次數,以及磁盤空間消耗等。我們希望從idTech5的衝壓方法中脫穎而
出 - 基本上如何將細節應用於紋理。在過去,它依賴於預烘烤紋理結果到大質感等等 - 在這個迭代中,我們將這個過程翻譯成了一個實時的
GPU方法,沒有繪製調用。


對於用於饋送GPU的所有輸入數據的參數化,來自Ola Olson等人的“聚集延遲和前向着色”及其衍生的“實用聚類陰影”來自於Emil Person,
在研究階段早期就引起了我的興趣,因爲它相對簡單,優雅,所以我們從這個研究擴大了。用於遮蔽世界所需的所有體積數據基本上都是通過
照相機平截頭體形的體素結構進行饋送,其中所有這樣的體積被記錄。它允許相當大量的燈光,基於圖像的光量,貼花等。




Vulkan帶來的性能改進的初步概述。
Digital Foundry:最新發動機中存在多少idTech5 DNA?例如虛擬紋理似乎仍然存在。

比利汗:我們認爲我們的引擎是一個不斷髮展的有機體,不斷改進和適應。對於我們來說,不斷停留在發動機技術的邊緣是非常重要的。Doom
仍然使用虛擬材料向PBR渲染器饋送紋理數據。


Digital Foundry:轉向新的渲染設備需要資產創造和工具發生重大變化?
Tiago Sousa:是的,正如我們提到的,我們的一個大目標是將idTech 6轉變爲一個物理上可行的渲染模型。這開始是將​​整個團隊從LDR /線性
不可知渲染轉變爲高動態範圍渲染和線性正確渲染,然後在此步驟之後,我們將團隊引入基於物理的陰影。
這是一個相當大的調整,特別是藝術團隊,因爲他們不得不習慣於色彩映射,圖像曝光,線性正確性,物理上合理的紋理參數化,一致的資產

創造等等。即使是工程隊,這是一個很大的轉變; 讓所有人都瞭解所有相關的細微差別 - 例如將所有輸入轉換爲線性正確,HDR光照貼圖,不

需要任何魔術乘數等等,這一切都需要一致和高質量的渲染。


Digital Foundry: Xbox One上有限的ESRAM空間如何影響動態分辨率縮放實現?您對ESRAM管理的一般方法是什麼?

Tiago Sousa :它與分辨率縮放沒有直接的相關性。ESRAM用於加速帶寬限制技術,特別是深度預製和陰影貼圖渲染。然後像light buffer / 

thinGbuffer這樣的東西,渲染目標也存儲在ESRAM中,以實現性能。這些目標稍後重新用於加快透明度。


Digital Foundry:我們不禁要注意到整個金屬陰影中有多麼重要的元素。物理陰影的方法是什麼?有沒有具體的技術,比如說,對於惡魔的皮


膚?


Tiago Sousa:我們的照明方法是實時近似和預先計算的組件的組合。對於間接照明,idTech 6使用預先製作的間接照明用於靜態幾何,並與動


態輻射體積近似混合使用。對於間接鏡面反射,我們使用基於圖像的照明方法。


實時組件使用最先進的直接照明分析照明模型以及陰影抗混疊,與實時定向遮擋和反射近似混合。皮膚次表面散射實際上通過紋理查找和烘焙

半透明數據近似。這是相當有效的 - 特別是與通常昂貴的屏幕空間近似相比。

我們這裏最大的成就是它的表現以及不同表面類型的一致性,儘管我們一直在尋求進一步改進的方式。豐富的路線測試了Radeon R9 Fury X上

的Vulkan補丁,以超級設置(加上16倍AF和高運動模糊)運行在4K。還有一些Nvidia GeForce GTX 1070的性能比較呢?





數字鑄造廠:您可以通過8x TSSAA實現如何工作嗎?主機和PC之間是否一致?


Tiago Sousa:我一直是攤牌/解耦框架成本的粉絲。TSSAA基本上是這樣做的 - 它通過混合的圖像重新投影和用於累積緩衝器的耦合啓發式方、
法來重構幾幀中獲取的數據的大約8x超採樣圖像。

它具有相對最小的運行時成本,加上時間抗鋸齒的附加優點,以嘗試減輕幀間的混疊(例如,在緩慢移動攝像機時的陰影或幾何混疊)。控制
臺和個人電腦之間大部分是相同的實現方式,不同之處在於針對遊戲機的一些GCN特定優化和一些輕微的簡化。


Digital Foundry:動態分辨率縮放在控制檯上運行良好 - 是否有技術原因妨礙了在PC上工作的相同技術?

比利汗:動態分辨率縮放實際上適用於所有平臺。我們目前沒有在PC上啓用動態分辨率縮放,因爲用戶可以從設置菜單中有效地選擇所需的分
辨率。我們提供靜態分辨率縮放,允許用戶以高分辨率運行,然後按比例降低渲染緩衝區以實現更高的幀速率。


Digital Foundry:縮放器在PS4和Xbox One上都非常有效。你能給我們一個關於解決問題的重要性的想法及其在圖像質量方面的重要性?

Tiago Sousa:我們不使用PS4 / Xbox One的本地縮放器,我們通過相當優化的雙三次濾波器進行自己的上採樣。同樣重要的是要提到,TSSAA
隱含地考慮了動態分辨率縮放變化,減輕了從分辨率變化發生的混疊。

分辨率重要性是顯示和顯示區域的眼睛距離的函數 - 基本上是角度分辨率 - 並且在一定程度上也是從個體視力。這意味着離顯示器越遠,像素密度

越高。在一定距離/像素密度閾值之後,您基本上浪費了可用於改善其他內容的性能。例如,在VR中,您的臉上有這樣一個微小的顯示,


爲了更高的像素密度,對於處理幾何的事情來說仍然是有意義的。


通過控制檯遊戲,玩家通常在兩米或更遠的距離上播放,並且您的顯示尺寸是常見的(例如70“左右),它開始相對較快地成爲性能浪費,特

別是如果我們在談論4K如果一個開發人員以強力的方式做到這一點,那麼你基本上是對同一個內容進行光柵化,但實際上它的速度要慢4倍,即

使是用戶坐在顯示屏旁邊的桌面渲染,我也可以想到無數的的解耦成本的方法,而不僅僅是強力渲染。

id軟件在當前一代的遊戲機上花費了大量的精力,以60fps的速度運行Doom。以下是以單人模式疊加的方式。


Digital Foundry:您可以在PC上討論方向遮擋設置嗎?

Tiago Sousa:較低的設置使用較低的樣品數量,較高的設置使用較高的樣品計數。實際上我們實際使用的樣本數量相對較少,而依賴於TSSAA

來重構比幀更高質量的結果。這是非常好的,在1440p的PC上大約0.1ms。


Digital Foundry:是否可以分離物體運動模糊和相機運動模糊?

Tiago Sousa:從正確性/可信度的角度來看,運動模糊實際上是模擬在一定時間內的圖像曝光到膠片/數字傳感器之間的累積光線。爲了近似,

我們需要重建像素運動歷史。通常通過將投影表面的相對速度輸出到觀察平面中,在當前幀和先前幀之間,而下一幀通常是外推的實現目的。
因此,從物理上看來,分離物體(即動力學)和攝像機(即靜態或僅攝像機旋轉)並不太有意義。它是程序上可能的,但會引入明顯的文物,
而不是看起來不錯。


Digital Foundry:渲染模式之間的技術差異是什麼 - 正常,粗糙和電影?


Tiago Sousa:每個渲染模式都被設計成使得玩家實際上喜歡玩它,並且對於每個玩法具有相對不同的視覺體驗。在技​​術上,它只是簡單地調整
參數化,如燈飽和度,色調映射,相機自動曝光等。電影模式還增加了一些基於圖像的鏡頭閃光和漸暈 - 在明亮的來源上更爲明顯 - 雖然比較細膩。







Digital Foundry:您可以深入瞭解異步計算機的優勢,讓您在控制檯和PS4與Xbox One之間的任何差異?

Jean Geffroy:在看GPU性能的時候,一些變得很明顯的東西是,一些渲染傳遞幾乎沒有使用計算單元。作爲示例,陰影映射呈現通常被固定管

道處理(例如光柵化)和存儲器帶寬而不是原始計算性能所困擾。這意味着當渲染您的影子貼圖時,如果沒有並行運行,則會有效地浪費了大

量的GPU處理能力。

即使幾何傳遞與更密集的陰影計算也可能無法一致地最大限度地計算單位由於與內部圖形管道相關的許多原因。無論何時出現這種情況,異步

計算着色器都可以利用這些未使用的計算單元進行其他任務。這是我們用Doom採取的方法。我們的後處理和色調映射例如與大部分圖形工作並

行運行。這是一個很好的例子,只是在圖形上安排不同的工作,計算隊列可能會導致多個ms的增益。


這只是一個例子,但一般來說,異步計算是充分利用GPU的好工具。每當有可能將某些內存密集型工作與某些計算密集型任務重疊時,就有機會
提高性能。我們在兩個控制檯上都使用異步計算。在可用隊列數量方面存在一些硬件差異,但是通過我們調度計算任務的方式,這其實並不重要。



Pre-Vulkan,看看使用Radeon R9 390和GTX 970的Doom如何堆疊PC的性能。

Digital Foundry:我們會通過Vulkan在PC版本中看到異步計算嗎?

比利汗:是的,異步計算將廣泛應用於在AMD硬件上運行的PC Vulkan版本。Vulkan可以讓我們終於把它更多地代入金屬。使用Vulkan消除了強
大的驅動程序層,這將提供在OpenGL或DX上無法實現的顯着性能改進。


Digital Foundry:您是否預見到異步計算將是跨格式的所有引擎的主要因素?

比利汗:現在的時候了,真的。Doom已經是一個很明顯的例子,即異步計算在正確使用時可以大大增強遊戲的性能和外觀。未來,計算和異步

計算將更廣泛地用於idTech6。幾乎可以肯定的是,更多的開發人員將會利用計算和異步計算,因爲他們發現如何在遊戲中有效地使用它們


Digital Foundry:您對Vulkan / DX12作爲三重遊戲開發的主要API有何想法?還還爲時過早嗎?

Axel Gneiting:我建議任何人儘快開始。絕對有一個學習曲線,但好處是顯而易見的。Vulkan實際上已經有了相當不錯的工具支持與

RenderDoc已經和調試層現在真的很有用。Vulkan的最大優點是着色器編譯器,調試圖層和RenderDoc都是開源的。此外,它完全支持Windows 7
,因此與DX12相比,操作系統支持沒有任何不利之處。


Tiago Sousa:從不同的角度來看,我認爲看到遊戲的結果完全利用任何新的API的設計將是有趣的 - 因爲還沒有遊戲。我期待着像動態陰影這
樣的屏幕上幾何細節的數量相對較大的跳躍。另一個被忽視的方面是,較低的CPU開銷將使藝術團隊能夠更有效地工作 - 我預測這方面的歡迎
生產率提升。

另一個使用Vulkan要看PC的表現。要獲得與主機相當的體驗,您真的需要GTX 960 / R9 380級硬件和四核處理器,這表明ID在主機優化方面做
了一個工作。


Digital Foundry:您能給我們一個如何利用控制檯CPU和優化機會的想法嗎?PC版本真的需要一個四面體,相對來說,應該用PS4 / Xbox One美洲虎

擦拭地板。

Axel Gneiting:我們正在兩個主機上使用所有七個可用內核,在某些幀中幾乎整個CPU時間都用完了。CPU側渲染和命令緩衝區生成代碼非常

平行。我懷疑Vulkan版本的遊戲將在合理快速的雙核系統上運行良好。OpenGL佔用了整個核心,而Vulkan允許我們與其他工作分享。

Digital Foundry:沒有打破NDAs,遊戲技術的未來似乎顯示出對GPU功率與CPU的更大偏差。您認爲在使用GPU來處理與CPU相關的任務方面,您

認爲還有更多可以使用idTech6?


Axel Gneit:一般來說,很難預測未來,所以我們儘量保持我們的代碼儘可能簡單直接,以便對任何架構做出反應。現在看來,我們正在走向
這個方向。


Tiago Sousa:從長遠來看,我可以預見未來,許多GPU以更有趣的方式組合在一起,而不僅僅是MGPU AFR(多GPU替代幀渲染)的舊學校方式。
特別是現在開發人員正試圖平衡/緩存成本,以便能夠跨不同的平臺進行擴展 - 跨GPU的同步正在成爲AFR類型方法的重大瓶頸。

Digital Foundry:在beta階段,您可以從控制檯版本的自適應轉換爲直接的v-sync解決方案。你在那裏有什麼想法?


Jean Geffroy:我們在封閉式和開放式測試版之間進行了很多改進,包括我們的v-sync解決方案。我們將其改爲使用三緩衝解決方案,我們始
終以最小延遲呈現由GPU呈現的最後一個圖像。這與Nvidia最近在PC上推出的Fast Sync非常相似。

在最後一個測試版中看看控制檯多人遊戲的表現,所以非常接近最終的MP遊戲幀率。


Digital Foundry:您能否給出我們關於如何優化性能的想法?

Axel Gneiting:我不認爲這是一個很大的祕密。和其他人一樣,我們使用分析器,查找熱點,優化它們並重復。

Tiago Sousa:我喜歡保持簡單。通常我會從簡約的數據和代碼(算法角度)處理事情,同時考慮到目標硬件和一系列未來學。例如,處理所有
這些數據是有意義的,還是隻能處理一個子集呢?這是最小的數據集嗎?如果解決方案有點在火箭科學/瘋狂的一面,我們可以做些什麼來儘可
能簡單?如何在較慢的平臺上運行良好,擴展程度如何?等等。當然,通常的輪廓指導微觀優化。

Digital Foundry:我們看到idTech5使用在許多Zenimax的工作室上 - 是爲了其他開發者設計的idTech6嗎?

羅伯特·達菲(Robert A Duffy):我們的Engine(引擎)開發一般都是由我們的工作室在積極開發中的需求引導的。與試圖出售或許可引擎技
術的公司不同,我們的奢侈品被合理地專門製造。



隨着時間的推移,我們正在擴展技術的能力,以適應更廣泛的功能,值得注意的是,我們也在不同的工作室之間進行了大量的技術共享。如果

一個姊妹工作室做得很好,我們不要重新發明輪子,所以我們只問“你做的好嗎?” - 這是更快的。

Digital Foundry:下一步爲idTech6?你正在研究哪些主要的興趣領域?

Robert A Duffy:使用工具更好的開發人員支持是一個主要的近期目標,因爲使管道更好的藝術和設計是關鍵。我們在E3 2016展示了一
個“Doom Universe”VR技術演示,並且在VR硬件的前期工作的基礎上,我們現在正在推動軟件方面的努力。我們認爲技術基礎在90fps +以極

高的仿真度處於非常好的位置。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章