0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

微軟DirectX 12 Ultimate解讀 到底有哪些變化

工程師鄧生 ? 來(lái)源:超能網(wǎng) ? 作者:倪嘉聲 ? 2020-03-21 13:47 ? 次閱讀

微軟已經(jīng)推出DirectX 12的最新升級(jí)版——DirectX 12 Ultimate,這可以說(shuō)是DirectX 12從2015年正式上線以來(lái)最為重大的一次更新,它加入了許多新的特性,實(shí)際上其中的部分特性已經(jīng)在去年十月份已經(jīng)預(yù)告過(guò)了,原本它應(yīng)該會(huì)作為Direct3D 12 Feature Levels 12_2出現(xiàn)的,不過(guò)這次微軟改名部上線了,給新版本DirectX 12加了個(gè)“Ultimate”的后綴,那今后比DirectX 12 Ultimate更強(qiáng)的新版本會(huì)叫什么呢?

首先DirectX 12 Ultimate中新增的特性主要有四大塊,分別是DirectX Raytracing 1.1、可變速率渲染、Mesh渲染器和采樣器反饋(Sampler Feedback)。

DirectX Raytracing 1.1

DirectX Raytracing(DXR)是微軟在2018年為DirectX 12引入的新特性,讓它支持實(shí)時(shí)光線追蹤處理。1.0版本的DXR在軟件特性上比較基礎(chǔ),可以說(shuō)它是圍繞著Turing架構(gòu)的硬件實(shí)現(xiàn)而設(shè)計(jì)的,當(dāng)時(shí)也沒(méi)有從軟件開(kāi)發(fā)角度去考慮如何實(shí)現(xiàn)光追。而1.1版本擴(kuò)展了DirectX 12在光線追蹤方面的軟件特性,讓它的效率更高,同時(shí)對(duì)開(kāi)發(fā)者也更友好。主要有三點(diǎn):

允許GPU直接調(diào)用光追

跑在GPU上面的著色器在1.1版本中可以直接調(diào)用光線追蹤,而無(wú)需折返CPU來(lái)調(diào)用。這項(xiàng)功能對(duì)于自適應(yīng)光線追蹤場(chǎng)景非常有用,尤其是在基于著色器實(shí)現(xiàn)的剔除、排序、分類(lèi)和細(xì)化等場(chǎng)景中?;旧辖窈蟮墓饩€追蹤工作可以在GPU上面準(zhǔn)備并立即生成。

按需加載光線追蹤著色器

當(dāng)玩家在游戲世界中移動(dòng)、新的物件變?yōu)榭梢?jiàn)的過(guò)程中,流式引擎可以根據(jù)此時(shí)的畫(huà)面需求來(lái)加載新的光線追蹤著色器,提高處理過(guò)程的效率。

內(nèi)聯(lián)光線追蹤

內(nèi)聯(lián)光線追蹤(Inline raytracing)是目前基于動(dòng)態(tài)著色器的光線追蹤的一種替代形式,你可以將其理解為一種簡(jiǎn)化的光線追蹤。開(kāi)發(fā)者在內(nèi)聯(lián)光線追蹤過(guò)程中將有更大的控制權(quán),并且可以在任意的著色階段調(diào)用它,包括計(jì)算著色和像素著色階段。它與傳統(tǒng)基于動(dòng)態(tài)著色器的光線追蹤可以混合使用,對(duì)于簡(jiǎn)單的場(chǎng)景,內(nèi)聯(lián)光線追蹤將會(huì)提供更好的性能表現(xiàn),而在復(fù)雜場(chǎng)景中,基于動(dòng)態(tài)著色器的光線追蹤將會(huì)提供更好的運(yùn)行效果。

可變速率著色

可變速率渲染(Variable Rate Shading)是一項(xiàng)由NVIDIA在其Turing GPU上率先引入的加速著色特性,具體介紹可以看我們的課堂文章:《超能課堂(212):VRS可變速率著色為什么可以提高幀數(shù)?》,這邊就簡(jiǎn)單講一下它的原理,而不再贅述細(xì)節(jié)了。

簡(jiǎn)單來(lái)說(shuō),VRS的原理是通過(guò)改變單次像素著色器操作所處理的像素?cái)?shù)量,來(lái)改變屏幕不同區(qū)域的著色質(zhì)量。簡(jiǎn)單來(lái)說(shuō),它可以改變同個(gè)畫(huà)面中不同部分的渲染精細(xì)度,它的用處是提高畫(huà)面幀數(shù)。

