幾乎每一個玩過電腦游戲的人,都聽過DirectX的大名。作為Windows系統自帶的圖形API(應用程序編程接口),大部分PC游戲都需要它的支持。
目前DirectX的最新版本是DirectX12,它發布于6年前,已經相當長時間沒有大更新過了,昨天微軟終于公布了它的升級版——DirectX12Ultimate。從字面意思上來看,它是DX12的終極版,它將會隨著Win102004系統更新一同推送。
DirectX12Ultimate都用哪些特性?從DX12開始,微軟就已經將主機和PC之間的圖形接口打通,Win10和XboxOne都使用了DX12作為圖形API。使用相同API帶來的好處也十分明顯,游戲公司在開發游戲時,不需要再為Xbox和PC端的移植而煩惱,所以我們能看到,大量Xbox游戲出現在PC的應用商店中。
這次微軟發布的DirectX12Ultimate也同樣是跨平臺的API,這也讓下一代Xbox理所當然的獲得了PC上的某些畫面特性,比如老黃普及的光線追蹤。
DirectXRaytracingTier1.1這次微軟將2018年發布的DXR1.0更新到了DXR1.1版本,這是一次增量更新,最明顯的變化有:
為現有的光線追蹤管線狀態對象(PipelineStateObject)加入了額外的著色器(Shader)。支持GPU執行時間軸自動判定需要處理的光線數量。引入新的內聯式光線追蹤。這些特性為游戲開發者提供了一套規避復雜光線追蹤場景的***,讓開發者可以通過調用新函數,獲得物體遮擋查詢、剔除等功能,讓開發者能更快的構建光線追蹤的場景,給游戲提供更好的光追效果和性能。
在微軟發布DirectX12Ultimate后,NVIDIA表示將RTX系列處理器將完全支持DXR1.1特效,AMD也宣布將在RDNA2架構中支持該特性。
VRS(可變速率著色)除了光追外,之前NVIDIA推出的VRS技術也被微軟認可,并將其加入DirectX12Ultimate中。VRS全稱是可變速率著色技術,它最明顯的作用就是降低顯示畫面中一些不重要區域色彩紋理,從而提升畫面的流暢度。
在這一技術被應用之前,GPU需要為畫面上的每一個像素點單獨著色。而VRS就是對畫面區域進行劃分,為不同的區域選擇不同的著色分辨率,細節要求不高的區域就將多個像素點一起著色,大幅降低了GPU著色的次數,大大減輕了顯卡的計算壓力。
比如上面這張圖,畫面邊緣最不顯眼位置的著色分辨率就被降到了最低,雖然這部分畫面的質量有所下降,但由于它只是背景,玩家不會有明顯的感知。省下來的GPU資源,則用于提升幀率,減少感知更明顯的卡頓現象。
可以說,有了VRS技術后,平均幀率不高的中低端顯卡將將會獲得不小的體驗提升。
MeshShader除了為最后為像素著色外,圖形渲染在前期還需要完成物體的3D模型計算渲染。這個工作之前需要向CPU發送一個DrawCall(繪制調用)。通常情況下,它會因為CPU的性能瓶頸,限制GPU的發揮。
MeshShader的可以解決這一問題,它可以讓開發人員不用考慮單個頂點或者單個圖元,用一組預定的線程更高效的完成渲染流程。
MeshShader可以進一步提幾何圖形的細化程度,例如對硬件進行編程,并用簡單的方式描述樹干枝杈的位置,最后生成細節更多的樹皮樹葉。
有了MeshShader后,游戲場景中灌木從,植被等物體將有詳細的細節,能進一步提高場景的真實性。
SamplerFeedback(采樣器反饋)這一功能其實和VRS類似,都是通過減少某些冗余信息,降低GPU負載并提高性能。
與視頻壓縮采用幀與幀之間的畫面矢量預測不同,游戲中的渲染大部分都是從「0」開始,也就是不停地重復獲取頂點、視角轉換、投影、照明、剪裁、柵格化的工作,不管前后兩幀畫面有多少相同。
事實上,大多數游戲在的場景變動都十分緩慢,大多數「對象」在畫面中并沒有改變(例如天空,遠景)。采樣器反饋就是通過降低對這些對象著色的速度(比如每3幀一次),來降低GPU的工作壓力。
這一功能可減少重復對遠景和緩慢變化的陰影著色對性能影響,進一步提升畫面的幀率。
總結:開發者福利,NV大獲全勝這次的DirectX12Ultimate是一次增量更新,加入了之前NVIDIA推出的新技術,包括光追和VRS。有別于DX10和DX11的技術躍進,DirectX12Ultimate更多是為開發者提供更底層的優化空間。
反映在游戲上,我們可以會看到:更有經驗和實力的開發者會用DX12Ultimate的新特性做出非常驚艷的游戲畫面,同時性能優化也非常出色。但如果是游戲開發者沒有調用這些工具,它將不會對畫面和畫面效能產生太大提高。
不過DirectX12Ultimate橫跨主機與PC,一些首發于主機的游戲在***到PC平臺后或許也能獲得新特性的優化。
最后說一個好消息:NVIDIA表示RTX系列將完全支持DirectX12Ultimate的所有特性,AMD即將推出的Navi架構顯卡也支持DirectX12Ultimate,AMD已經發布了第一個運行光追的DEMO。
未來幾年,光追或將全面普及。