在不開(kāi)啟VRS的情況,也就是正常情況下,一幀畫(huà)面的所有像素都是獨(dú)立著色的;而開(kāi)啟VRS之后,原本獨(dú)立的像素被分成了一個(gè)個(gè)像素塊,它們會(huì)共享著色結(jié)果,此時(shí)GPU會(huì)根據(jù)程序員設(shè)定的重要性分級(jí)為所有像素塊分配不同的著色精細(xì)度。拿上面的圖片為例,車(chē)輛和遠(yuǎn)景部分的像素仍然是獨(dú)立著色的,但快速變動(dòng)的道路和路邊的像素塊就是區(qū)塊共同著色的,此時(shí)由于顯卡的計(jì)算資源得到了節(jié)約,所以游戲的幀數(shù)會(huì)有所提高。

在NVIDIA以外,Intel已經(jīng)在Ice Lake處理器中的第11代核顯中加入了針對(duì)VRS的支持,而AMD方面則暫時(shí)沒(méi)有相關(guān)支持,不過(guò)他們也已經(jīng)宣布將會(huì)在RDNA 2架構(gòu)中加入相關(guān)支持。

Mesh著色器:下一代幾何處理管線的基礎(chǔ)

在過(guò)去的二十年中,傳統(tǒng)的幾何圖形處理管線已經(jīng)增加了好幾個(gè)階段了,不過(guò)它的核心理念仍然基于傳統(tǒng)的光柵化預(yù)著色方法的,放在今天已經(jīng)過(guò)于復(fù)雜,并且拖累處理效率。硬件和軟件開(kāi)發(fā)者都希望改變這一現(xiàn)狀,于是,DirectX 12引入了Mesh著色器,它為開(kāi)發(fā)者提供了前所未有的可編程能力。

原本的管線中,GPU硬件的并行能力被隱藏,或者說(shuō)是被自動(dòng)化了,硬件會(huì)幫助打包操作然后并行執(zhí)行它,這很高效,但也存在問(wèn)題——靈活性不夠。

Mesh著色器就完全改變了這一過(guò)程,它不再是針對(duì)單一頂點(diǎn)或圖元的單一函數(shù),而是工作在整個(gè)計(jì)算線程組中。在某一階段中,Mesh著色器的每個(gè)線程都是針對(duì)一個(gè)頂點(diǎn),而在另外一個(gè)階段,每個(gè)線程針對(duì)著一個(gè)圖元。整個(gè)線程組的內(nèi)存是共享的,訪問(wèn)靈活度很高,同時(shí)開(kāi)發(fā)人員對(duì)硬件的控制權(quán)也更大,甚至還能啟發(fā)新的技術(shù),節(jié)約內(nèi)存使用量和內(nèi)存帶寬。

與Mesh著色器一同出現(xiàn)的還有一個(gè)可選的放大著色器(Amplification Shader)階段,它運(yùn)行在Mesh著色器之前,計(jì)算得到需要多少個(gè)Mesh著色器,并啟動(dòng)他們。

采樣器反饋

最后一個(gè)大特性就是采樣器反饋(Sampler Feedback),先說(shuō)效果:更好的視覺(jué)質(zhì)量、更短的加載時(shí)間和更少的卡頓。它的核心思想實(shí)際上就是讓程序只加載必要的紋理,把資源交給更有需要的地方。

采樣器反饋是允許游戲引擎去跟蹤紋理采樣器的使用方式,讓后者向引擎提供反饋,方法是生成“反饋圖(Feedback Map)”,它會(huì)記錄不同紋理區(qū)域的不同駐留等級(jí),然后程序可以根據(jù)這些反饋信息來(lái)做決策——包括該如何使用紋理采樣器和要在顯存中保留哪些資源等。這比原先的流程更為精確,可以更好地分配計(jì)算資源。簡(jiǎn)單來(lái)說(shuō)它的實(shí)際效果就是用更少的顯存渲染更大、更詳細(xì)的紋理。

另外,采樣器反饋還允許了一項(xiàng)新技術(shù)——紋理空間著色。它可以在不柵格化對(duì)象的情況下進(jìn)行對(duì)象著色,其中心目的就是緩存和重用著色結(jié)果,減少GPU的計(jì)算量。

總結(jié):面向新圖形架構(gòu)和下世代主機(jī)

在微軟推出DirectX 12 Ultimate之后,NVIDIA和AMD就迅速地宣布已經(jīng)/將要支持它,實(shí)際上,DirectX 12 Ultimate的絕大部分新特性可以說(shuō)是基于Turing架構(gòu)來(lái)的,NVIDIA在設(shè)計(jì)Turing架構(gòu)時(shí)可能預(yù)留了相當(dāng)部分的新特性是沒(méi)有公開(kāi)的。而AMD方面在目前只能說(shuō)是一個(gè)跟進(jìn)者,要用上新特性,首先要等到年底的RDNA 2架構(gòu)。

DirectX 12 Ultimate的這些特性很明顯有兩個(gè)共通的目標(biāo),一是提高開(kāi)發(fā)者對(duì)硬件的控制力,二是提高總體計(jì)算效率。這也是為下世代主機(jī)——Xbox Series X和傳說(shuō)中的Xbox Series S所準(zhǔn)備的,很難說(shuō)我們要等多長(zhǎng)時(shí)間才能看到這些特性被應(yīng)用到實(shí)際游戲中去——至少今年是看不到的,需要等引擎開(kāi)發(fā)商、游戲開(kāi)發(fā)者對(duì)新世代主機(jī)做適配或者做專(zhuān)門(mén)性的開(kāi)發(fā)后,我們才能在PC游戲中也看到這些技術(shù)的運(yùn)用。

責(zé)任編輯:wv

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 微軟
    +關(guān)注

    關(guān)注

    4

    文章

    6554

    瀏覽量

    103896
  • DirectX
    +關(guān)注

    關(guān)注

    1

    文章

    10

    瀏覽量

    9050
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    RTOS與Linux到底有什么區(qū)別

    很多做嵌入式開(kāi)發(fā)的小伙伴都存在這樣的疑惑:RTOS與Linux到底有什么區(qū)別?
    的頭像 發(fā)表于 10-29 09:53 ?210次閱讀

    功放和運(yùn)放到底是什么區(qū)別?

    想請(qǐng)問(wèn)一下功放和運(yùn)放到底是什么區(qū)別,感覺(jué)只要接一個(gè)小負(fù)載,運(yùn)放的輸出電流也可以很大?。?b class='flag-5'>到底有什么區(qū)別啊
    發(fā)表于 09-10 07:00

    CMOS運(yùn)放的輸入阻抗到底有多高呢?

    都說(shuō)CMOS運(yùn)放輸入阻抗高,到底有多高呢?可有一個(gè)量化指標(biāo)?
    發(fā)表于 09-06 06:59

    求助,這個(gè)電路U1A運(yùn)放同相端的R1電阻到底有什么作用?。?/a>

    想問(wèn)下這個(gè)電路U1A運(yùn)放同相端的R1電阻到底有什么作用???很郁悶。
    發(fā)表于 08-27 07:09

    無(wú)人機(jī)智能巡檢系統(tǒng)到底有哪些作用

    無(wú)人機(jī)智能巡檢系統(tǒng)到底有哪些作用? 隨著科技的不斷發(fā)展,無(wú)人機(jī)已經(jīng)在光伏、風(fēng)電、農(nóng)業(yè)、水利、城市管理、地質(zhì)等領(lǐng)域廣泛應(yīng)用,無(wú)人機(jī)智能巡檢系統(tǒng)的應(yīng)用,為巡檢工作帶來(lái)了革命行的變革,那么無(wú)人機(jī)智能巡檢
    的頭像 發(fā)表于 08-19 16:49 ?245次閱讀
    無(wú)人機(jī)智能巡檢系統(tǒng)<b class='flag-5'>到底有</b>哪些作用

    EWSTM8-2201 or 3101安裝說(shuō)明上有的說(shuō)選“是”,有的說(shuō)選“否”,二者到底有什么區(qū)別?對(duì)工程什么影響?

    the installation. ......... 安裝說(shuō)明上有的說(shuō)選“是”,有的說(shuō)選“否”,二者到底有什么區(qū)別?對(duì)工程什么影響?
    發(fā)表于 04-28 08:08

    IPv6到底有什么用,給我們生活帶來(lái)哪些變化?

    IPv6是下一代互聯(lián)網(wǎng)協(xié)議,與IPv4相比,具有更多的地址空間和更好的性能。隨著互聯(lián)網(wǎng)的普及和發(fā)展,IPv6的用途也越來(lái)越廣泛,已經(jīng)在生活中發(fā)揮了重要作用。那IPv6到底有什么用,給我們生活帶來(lái)
    的頭像 發(fā)表于 03-29 14:00 ?1149次閱讀
    IPv6<b class='flag-5'>到底有</b>什么用,給我們生活帶來(lái)哪些<b class='flag-5'>變化</b>?

    網(wǎng)線到底有多少種連接器

    我們?cè)谡務(wù)摼W(wǎng)線的時(shí)候,聊得最多的,一定是它的連接器,它在連接過(guò)程中扮演著極為重要的角色。網(wǎng)線到底有多少種連接器?本期我們將從工業(yè)級(jí)使用出發(fā),來(lái)看看這根似乎普通的網(wǎng)線,在連接器上有多么努力。
    的頭像 發(fā)表于 01-26 10:06 ?548次閱讀

    NUC123的USB外設(shè)到底有沒(méi)有DMA功能?

    下載最新的TRM 1.07: 在最先前的描述以及USB的寄存器章節(jié)都有DMA相關(guān)的內(nèi)容。但是DMA那一章節(jié)里的框圖沒(méi)有USB外設(shè)。同時(shí)關(guān)于USB外設(shè)DMA的用法也沒(méi)具體說(shuō)明。所以USB外設(shè)到底有沒(méi)DMA功能,若是該怎么用?
    發(fā)表于 01-16 08:26

    全固態(tài)電池到底有哪些閃光點(diǎn)?

    全固態(tài)電池到底有哪些閃光點(diǎn)? 全固態(tài)電池是一種新型的電池技術(shù),相比傳統(tǒng)液態(tài)電池,具有許多閃光點(diǎn)。下面我將詳細(xì)介紹這些閃光點(diǎn)。 首先,全固態(tài)電池具有更高的安全性。傳統(tǒng)液態(tài)電池中使用的有機(jī)電解液容易引發(fā)
    的頭像 發(fā)表于 01-09 17:09 ?694次閱讀

    AD7280AWBSTZ和AD7280ABSTZ之間到底有什么區(qū)別?

    替代嗎?在網(wǎng)上找到的兩個(gè)芯片的相關(guān)數(shù)據(jù)都是一樣的,AD7280AWBSTZ和AD7280ABSTZ之間到底有什么區(qū)別?
    發(fā)表于 01-08 06:36

    COB與SMD到底有什么不同?

    COB與SMD到底有什么不同?? COB和SMD是兩種常見(jiàn)的電子元器件封裝技術(shù)。它們?cè)陔娮有袠I(yè)中被廣泛應(yīng)用,尤其在LED照明領(lǐng)域。雖然它們都用于將芯片連接到電路板上,但它們?cè)诜庋b技術(shù)和應(yīng)用方面有一些
    的頭像 發(fā)表于 12-29 10:34 ?1619次閱讀

    母線槽與電纜到底有何區(qū)別?

    母線槽與電纜到底有何區(qū)別? 母線槽與電纜是電力傳輸中常見(jiàn)的兩種設(shè)備,它們有著各自的特點(diǎn)和應(yīng)用領(lǐng)域。下面將分別從使用范圍、結(jié)構(gòu)設(shè)計(jì)、傳輸能力、安裝維護(hù)等方面詳細(xì)介紹母線槽與電纜的區(qū)別。 一、使用范圍
    的頭像 發(fā)表于 12-26 14:02 ?1529次閱讀

    到底有哪些原因會(huì)導(dǎo)致電樞絕緣阻值為零?

    對(duì)電機(jī)多大影響,現(xiàn)在這樣用能安全使用多長(zhǎng)時(shí)間,為什么電樞會(huì)是零呢,到底有哪些原因會(huì)導(dǎo)致電樞絕緣阻值為零?
    發(fā)表于 12-14 08:30

    dB到底有多少種不同的含義呢?

    此同時(shí),我們?cè)诤芏嘤性肼暠O(jiān)控的十字路口也可以看到這樣的指示牌:目前路口噪音60dB。那么dB到底有多少種不同的含義呢? 首先要說(shuō)到dB的起源,所謂dB,指的就是Deci-Bel,也就是1/10個(gè)“Bell
    發(fā)表于 11-27 08:26