本發(fā)明的各實(shí)施例總體上涉及圖形渲染領(lǐng)域,具體地涉及視網(wǎng)膜凹式渲染。
背景技術(shù):
圖形處理系統(tǒng)通常被配置為例如從運(yùn)行在計(jì)算機(jī)系統(tǒng)上的應(yīng)用接收?qǐng)D形數(shù)據(jù),并且被配置為渲染圖形數(shù)據(jù)以提供渲染輸出。例如,被提供到圖形處理系統(tǒng)的圖形數(shù)據(jù)可以描述要被渲染的三維(3D)場(chǎng)景內(nèi)的幾何結(jié)構(gòu),并且渲染輸出可以是場(chǎng)景的渲染的圖像。圖形數(shù)據(jù)可以包括表示幾何形狀的“基元(primitive)”,其描述場(chǎng)景中的結(jié)構(gòu)的表面。常見(jiàn)的基元形狀是三角形,但是基元可以是其他形狀并且可以是線或點(diǎn)。對(duì)象能夠由一個(gè)或多個(gè)(例如,數(shù)百個(gè)、數(shù)千個(gè)或數(shù)百萬(wàn)個(gè))這樣的基元構(gòu)成。作為示例,圖形處理系統(tǒng)可以實(shí)現(xiàn)用于渲染圖形的柵格化技術(shù),其中針對(duì)基元中的每個(gè),確定基元影響圖像中的哪些像素并且之后相應(yīng)地修改那些像素。實(shí)現(xiàn)柵格化技術(shù)的圖形處理系統(tǒng)是本領(lǐng)域中公知的,并且存在可以實(shí)現(xiàn)渲染的各種不同的方式,例如基于圖塊的渲染或非基于圖塊的渲染、即時(shí)模式渲染和延遲渲染。
在一些系統(tǒng)中,圖像序列(或“幀”)被實(shí)時(shí)渲染和顯示。圖像序列的幀率將通常取決于針對(duì)其渲染圖像的應(yīng)用。例如,游戲應(yīng)用可以以每秒25幀的幀率發(fā)送用于渲染的圖像,但是在其他示例中可以使用其他幀率。一般地,增大要被渲染的圖像序列的幀率將增大對(duì)圖形處理系統(tǒng)的處理負(fù)載。
另外,例如通過(guò)設(shè)置圖像中的像素的數(shù)量來(lái)以不同的分辨率渲染不同的圖像,并且還能夠設(shè)置要被渲染的圖像數(shù)據(jù)的幾何細(xì)節(jié)水平(LOD)。幾何LOD可以對(duì)將在渲染系統(tǒng)中被渲染的最小對(duì)象設(shè)置限制。一般地,增大圖像中的像素或幾何LOD的數(shù)量將提供圖形中的更大的細(xì)節(jié),其可以增大圖像的感知質(zhì)量,但是這將還傾向于增大對(duì)圖形處理系統(tǒng)的處理負(fù)載。
可能期望以高幀率實(shí)時(shí)地以具有高幾何LOD的高分辨率渲染圖像,但是用于實(shí)現(xiàn)這一點(diǎn)的處理要求在可能具有有限處理資源和功率供應(yīng)的一些設(shè)備(例如,諸如智能電話、平板計(jì)算機(jī)或頭戴式顯示器的移動(dòng)設(shè)備)上可能是不現(xiàn)實(shí)的。為了解決這一點(diǎn),可以使用如下面所描述的視網(wǎng)膜凹式渲染的構(gòu)思。
人類(lèi)視敏度在視覺(jué)場(chǎng)上顯著地變化,其中大多數(shù)細(xì)節(jié)在視網(wǎng)膜的小中心凹區(qū)域中可見(jiàn)。已知,中心凹區(qū)域大約為視場(chǎng)的5°,其可以例如為大約圖像被顯示在其上的總顯示面積的1%。例如,圖1示出了要被顯示在顯示器上的圖像102,并且中心凹區(qū)域被標(biāo)示為104。圖1不是按比例繪制的,但是能夠看到,中心凹區(qū)域104能夠比整個(gè)圖像102小得多。
視線跟蹤(或“眼睛跟蹤”)可以被用于確定用戶正在注視哪里以便確定中心凹區(qū)域104相對(duì)于圖像102在哪里。中心凹區(qū)域104能夠以高分辨率和高幾何LOD來(lái)渲染,然而,圖像102的剩余部分能夠以較低的分辨率和較低的幾何LOD來(lái)渲染。經(jīng)渲染的中心凹區(qū)域104能夠之后與圖像102的剩余部分的渲染一起被融合以形成經(jīng)渲染的圖像。因此,在圖像102的外圍,未感知到的細(xì)節(jié)能夠被省略,使得較少的基元可以以較低的像素密度被渲染。由于中心凹區(qū)域104一般為圖像102的面積的一小部分(例如,~1%),所以實(shí)質(zhì)的渲染計(jì)算節(jié)省能夠通過(guò)減小外圍相較于中心凹區(qū)域的渲染的分辨率和幾何LOD來(lái)實(shí)現(xiàn)。另外,由于人類(lèi)視敏度遠(yuǎn)離中心凹區(qū)域快速地下降,所以針對(duì)如由將他們的視線指向中心凹區(qū)域104的中心的用戶感知到的圖像維持高圖像質(zhì)量。
技術(shù)實(shí)現(xiàn)要素:
提供本發(fā)明內(nèi)容從而以簡(jiǎn)化的形式介紹下面在具體實(shí)施方式中進(jìn)一步描述的一系列概念。本發(fā)明內(nèi)容不旨在確定要求保護(hù)的主題的關(guān)鍵特征或必要特征,也不旨在用于限制要求保護(hù)的主題的范圍。
在一些示例中,描述了用于渲染圖像的視網(wǎng)膜凹式渲染,其中光線跟蹤技術(shù)被用于渲染圖像的感興趣區(qū)域,并且柵格化技術(shù)被用于渲染圖像的其他區(qū)域。圖像的經(jīng)渲染的感興趣區(qū)域之后與圖像的經(jīng)渲染的其他區(qū)域被組合(例如,融合)以形成經(jīng)渲染的圖像。感興趣區(qū)域可以對(duì)應(yīng)于圖像的中心凹區(qū)域。光線跟蹤自然提供高細(xì)節(jié)和逼真的渲染,人眼視覺(jué)尤其在中心凹區(qū)域中對(duì)其敏感;然而,柵格化技術(shù)適于以簡(jiǎn)單的方式提供時(shí)間平滑和反混疊,并且因此適于在用戶將在他們的視覺(jué)的外圍中看到的圖像的區(qū)域中使用。
在本文中描述的示例中,能夠同時(shí)地(或互換地)使用柵格化和光線跟蹤兩者,其中兩種技術(shù)都可以貢獻(xiàn)于最終圖像。關(guān)于用戶的視線位置的輸入被提供并被用于影響如何使用柵格化和光線跟蹤技術(shù)來(lái)形成最終圖像。以這種方式,能夠減少用戶的不完整的渲染或渲染偽影的感知,和/或能夠減少渲染功率。
提供了一種處理系統(tǒng),其被配置為渲染一幅或多幅圖像,該處理系統(tǒng)包括:光線跟蹤邏輯,其被配置為使用光線跟蹤技術(shù)來(lái)處理針對(duì)圖像的一個(gè)或多個(gè)感興趣區(qū)域的圖形數(shù)據(jù);以及柵格化邏輯,其被配置為使用柵格化技術(shù)來(lái)處理針對(duì)圖像的一個(gè)或多個(gè)柵格化區(qū)域的圖形數(shù)據(jù),其中處理系統(tǒng)被配置為使用針對(duì)使用光線跟蹤技術(shù)處理的圖像的一個(gè)或多個(gè)感興趣區(qū)域的經(jīng)處理的圖形數(shù)據(jù)和針對(duì)使用柵格化技術(shù)處理的圖像的一個(gè)或多個(gè)柵格化區(qū)域的經(jīng)處理的圖形數(shù)據(jù)來(lái)形成經(jīng)渲染的圖像。感興趣區(qū)域可以對(duì)應(yīng)于圖像的中心凹區(qū)域。例如,一個(gè)或多個(gè)柵格化區(qū)域可以包括圖像的不是一個(gè)或多個(gè)感興趣區(qū)域的一個(gè)或多個(gè)區(qū)域。處理系統(tǒng)還可以包括視線跟蹤邏輯,其被配置為確定針對(duì)要被渲染的圖像的視線位置,其中圖像的感興趣區(qū)域基于所確定的視線位置,例如感興趣區(qū)域可以包圍所確定的視線位置使得其表示中心凹區(qū)域。
提供了一種渲染一幅或多幅圖像的方法,該方法包括:使用光線跟蹤技術(shù)來(lái)處理針對(duì)圖像的一個(gè)或多個(gè)感興趣區(qū)域的圖形數(shù)據(jù);使用柵格化技術(shù)來(lái)處理針對(duì)圖像的一個(gè)或多個(gè)柵格化區(qū)域的圖形數(shù)據(jù);以及使用針對(duì)使用光線跟蹤技術(shù)處理的圖像的一個(gè)或多個(gè)感興趣區(qū)域的經(jīng)處理的圖形數(shù)據(jù)和針對(duì)使用柵格化技術(shù)處理的圖像的一個(gè)或多個(gè)柵格化區(qū)域的經(jīng)處理的圖形數(shù)據(jù)來(lái)形成經(jīng)渲染的圖像。
提供了一種處理系統(tǒng),其被配置為渲染一幅或多幅圖像,該處理系統(tǒng)包括:第一渲染邏輯,其被配置為使用第一渲染技術(shù)來(lái)處理針對(duì)圖像的一個(gè)或多個(gè)第一區(qū)域的圖形數(shù)據(jù);以及第二渲染邏輯,其被配置為使用第二渲染技術(shù)來(lái)處理針對(duì)圖像的一個(gè)或多個(gè)第二區(qū)域的圖形數(shù)據(jù),所述第一渲染技術(shù)與所述第二渲染技術(shù)不同,其中處理系統(tǒng)被配置為使用針對(duì)使用第一渲染技術(shù)處理的圖像的一個(gè)或多個(gè)第一區(qū)域的經(jīng)處理的圖形數(shù)據(jù)和針對(duì)使用第二渲染技術(shù)處理的圖像的一個(gè)或多個(gè)第二區(qū)域的經(jīng)處理的圖形數(shù)據(jù)來(lái)形成經(jīng)渲染的圖像。例如,一個(gè)或多個(gè)第二區(qū)域可以包括圖像的不是一個(gè)或多個(gè)第一區(qū)域的一個(gè)或多個(gè)區(qū)域。
提供了一種非瞬態(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其具有存儲(chǔ)在其上的集成電路的計(jì)算機(jī)可讀描述,該計(jì)算機(jī)可讀描述當(dāng)由集成電路制造系統(tǒng)處理時(shí)使系統(tǒng)制造包括以下的處理系統(tǒng):光線跟蹤邏輯,其被配置為使用光線跟蹤技術(shù)來(lái)處理針對(duì)圖像的一個(gè)或多個(gè)感興趣區(qū)域的圖形數(shù)據(jù);以及柵格化邏輯,其被配置為使用柵格化技術(shù)來(lái)處理針對(duì)圖像的一個(gè)或多個(gè)柵格化區(qū)域的圖形數(shù)據(jù),其中處理系統(tǒng)被配置為使用針對(duì)使用光線跟蹤技術(shù)處理的圖像的一個(gè)或多個(gè)感興趣區(qū)域的經(jīng)處理的圖形數(shù)據(jù)和針對(duì)使用柵格化技術(shù)處理的圖像的一個(gè)或多個(gè)柵格化區(qū)域的經(jīng)處理的圖形數(shù)據(jù)來(lái)形成經(jīng)渲染的圖像。
提供了一種處理系統(tǒng),其被配置為渲染一幅或多幅圖像,該處理系統(tǒng)包括:渲染邏輯,其被配置為處理圖形數(shù)據(jù)以生成初始圖像;區(qū)域識(shí)別邏輯,其被配置為識(shí)別初始圖像的一個(gè)或多個(gè)區(qū)域;光線跟蹤邏輯,其被配置為執(zhí)行光線跟蹤以確定針對(duì)初始圖像的所識(shí)別的一個(gè)或多個(gè)區(qū)域的光線跟蹤數(shù)據(jù);以及更新邏輯,其被配置為使用針對(duì)初始圖像的所識(shí)別的一個(gè)或多個(gè)區(qū)域的所確定的光線跟蹤數(shù)據(jù)來(lái)更新初始圖像,以由此確定要被輸出用于顯示的經(jīng)更新的圖像。
提供了一種在處理系統(tǒng)處渲染一幅或多幅圖像的方法,該方法包括:處理圖形數(shù)據(jù)以生成初始圖像;識(shí)別初始圖像的一個(gè)或多個(gè)區(qū)域;執(zhí)行光線跟蹤以確定針對(duì)初始圖像的所識(shí)別的一個(gè)或多個(gè)區(qū)域的光線跟蹤數(shù)據(jù);以及使用針對(duì)初始圖像的所識(shí)別的一個(gè)或多個(gè)區(qū)域的所確定的光線跟蹤數(shù)據(jù)來(lái)更新初始圖像,以由此確定要被輸出用于顯示的經(jīng)更新的圖像。
還提供了一種集成電路制造系統(tǒng),其包括:非瞬態(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其其上存儲(chǔ)有集成電路的計(jì)算機(jī)可讀描述,該計(jì)算機(jī)可讀描述處理系統(tǒng):布局處理系統(tǒng),其被配置為處理集成電路描述以便生出體現(xiàn)處理系統(tǒng)的集成電路的電路布局描述;以及集成電路生成系統(tǒng),其被配置為根據(jù)電路布局描述來(lái)制造處理系統(tǒng)。其中處理系統(tǒng)包括:光線跟蹤邏輯,其被配置為使用光線跟蹤技術(shù)來(lái)處理針對(duì)圖像的一個(gè)或多個(gè)感興趣區(qū)域的圖形數(shù)據(jù);以及柵格化邏輯,其被配置為使用柵格化技術(shù)來(lái)處理針對(duì)圖像的一個(gè)或多個(gè)柵格化區(qū)域的圖形數(shù)據(jù),其中處理系統(tǒng)被配置為使用針對(duì)使用光線跟蹤技術(shù)處理的圖像的一個(gè)或多個(gè)感興趣區(qū)域的經(jīng)處理的圖形數(shù)據(jù)和針對(duì)使用柵格化技術(shù)處理的圖像的一個(gè)或多個(gè)柵格化區(qū)域的經(jīng)處理的圖形數(shù)據(jù)來(lái)形成經(jīng)渲染的圖像。
技術(shù)人員容易理解,以上特征可以在適當(dāng)?shù)那闆r下被組合,并且可以與本文中描述的示例的方面中的任何進(jìn)行組合。
附圖說(shuō)明
現(xiàn)在將參考附圖詳細(xì)描述示例,在附圖中:
圖1示出了圖像內(nèi)的中心凹區(qū)域的示例;
圖2示出了包括根據(jù)本文中描述的實(shí)施例的處理系統(tǒng)的系統(tǒng);
圖3是示出了渲染處理系統(tǒng)中的一幅或多幅圖像的方法的流程圖;
圖4a示出了圖像內(nèi)的中心凹區(qū)域和融合區(qū)域的示例;
圖4b是圖示了要在融合區(qū)域中被使用的融合因子的圖形;
圖5圖示了根據(jù)本文中描述的實(shí)施例的處理系統(tǒng)被實(shí)現(xiàn)在其中的環(huán)境;
圖6a示出了用于在虛擬現(xiàn)實(shí)系統(tǒng)中使用的頭戴式耳機(jī);
圖6b圖示了根據(jù)本文中描述的實(shí)施例的處理系統(tǒng)被實(shí)現(xiàn)在其中的虛擬現(xiàn)實(shí)系統(tǒng);
圖7圖示了其中來(lái)自低細(xì)節(jié)和低幀率渲染的圖像信息與來(lái)自以較快幀率的光線跟蹤的圖像信息被組合以產(chǎn)生對(duì)視線的變化做出響應(yīng)的高幀率圖像的系統(tǒng)。
圖8圖示了實(shí)現(xiàn)混合渲染系統(tǒng)的圖形處理單元的示例;
圖9示出了圖像內(nèi)的感興趣中心區(qū)域的示例;
圖10圖示了其中來(lái)自低細(xì)節(jié)光線跟蹤的圖像信息與來(lái)自高細(xì)節(jié)光線跟蹤的圖像信息被組合以產(chǎn)生對(duì)視線的變化做出響應(yīng)的高細(xì)節(jié)圖像的系統(tǒng)。
圖11示出了用于生成實(shí)現(xiàn)處理系統(tǒng)的集成電路的集成電路制造系統(tǒng)。
附圖圖示了各種示例。技術(shù)人員將認(rèn)識(shí)到附圖中的圖示的元件邊界(例如,框、框的組或者其他形狀)表示邊界的一個(gè)示例??赡艿氖?,在一些示例中,一個(gè)元件可以被設(shè)計(jì)為多個(gè)元件或者多個(gè)元件可以被設(shè)計(jì)為一個(gè)元件。在合適的情況下,在整個(gè)附圖中使用共同的附圖標(biāo)記來(lái)指示相似的特征。
具體實(shí)施方式
現(xiàn)在將僅通過(guò)舉例的方式來(lái)描述實(shí)施例。
在先前的視網(wǎng)膜凹式渲染系統(tǒng)中,在其中圖像的中心凹區(qū)域和外圍被渲染的方式之間的差異涉及圖像的區(qū)域以其被渲染的分辨率或細(xì)節(jié)的水平。對(duì)比之下,在本文中描述的示例中,不同的渲染方法,例如不同的渲染技術(shù)被用于渲染圖像的中心凹區(qū)域和其他區(qū)域。不同的渲染技術(shù)可以適于渲染圖像的不同區(qū)域,使得不同渲染技術(shù)的不同質(zhì)量與由人類(lèi)視覺(jué)系統(tǒng)處理視場(chǎng)的不同區(qū)域的方式相匹配??傮w上,針對(duì)圖像的第一區(qū)域(例如,中心凹區(qū)域)的圖形數(shù)據(jù)使用第一渲染技術(shù)(例如,光線跟蹤)來(lái)處理,并且針對(duì)圖像的第二區(qū)域(例如,外圍區(qū)域)的圖形數(shù)據(jù)使用第二渲染技術(shù)(例如,柵格化)來(lái)處理。第一渲染技術(shù)與第二渲染技術(shù)不同。第二區(qū)域(例如,外圍區(qū)域)可以包括圖像中的不是第一區(qū)域(例如,中心凹區(qū)域)的部分的一個(gè)或多個(gè)區(qū)域。能夠使用針對(duì)使用第一渲染技術(shù)(例如,光線跟蹤)處理的圖像的第一區(qū)域(例如,中心凹區(qū)域)的經(jīng)處理的圖形數(shù)據(jù)和針對(duì)使用第二渲染技術(shù)(例如,柵格化)處理的圖像的第二區(qū)域(例如,外圍區(qū)域)的經(jīng)處理的圖形數(shù)據(jù)來(lái)形成經(jīng)渲染的圖像。針對(duì)區(qū)域的圖形數(shù)據(jù)可以包括要在該區(qū)域內(nèi)被渲染的基元。術(shù)語(yǔ)“第一”和“第二”在此被用作標(biāo)識(shí)符并且不透露任何順序意義。另外,對(duì)“第一區(qū)域”和“第二區(qū)域”的引用不暗示必須存在僅僅兩個(gè)區(qū)域。另外,詞語(yǔ)“區(qū)域”不暗示連續(xù)性。在本文檔中,區(qū)域被用于意指像素的任何子集、緩沖或圖像內(nèi)的子像素或樣本。
在一些示例中,不同的渲染技術(shù)可以基于圖像內(nèi)的感興趣區(qū)域的位置(例如,中心凹區(qū)域或高細(xì)節(jié)區(qū)域)跨圖像的不同部分以不同的方法來(lái)使用。例如,可以使用第一渲染技術(shù)(例如,柵格化)來(lái)生成完全低細(xì)節(jié)圖像,并且可以使用第二渲染技術(shù)(例如,光線跟蹤)來(lái)將細(xì)節(jié)添加到低細(xì)節(jié)圖像的特定區(qū)域。例如,使用光線跟蹤技術(shù)來(lái)將高分辨率的逼真的效果添加到低細(xì)節(jié)圖像的中心凹區(qū)域,和/或光線跟蹤技術(shù)可以將高分辨率細(xì)節(jié)添加到尤其是在外圍中易于混疊的區(qū)域中。區(qū)域可能在它們具有高頻細(xì)節(jié)時(shí)(例如,在該“頻率”處于空間域中的情況下)易于混疊。
可以用于渲染圖像的區(qū)域的不同的渲染技術(shù)的示例為柵格化、光線跟蹤以及光線投射。這使術(shù)語(yǔ)光線跟蹤的普遍用于描述他人可能稱(chēng)為光線投射的內(nèi)容。作者使用光線跟蹤的意圖是整體上包含光線投射的寬泛術(shù)語(yǔ)。柵格化、光線跟蹤和光線投射全部用于確定哪些對(duì)象對(duì)最終圖像中的哪些像素可見(jiàn)(與是直接地還是通過(guò)如反射的間接效果無(wú)關(guān))的目的。在可見(jiàn)性確定之后,可以執(zhí)行著色(shade)運(yùn)算以計(jì)算從所識(shí)別的對(duì)象到合適的像素的顏色或光貢獻(xiàn)。通常這能夠利用著色器(shader)程序來(lái)完成。在不同渲染技術(shù)之間使用的著色器程序能夠被共享,但是它們也能夠是專(zhuān)門(mén)被編寫(xiě)以適應(yīng)渲染技術(shù)的不同的著色器程序。
柵格化涉及定義針對(duì)包含要從場(chǎng)景繪制的幾何結(jié)構(gòu)和像素陣列的3-D場(chǎng)景的視角。在大多數(shù)柵格化方法中,幾何結(jié)構(gòu)被精簡(jiǎn)為三角形基元,并且那些基元被變換成具有一深度值的2-D坐標(biāo)。確定哪個(gè)基元在每個(gè)像素(或像素的一部分)處可見(jiàn),并且該基元的可見(jiàn)表面被著色。柵格化能夠容易地使計(jì)算并行化,因?yàn)槊總€(gè)像素是獨(dú)立的,并且?guī)缀谓Y(jié)構(gòu)能夠?yàn)橥ㄟ^(guò)用于處理的柵格化流水線的流傳輸?shù)膸缀谓Y(jié)構(gòu)。柵格化因此很好地適于時(shí)間敏感渲染應(yīng)用,例如視頻游戲。然而,使用柵格化來(lái)產(chǎn)生復(fù)雜的渲染輸出是困難且耗時(shí)的。
光線跟蹤方法是本領(lǐng)域中已知的并且旨在模擬自然光線。例如,一個(gè)或多個(gè)光線可以被認(rèn)為是從視角被“發(fā)射”通過(guò)要被渲染的圖像的每個(gè)像素,并且光線被跟蹤到具有場(chǎng)景中的基元的相交。一般地,確定從場(chǎng)景中的幾何結(jié)構(gòu)“彈回”的光線的數(shù)量,并且能夠?qū)χT如折射和表面粗糙度的效果進(jìn)行建模。光線跟蹤尤其很好地適于渲染圖像的中心凹區(qū)域,因?yàn)楣饩€跟蹤傾向于比其他渲染技術(shù)產(chǎn)生更真實(shí)的結(jié)果。由于人類(lèi)視覺(jué)系統(tǒng)具有中心凹區(qū)域中的高敏銳度,所以中心凹區(qū)域的感知到的圖像質(zhì)量?jī)A向于在使用光線跟蹤技術(shù)時(shí)相較于在使用其他渲染技術(shù)時(shí)(在諸如像素密度的其他特征相同時(shí))更高。然而,光線跟蹤是復(fù)雜的過(guò)程(常常涉及確定在場(chǎng)景中的光線與基元之間的數(shù)百萬(wàn)或數(shù)十億相交的效果以渲染單幅圖像),使得渲染整幅圖像并且實(shí)時(shí)顯示該圖像需要的處理資源可能在圖形處理系統(tǒng)被實(shí)現(xiàn)在其上的許多設(shè)備上不可用,例如在諸如智能電話、平板計(jì)算機(jī)和虛擬現(xiàn)實(shí)頭戴式耳機(jī)的移動(dòng)設(shè)備上不可用。因此,在本文中描述的一些示例中,光線跟蹤被用于僅僅渲染圖像的中心凹區(qū)域,其傾向于大約為總圖像面積的1%。因此,將光線跟蹤用于中心凹區(qū)域需要的處理資源和功率消耗相較于對(duì)圖像的整體進(jìn)行光線跟蹤在這些方法能夠被實(shí)現(xiàn)在否則將不能夠以高幀率(例如,以高于每秒10幀的幀率)通過(guò)光線跟蹤實(shí)時(shí)地渲染圖像的許多設(shè)備上的程度上被大大減少。另外,在圖像的中心凹區(qū)域中實(shí)現(xiàn)光線跟蹤超越其他渲染技術(shù)的主要優(yōu)點(diǎn)(例如,較高的圖像質(zhì)量和較大的攝影逼真度/視覺(jué)保真度),中心凹區(qū)域是在人類(lèi)視覺(jué)系統(tǒng)中尤其是敏感的地方。
一些視網(wǎng)膜凹式渲染系統(tǒng)可以?xún)H僅對(duì)圖像的整體使用光線跟蹤,但是可以增大中心凹區(qū)域中的光線密度和/或幀率。然而,這些視網(wǎng)膜凹式渲染系統(tǒng)將在圖像的外圍中具有問(wèn)題。具體地,圖像的外圍將遭受時(shí)間和空間混疊。盡管人類(lèi)視覺(jué)系統(tǒng)的外圍在處理精細(xì)細(xì)節(jié)時(shí)較差,但是外圍對(duì)混疊敏感,并且尤其對(duì)時(shí)間混疊(例如,閃爍)敏感。難以使用純光線跟蹤方法解決外圍中的混疊問(wèn)題而不增大外圍的處理要求。然而,如在下面的一些示例中所描述的,純光線跟蹤方法或純光線投射方法能夠被使用,例如,其中樣本密度(即,光線密度)跨圖像的不同部分而變化。
然而,柵格化技術(shù)較好地適于解決混疊(空間混疊和時(shí)間混疊兩者)而無(wú)需復(fù)雜的處理。具體地,在柵格化渲染器中用于解決混疊的處理要求和功率消耗低于在光線跟蹤渲染器中用于解決混疊的處理要求和功率消耗。遠(yuǎn)離中心凹區(qū)域,人類(lèi)視覺(jué)系統(tǒng)對(duì)細(xì)節(jié)較不敏感,但是對(duì)混疊敏感(空間和時(shí)間兩者)。相較于光線跟蹤,柵格化可以提供較低細(xì)節(jié)圖像但是較好地適于解決空間和時(shí)間混疊。因此,柵格化比光線跟蹤更適于渲染圖像的外圍。然而,為了重申以上描述的內(nèi)容,在中心凹區(qū)域,人類(lèi)視覺(jué)系統(tǒng)對(duì)細(xì)節(jié)更敏感;并且相較于柵格化,光線跟蹤傾向于提供具有較大視覺(jué)保真度的較高細(xì)節(jié)圖像,因此光線跟蹤比柵格化更好地適于渲染圖像的中心凹區(qū)域。在本文中描述的一些示例中,光線跟蹤被用于渲染圖像的中心凹區(qū)域,并且柵格化被用于渲染圖像的其他區(qū)域。以這種方式,用于渲染圖像的特定區(qū)域的渲染技術(shù)與人類(lèi)視覺(jué)系統(tǒng)的特性相匹配。
在一些示例中,光線跟蹤能夠被用于渲染圖像的多個(gè)區(qū)域,即可以存在多個(gè)感興趣區(qū)域。例如,可以存在渲染系統(tǒng)的多個(gè)用戶,并且感興趣區(qū)域可以對(duì)應(yīng)于用戶中的每個(gè)的中心凹區(qū)域。在另一示例中,一些非中心凹區(qū)域可以在那些區(qū)域可以受益于詳細(xì)的渲染的意義上被認(rèn)為是“感興趣區(qū)域”,使得存在使用光線跟蹤來(lái)渲染那些區(qū)域的益處。換言之,在中心凹區(qū)域之外的高細(xì)節(jié)渲染可以被認(rèn)為是有用的。具體地,一些研究表明在一些外圍區(qū)域中的人類(lèi)感知能夠識(shí)別高頻邊緣和轉(zhuǎn)變的區(qū)域,即使其不能夠在與中心凹區(qū)域中一樣的程度上感知那些區(qū)域中的細(xì)節(jié)。例如,邊緣意識(shí)濾波器(例如,Sobel濾波器)可以在完全柵格化的圖像上被實(shí)現(xiàn),并且之后光線跟蹤技術(shù)可以處理在其中檢測(cè)到一些高頻率(圖像空間中的高頻率或者時(shí)間域中的高頻率)的區(qū)域(即,感興趣區(qū)域)中的光線以將細(xì)節(jié)添加到圖像的那些區(qū)域。由光線跟蹤過(guò)程添加的額外的細(xì)節(jié)可以提供改進(jìn)的準(zhǔn)確性,因此其可以減少對(duì)經(jīng)渲染的圖像中的非中心凹區(qū)域中的混疊的感知。
圖2示出了包括處理系統(tǒng)202、一個(gè)或多個(gè)相機(jī)204和顯示器206的系統(tǒng)200。處理系統(tǒng)202可以被實(shí)現(xiàn)為片上系統(tǒng)(SOC)。處理系統(tǒng)202包括經(jīng)由通信總線耦合的圖形處理單元(GPU)208、相機(jī)流水線210、中央處理單元(CPU)212以及存儲(chǔ)器214。(一個(gè)或多個(gè))相機(jī)204和顯示器206還可以被耦合到處理系統(tǒng)202的通信總線,使得它們能夠與GPU 208、相機(jī)流水線210、CPU 212以及存儲(chǔ)器214進(jìn)行通信。GPU 208包括視線跟蹤邏輯216、組合邏輯218、光線跟蹤邏輯220、柵格化邏輯222和控制邏輯224。GPU 208的不同邏輯塊可以以硬件、軟件或其任何組合來(lái)實(shí)現(xiàn)。另外,GPU 208的不同邏輯塊在圖2中被表示為單獨(dú)的塊,但是在一些實(shí)施方式中,它們可以共享GPU 208的一些資源,例如計(jì)算單元和本地存儲(chǔ)器、等等。
圖3是示出了渲染處理系統(tǒng)202中的一幅或多幅圖像的示例方法的流程圖。圖像當(dāng)它們被渲染時(shí)被實(shí)時(shí)顯示在顯示器206上以供用戶查看。相機(jī)204被布置為捕獲用戶注視圖像被渲染在其上的顯示器206的圖像。
在步驟S302中,相機(jī)流水線210從相機(jī)204接收?qǐng)D像數(shù)據(jù)。在步驟S304中,相機(jī)流水線210處理圖像數(shù)據(jù)以生成捕獲的圖像。相機(jī)流水線210可以使用已知的技術(shù)來(lái)處理圖像數(shù)據(jù)并且可以包括許多不同的過(guò)程,例如以下中的一個(gè)或多個(gè):濾波、銳化、黑度校正、白平衡、缺陷像素修復(fù)、去馬賽克、橫向色差校正、去噪、色域(gamut)映射、色調(diào)映射、彩色增強(qiáng)、等等。相機(jī)流水線210可以以硬件、軟件或其任何組合來(lái)實(shí)現(xiàn)。
所捕獲的圖像從相機(jī)流水線210被提供到GPU 208的視線跟蹤邏輯216,要么經(jīng)由存儲(chǔ)器214要么直接在處理系統(tǒng)202中的通信總線上而不經(jīng)由存儲(chǔ)器214進(jìn)行。由于相機(jī)流水線210和視線跟蹤邏輯216被實(shí)現(xiàn)在相同的處理系統(tǒng)202(其可以被實(shí)現(xiàn)為SOC)上,所以在相機(jī)204捕獲針對(duì)圖像的圖像數(shù)據(jù)與圖像被提供到視線跟蹤邏輯216之間的延時(shí)能夠是很低的。具體地,延時(shí)可以比在相機(jī)流水線210和視線跟蹤邏輯216被實(shí)現(xiàn)在不同的芯片上或被實(shí)現(xiàn)在不同的設(shè)備上時(shí)更低。
在步驟S306中,視線跟蹤邏輯216分析所捕獲的圖像以確定視線位置。視線位置針對(duì)要被渲染的圖像被確定并被顯示在顯示器206上,并且為用戶正在注視的圖像內(nèi)的位置。具體地,視線跟蹤邏輯216(例如,在配置步驟中)被提供具有關(guān)于顯示器206的位置的信息,并且視線跟蹤邏輯216識(shí)別所捕獲的圖像中的用戶的眼睛的位置。利用這些信息片,視線跟蹤邏輯216能夠確定視線位置。用于執(zhí)行視線跟蹤的方法是本領(lǐng)域中已知的,并且因此,在本文中不詳細(xì)描述由視線跟蹤邏輯216執(zhí)行的視線跟蹤的細(xì)節(jié)。
在特定時(shí)間確定視線位置并且之后將該視線位置提供到控制邏輯意味著將存在在確定視線位置與使用所確定的視線位置之間的有限延時(shí)。因此,在一些示例中,視線跟蹤邏輯216可以被補(bǔ)充有可以被用于預(yù)期視線移動(dòng)的預(yù)測(cè)模型,使得其可以能夠減少或甚至完全移除在確定視線位置與使用視線位置之間的延時(shí)。預(yù)測(cè)模型能夠利用包括以下的信息的額外的來(lái)源:移動(dòng)對(duì)象的屏幕空間位置、與用戶相關(guān)的信息的位置,例如可見(jiàn)文本,先前視線位置,在先前視線位置處可見(jiàn)的場(chǎng)景對(duì)象(例如,以在頭部移動(dòng)期間預(yù)測(cè)跟蹤對(duì)象的眼睛)、用于眼睛移動(dòng)的基于動(dòng)量的模型、等等。預(yù)測(cè)模型能夠利用一組規(guī)則或啟發(fā)式法來(lái)實(shí)現(xiàn),和/或其能夠利用神經(jīng)網(wǎng)絡(luò)來(lái)實(shí)現(xiàn)。使用預(yù)測(cè)模型,可以能夠?qū)Ω信d趣區(qū)域排列優(yōu)先級(jí),并且之后當(dāng)處理時(shí)間允許時(shí)在必須提供用于顯示的幀數(shù)據(jù)之前在進(jìn)行中的基礎(chǔ)上渲染那些區(qū)域中的細(xì)節(jié)。這能夠尤其當(dāng)在虛擬現(xiàn)實(shí)系統(tǒng)中使用處理系統(tǒng)時(shí)是有益的,這是因?yàn)橐暰€確定中的延時(shí)被已知為關(guān)于虛擬現(xiàn)實(shí)系統(tǒng)的具體問(wèn)題。
圖3中示出的示例的步驟S302到步驟S306使用相機(jī)來(lái)確定視線位置。然而,在其他示例中,眼睛跟蹤系統(tǒng)可以確定視線位置而不實(shí)現(xiàn)相機(jī)或相機(jī)流水線本身。即,眼睛跟蹤系統(tǒng)不一定必須包括將通常被稱(chēng)為“相機(jī)”的圖像傳感器。
在步驟S308中,控制邏輯224基于視線位置來(lái)確定一個(gè)或多個(gè)感興趣區(qū)域。在參考圖3的流程圖描述的示出的示例中,存在單個(gè)感興趣區(qū)域和單個(gè)柵格化區(qū)域,但是在一些其他示例中可以存在多個(gè)感興趣區(qū)域和/或多個(gè)柵格化區(qū)域。(一個(gè)或多個(gè))感興趣區(qū)域指示將使用光線跟蹤技術(shù)渲染的圖像的(一個(gè)或多個(gè))區(qū)域。例如,感興趣區(qū)域可以對(duì)應(yīng)于圖像的中心凹區(qū)域。因此,在這種情況下,感興趣區(qū)域能夠被確定為包圍所確定的視線位置的區(qū)域。圖像的感興趣區(qū)域可以以所確定的視線位置為中心。感興趣區(qū)域的大小和形狀可以在如下面更詳細(xì)地描述的不同的實(shí)現(xiàn)方式中是不同的。
作為示例,感興趣區(qū)域的大小可以對(duì)應(yīng)于從用戶的視角的5°視場(chǎng)。以這種方式,感興趣區(qū)域?qū)?duì)應(yīng)于用戶的視角的典型中心凹區(qū)域。為了將感興趣區(qū)域的大小設(shè)置為對(duì)應(yīng)于5°視場(chǎng),控制邏輯224能夠使用關(guān)于經(jīng)渲染的圖像將被顯示在其上的顯示器206的大小的信息和從用戶的視角到顯示器206的距離。關(guān)于顯示器206的大小的信息能夠被提供到控制邏輯224并被存儲(chǔ)在控制邏輯224本地的存儲(chǔ)器中。從用戶的視角到顯示器206的典型距離的指示也可以被存儲(chǔ)在控制邏輯224的本地存儲(chǔ)器中,并且將取決于系統(tǒng)的設(shè)置,例如,用戶可能在具有距大約50cm遠(yuǎn)的顯示器206的桌子,或者顯示器可以被集成在虛擬現(xiàn)實(shí)頭戴式耳機(jī)中,使得顯示器距用戶的眼睛大約3cm遠(yuǎn)。在一些示例中,所捕獲的圖像可以(例如,由視線跟蹤邏輯216)分析以估計(jì)在用戶的視角與顯示器206之間的距離。
在步驟S310中,在GPU 208處接收描述針對(duì)場(chǎng)景中的其圖像要被渲染的幾何結(jié)構(gòu)的圖形數(shù)據(jù)(例如,基元數(shù)據(jù))。例如,應(yīng)用(例如,游戲應(yīng)用)可以運(yùn)行在CPU 212上并且可以將基元數(shù)據(jù)發(fā)送到GPU 208以對(duì)圖像進(jìn)行渲染并將其輸出到顯示器206以進(jìn)行實(shí)時(shí)顯示??梢栽贕PU 208處接收針對(duì)圖像序列(“幀”)的圖像數(shù)據(jù)以順序地進(jìn)行渲染和顯示。如本文中所描述的,GPU 208根據(jù)視網(wǎng)膜凹式渲染過(guò)程來(lái)渲染(一幅或多幅)圖像。
步驟S312和步驟S314可以在GPU 208中針對(duì)圖像被同時(shí)地或順序地執(zhí)行。在步驟S312中,光線跟蹤邏輯220使用光線跟蹤技術(shù)來(lái)渲染圖形的感興趣區(qū)域。步驟S312中的渲染例如通過(guò)針對(duì)與穿過(guò)(一個(gè)或多個(gè))感興趣區(qū)域的光線相交的基元的基元數(shù)據(jù)根據(jù)光線跟蹤技術(shù)來(lái)處理針對(duì)(一個(gè)或多個(gè))感興趣區(qū)域的圖形數(shù)據(jù)。在步驟S314中,柵格化邏輯使用柵格化技術(shù)來(lái)渲染圖像的柵格化區(qū)域。步驟S314中的渲染例如通過(guò)針對(duì)存在于(一個(gè)或多個(gè))柵格化區(qū)域內(nèi)的基元的基元數(shù)據(jù)根據(jù)柵格化技術(shù)來(lái)處理針對(duì)(一個(gè)或多個(gè))柵格化區(qū)域的圖形數(shù)據(jù)。柵格化區(qū)域包括圖像的不是感興趣區(qū)域的部分的一個(gè)或多個(gè)區(qū)域。例如,參考圖1,感興趣區(qū)域可以是中心凹區(qū)域104。柵格化區(qū)域可以包括圖像102中不是感興趣區(qū)域104的一部分的全部。另外,柵格化區(qū)域可以包括感興趣區(qū)域104的一些。在這種情況下,柵格化區(qū)域包括與感興趣區(qū)域的至少一些交疊的交疊區(qū)域。例如,柵格化區(qū)域可以覆蓋圖像102的整體。在其他示例中,柵格化區(qū)域可以覆蓋除了感興趣區(qū)域內(nèi)的子區(qū)域(例如,在感興趣區(qū)域的中心處的子區(qū)域)的圖像的整體。
執(zhí)行光線跟蹤的方法和執(zhí)行柵格化的方法是本領(lǐng)域中已知的,并且因此在本文中不提供光線跟蹤邏輯220和柵格化邏輯222的操作的詳細(xì)描述。然而,應(yīng)當(dāng)理解,光線跟蹤邏輯220和柵格化邏輯222可以均包括計(jì)算單元、本地存儲(chǔ)器(例如,緩存和寄存器)以及控制邏輯,例如,用于執(zhí)行在不同的渲染技術(shù)中涉及的各種操作的序列化邏輯和提取邏輯。在一些示例中,光線跟蹤邏輯和柵格化邏輯222可以被單獨(dú)地實(shí)現(xiàn)在GPU 208上。然而,在其他示例中,如下面參考圖8更詳細(xì)地描述的,光線跟蹤邏輯220和柵格化邏輯222可以共享GPU 208上的處理資源,并且GPU 208可以被認(rèn)為是“混合”GPU。在這樣的混合系統(tǒng)中,相同的著色器程序可以被運(yùn)行在基元碎片上,與可見(jiàn)碎片是否已經(jīng)通過(guò)柵格化或通過(guò)光線跟蹤技術(shù)來(lái)識(shí)別無(wú)關(guān)。
在圖3中示出的示例中,光線跟蹤邏輯220和柵格化邏輯222均確定在被渲染的圖像的樣本位置處的圖像值??梢栽趫D像的樣本位置與像素之間存在一對(duì)一關(guān)系,使得圖像值是像素值。在其他示例中,可以針對(duì)圖像的每個(gè)像素位置存在多個(gè)樣本位置,使得多個(gè)圖像值可以被組合以確定圖像的最終像素值。在另外的示例中,樣本位置可以比其中像素值能夠在鄰域樣本之間被插值的情況下的像素更稀疏。在一些其他示例中,如下面參考圖7所描述的,不是從抓取確定像素值,光線跟蹤邏輯可以確定要對(duì)由柵格化邏輯確定的像素值做出的更新。
在步驟S316中,組合邏輯218將使用光線跟蹤技術(shù)渲染的圖像的經(jīng)渲染的感興趣區(qū)域和使用柵格化技術(shù)渲染的圖像的經(jīng)渲染的柵格化區(qū)域組合以形成經(jīng)渲染的圖像。
在非常簡(jiǎn)單的示例中,經(jīng)渲染的感興趣區(qū)域能夠被疊加在經(jīng)渲染的柵格化區(qū)域頂部上以形成經(jīng)渲染的圖像。換言之,在感興趣區(qū)域內(nèi),光線跟蹤的結(jié)果被用于經(jīng)渲染的圖像,并且在感興趣區(qū)域之外,柵格化的結(jié)果被用于經(jīng)渲染的圖像。該組合非常易于執(zhí)行,但是其可以導(dǎo)致在經(jīng)渲染的圖像中的感興趣區(qū)域的邊緣附近的引人注目的線。在感興趣區(qū)域的邊緣附近的經(jīng)渲染的圖像的區(qū)段可以(例如,利用高斯濾波器)被濾波以由此平滑掉在感興趣區(qū)域與圖像的其他區(qū)域之間的轉(zhuǎn)變。
在其他示例中,在感興趣區(qū)域和柵格化區(qū)域在交疊區(qū)域中交疊的情況下,組合邏輯218可以在交疊區(qū)域內(nèi)的融合區(qū)域中將由光線跟蹤邏輯220確定的圖像值和由柵格化邏輯222確定的圖像值融合。
圖4a示出了包括中心凹區(qū)域104的圖像102的示例。要注意,中心凹區(qū)域104在該示例中不是處于圖像102的中心。這可能是因?yàn)橛脩舻囊暰€沒(méi)有指向圖像102的中心。存在融合區(qū)域402,其是在柵格化區(qū)域與中心凹區(qū)域104之間的交疊區(qū)域的一部分。在這種情況下,柵格化區(qū)域可以覆蓋圖像102的整體或者在另一示例中可以覆蓋除了未包括在融合區(qū)域402中的中心凹區(qū)域104的一部分的圖像102的整體。在該示例中,在融合區(qū)域402之外并且在中心凹區(qū)域104之外,經(jīng)渲染的圖像的圖像值是由柵格化邏輯222確定的圖像值;在不為融合區(qū)域402的部分的中心凹區(qū)域104中,經(jīng)渲染的圖像的圖像值是由光線跟蹤邏輯220確定的圖像值;并且在融合區(qū)域402內(nèi),經(jīng)渲染的圖像的圖像值是由柵格化邏輯222確定的圖像值和由光線跟蹤邏輯220確定的圖像值的融合。
例如,在融合區(qū)域402內(nèi)的多個(gè)樣本位置中的每個(gè)處,融合是在由光線跟蹤邏輯確定的樣本位置處的圖像值和在由柵格化邏輯確定的樣本位置處的圖像值的加權(quán)和。針對(duì)樣本位置的加權(quán)和的權(quán)重可以取決于樣本位置通過(guò)融合區(qū)域402的距離。例如,在通過(guò)混合區(qū)域402的一定距離x處的經(jīng)渲染的圖像的圖像值Ir(x)可以根據(jù)以下公式來(lái)確定:
Ir(x)=α(x)IRast(x)+(1-α(x))IRT(x)
其中,IRast(x)是由柵格化邏輯222在通過(guò)混合區(qū)域402的一定距離x處渲染的圖像值,IRT(x)是由光線跟蹤邏輯220在通過(guò)混合區(qū)域402的一定距離x處渲染的圖像值,并且α(x)是在通過(guò)混合區(qū)域402的一定距離x處的融合因子。x的值朝向中心凹區(qū)域104的中心減小。
圖4b是圖示了要在融合區(qū)域402的區(qū)段中被使用的融合因子α(x)的值的圖形。在圖4a和圖4b中示出的示例中的融合區(qū)域的左邊,即在中心凹區(qū)域104之外,融合因子α(x)具有如在404處標(biāo)示的值1,使得Ir(x)=IRast(x)。備選地,融合因子α(x)可以在該區(qū)域中未定義,并且經(jīng)渲染的圖像值被簡(jiǎn)單地當(dāng)作由柵格化邏輯222確定的圖像值。在圖4a和圖4b中示出的示例中的融合區(qū)域的右邊,即在融合區(qū)域402之外并且在中心凹區(qū)域104內(nèi),融合因子α(x)具有如在406處標(biāo)示的值0,使得Ir(x)=IRT(x)。備選地,融合因子α(x)可以在該區(qū)域中未定義,并且經(jīng)渲染的圖像值被簡(jiǎn)單地當(dāng)作由光線跟蹤邏輯220確定的圖像值。在融合區(qū)域內(nèi),融合因子α(x)在范圍0≤α(x)≤1中。融合因子α(x)優(yōu)選地關(guān)于在404和406處的值連續(xù)并且優(yōu)選地在融合區(qū)域上平滑地變化以由此減少在經(jīng)渲染的圖像中的融合區(qū)域中發(fā)生的偽影的外觀。存在將滿足這些準(zhǔn)則的融合因子的許多示例。例如,融合因子可以跨如由虛線408表示的融合區(qū)域線性地變化。這是簡(jiǎn)單的示例并且能夠利用很小的處理復(fù)雜度來(lái)實(shí)現(xiàn)。作為另一示例,融合因子α(x)的一階導(dǎo)數(shù)可以被控制為在融合區(qū)域的邊緣處連續(xù),以進(jìn)一步減少在融合區(qū)域的邊界處的可感知到的偽影。圖4b中的線410示出了滿足這些準(zhǔn)則的融合因子α(x)的示例,并且可以例如被表示為跨融合區(qū)域的三次函數(shù)。
在圖4a中示出的示例中,融合區(qū)域僅僅覆蓋中心凹區(qū)域104的部分,但是在一些其他示例中,融合區(qū)域可以覆蓋中心凹區(qū)域的整體。另外,在一些示例中,α值可以在被渲染的圖像中的任何位置處不下降到零。
在以上描述的示例中,感興趣區(qū)域104覆蓋圖像102的一小部分。然而,在其他示例中,感興趣區(qū)域可以覆蓋整幅圖像,并且柵格化區(qū)域還可以覆幅圖像。在該示例中,融合區(qū)域可以覆蓋整幅圖像,并且融合因子可以在圖像上變化。例如,融合因子可以在圖像上變化,使得在中心凹區(qū)域中,對(duì)由光線跟蹤邏輯IRT(x)渲染的圖像值更強(qiáng)地加權(quán)最終經(jīng)渲染的圖像,同時(shí)遠(yuǎn)離中心凹區(qū)域,對(duì)由柵格化邏輯IRast(x)渲染的圖像值更強(qiáng)地加權(quán)最終經(jīng)渲染的圖像。
在步驟S318中,處理系統(tǒng)將經(jīng)渲染的圖像發(fā)送到顯示器206并且圖像在其上被顯示??梢葬槍?duì)要被實(shí)時(shí)渲染的圖像序列中的每幅圖像執(zhí)行圖3中示出的方法。在一些其他示例中,不針對(duì)每幅圖像執(zhí)行步驟S302到步驟S308并且在步驟S310至步驟S318中不對(duì)其進(jìn)行顯示。
在圖3中示出的方法中,柵格化邏輯渲染柵格化區(qū)域,光線跟蹤邏輯渲染感興趣區(qū)域,并且組合邏輯將兩個(gè)經(jīng)渲染的區(qū)域組合以形成經(jīng)渲染的圖像。然而,在其他示例中,可能不存在單獨(dú)的組合步驟或單獨(dú)的組合邏輯。例如,光線跟蹤和柵格化可以一起作用于相同的區(qū)域上。作為示例,柵格化邏輯能夠在整個(gè)幀上運(yùn)行,并且之后光線跟蹤能夠利用額外的細(xì)節(jié)增強(qiáng)經(jīng)柵格化的區(qū)域。以這種方式,光線跟蹤階段的結(jié)果可以是最終經(jīng)渲染的圖像而無(wú)需單獨(dú)的融合階段。光線跟蹤和柵格化可以同時(shí)地運(yùn)行,或者在一些情況下,光線能夠由來(lái)自柵格化處理的輸出觸發(fā)。組合步驟能夠涉及一組明確的濾波器的使用(例如,在與以上參考圖3中示出的流程圖描述的示例中的組合邏輯中),或者柵格化和光線跟蹤的組合可能僅僅從光線跟蹤過(guò)程的實(shí)現(xiàn)方式得到,使得將不存在用于“組合”的明確的步驟或流水線階段。
融合技術(shù)不需要是同步的。例如,整幅圖像的低細(xì)節(jié)渲染能夠使用光線跟蹤或柵格化來(lái)執(zhí)行,并且之后后續(xù)渲染操作能夠以更高級(jí)的細(xì)節(jié)來(lái)增強(qiáng)圖像的區(qū)域。高細(xì)節(jié)渲染可以在低細(xì)節(jié)圖像需要被重新渲染之前進(jìn)行多次并且跨多個(gè)顯示的幀繼續(xù)增強(qiáng)圖像。
圖5示出了處理系統(tǒng)202被實(shí)現(xiàn)在其中的環(huán)境。圖5示出了具有被定位在顯示器206附近的相機(jī)204使得其能夠捕獲注視顯示器206的用戶的圖像的顯示器206。在圖5中示出了用戶502的視角。處理系統(tǒng)202被耦合到相機(jī)204,并且被耦合到顯示器206。中心凹區(qū)域104被表示在顯示器206上,并且中心凹區(qū)域104的視場(chǎng)的角度θ被表示為在中心凹區(qū)域104的中心與中心凹區(qū)域104的邊緣之間的角度。如以上所描述的,角度θ可以被設(shè)置為大約5°,使得區(qū)域104準(zhǔn)確地表示中心凹區(qū)域。
圖6a和圖6b圖示了處理系統(tǒng)如何能夠被包括在虛擬現(xiàn)實(shí)系統(tǒng)600中。具體地,圖6a示出了用于在虛擬現(xiàn)實(shí)系統(tǒng)中使用的頭戴式耳機(jī)602。頭戴式耳機(jī)包括兩個(gè)顯示器604L和顯示器604R。頭戴式耳機(jī)被布置為由用戶佩戴,使得顯示器604L在用戶的左眼前方,并且顯示器604R在在用戶的右眼前方。如本文中所描述的,頭戴式耳機(jī)還可以包括相機(jī)和處理系統(tǒng)。在理想情況下,虛擬現(xiàn)實(shí)系統(tǒng)將顯示具有高分辨率、高幀率并且沒(méi)有缺失的幀的幀。本文中描述的視網(wǎng)膜凹式渲染示例允許光線跟蹤被用于渲染圖形的中心凹區(qū)域以用于在虛擬現(xiàn)實(shí)系統(tǒng)中使用。
圖6b是虛擬現(xiàn)實(shí)系統(tǒng)600的示意圖,虛擬現(xiàn)實(shí)系統(tǒng)600包括左顯示器604L和右顯示器604R、兩個(gè)相機(jī)606L和相機(jī)606R和處理系統(tǒng)612。相機(jī)606L被布置為捕獲用戶的左眼的圖像,并且相機(jī)606R被布置為捕獲用戶的右眼的圖像。
處理系統(tǒng)612與以上描述的處理系統(tǒng)202相似并且包括GPU 608、相機(jī)流水線610、CPU 212和存儲(chǔ)器214。GPU 608包括視線跟蹤邏輯616、組合邏輯618、光線跟蹤邏輯620、柵格化邏輯622和控制邏輯624。處理系統(tǒng)612的元件與以上描述的處理系統(tǒng)202的元件相似,但是它們由于兩個(gè)相機(jī)(相機(jī)606L和相機(jī)606R)和兩個(gè)顯示器(顯示器604L和顯示器604R)的存在而稍微不同。具體地,相機(jī)流水線610將從相機(jī)606L和相機(jī)606R兩者接收?qǐng)D像數(shù)據(jù)并且將生成兩個(gè)捕獲的圖像,其被傳遞到視線跟蹤邏輯616。視線跟蹤邏輯616分析所捕獲的圖像以確定兩個(gè)視線位置:一個(gè)針對(duì)右邊圖像,并且一個(gè)針對(duì)左邊圖像。光線跟蹤邏輯620和柵格化邏輯622將如以上所描述的渲染它們各自的圖像的區(qū)域,但是在虛擬現(xiàn)實(shí)系統(tǒng)600中,兩幅圖像被渲染:要被顯示在顯示器604L上的左邊圖像和要被顯示在顯示器604R上的右邊圖像。針對(duì)兩幅圖像的視線位置可以稍微不同。另外,要被渲染的圖像可以對(duì)于右眼和左眼稍微不同,例如以給出3D效果。在虛擬現(xiàn)實(shí)系統(tǒng)中,圖像被規(guī)整以用于顯示在顯示器604L和顯示器604R上以說(shuō)明頭戴式顯示器(HMD)鏡頭失真。在一些示例中,規(guī)整過(guò)程被并入為光線跟蹤邏輯620中的光線跟蹤渲染的自然部分,由此避免將規(guī)整應(yīng)用到中心凹區(qū)域中的已經(jīng)渲染的圖像值的額外的步驟。
虛擬現(xiàn)實(shí)具有極高的性能要求,因此本文中描述的視網(wǎng)膜凹式渲染方法能夠?qū)嵸|(zhì)上改進(jìn)用戶體驗(yàn),從而允許通過(guò)利用光線跟蹤技術(shù)來(lái)渲染該區(qū)域的中心凹區(qū)域中的質(zhì)量改進(jìn),同時(shí)還通過(guò)利用柵格化技術(shù)來(lái)渲染該區(qū)域來(lái)增大視覺(jué)外圍中的時(shí)間和空間混疊的質(zhì)量,其對(duì)閃爍是高度敏感的。另外,這在沒(méi)有將處理復(fù)雜度或功率消耗增加與純光線跟蹤的渲染系統(tǒng)一樣多的情況下來(lái)實(shí)現(xiàn)。
圖7圖示了其中來(lái)自低細(xì)節(jié)和低幀率渲染的圖像信息與來(lái)自以較快幀率的光線跟蹤的圖像信息被組合以產(chǎn)生對(duì)視線的變化做出響應(yīng)的高幀率圖像的系統(tǒng)700。圖7示出了場(chǎng)景數(shù)據(jù)庫(kù)702,其存儲(chǔ)場(chǎng)景幾何結(jié)構(gòu)(例如,描述要被渲染的場(chǎng)景中的對(duì)象的基元)。系統(tǒng)還包括渲染邏輯704、加速結(jié)構(gòu)構(gòu)建邏輯706、區(qū)域識(shí)別邏輯708、光線跟蹤邏輯710、更新邏輯712和顯示器716。在一些示例中,系統(tǒng)700還可以包括時(shí)間規(guī)整邏輯714。邏輯塊704至邏輯塊714可以以硬件、軟件或其任何組合來(lái)實(shí)現(xiàn)。
在操作時(shí),描述要被渲染的場(chǎng)景的圖形數(shù)據(jù)(例如,構(gòu)成描述場(chǎng)景中的對(duì)象的基元的場(chǎng)景幾何結(jié)構(gòu))從數(shù)據(jù)庫(kù)702被提供到渲染邏輯704并且被提供到加速結(jié)構(gòu)構(gòu)建邏輯706。渲染邏輯704處理圖形數(shù)據(jù)以生成初始圖像,其能夠被提供到區(qū)域識(shí)別邏輯708并且被提供到更新邏輯1012。在圖7中示出的示例中,初始圖像是低細(xì)節(jié)圖像,即其是比將被輸出用于顯示的最終圖像更低細(xì)節(jié)的圖像。渲染邏輯704可以例如使用柵格化技術(shù)來(lái)生成初始圖像。然而,在其他示例中,渲染邏輯704可以使用光線跟蹤技術(shù)來(lái)生成初始圖像。如果渲染邏輯704使用光線跟蹤技術(shù)來(lái)生成初始圖像,則其可以從加速結(jié)構(gòu)構(gòu)建邏輯706接收加速結(jié)構(gòu)。如下面參考圖10更詳細(xì)地解釋的,可以存在多于一個(gè)加速結(jié)構(gòu),例如低細(xì)節(jié)加速結(jié)構(gòu)和高細(xì)節(jié)加速結(jié)構(gòu)。其可以是渲染邏輯704接收低細(xì)節(jié)加速結(jié)構(gòu)而光線跟蹤邏輯710接收高細(xì)節(jié)加速結(jié)構(gòu)的情況。
區(qū)域識(shí)別邏輯708被配置為識(shí)別初始圖像的一個(gè)或多個(gè)區(qū)域。所識(shí)別的區(qū)域是針對(duì)其要計(jì)算光線跟蹤數(shù)據(jù)的區(qū)域(即,更多的光線要被光線跟蹤邏輯710處理的區(qū)域)或針對(duì)其要跟蹤更多光線的區(qū)域(即,要在其中增大光線密度的區(qū)域)。換言之,區(qū)域識(shí)別邏輯708檢測(cè)在圖像中哪里需要或期望細(xì)節(jié)。具體地,區(qū)域識(shí)別邏輯708從諸如216或616的視線跟蹤邏輯接收視線信息,例如視線位置的指示。區(qū)域識(shí)別邏輯708可以識(shí)別視線位置附近的區(qū)域,或者預(yù)期的未來(lái)視線位置附近的區(qū)域,由此表示圖像的中心凹區(qū)域。另外,區(qū)域識(shí)別邏輯708可以分析初始圖像以便生成初始圖像內(nèi)的一個(gè)或多個(gè)區(qū)域。例如,高頻細(xì)節(jié)的區(qū)域可以被識(shí)別。在這個(gè)意義上,頻率是空間頻率。例如,區(qū)域識(shí)別邏輯708可以對(duì)最終圖像進(jìn)行濾波以識(shí)別圖像亮度的屏幕空間頻率以觸發(fā)更多光線到較高頻率區(qū)域。高頻細(xì)節(jié)的區(qū)域易于混疊,因此其能夠?qū)⑻囟ü饩€跟蹤的圖像數(shù)據(jù)添加到這些區(qū)域中有用,即使它們不在中心凹區(qū)域中。這是因?yàn)?,如以上所提到的,人?lèi)對(duì)混疊敏感,甚至在它們的視野的外圍中。區(qū)域識(shí)別邏輯708可以識(shí)別針對(duì)其光線跟蹤的圖像數(shù)據(jù)要出于其他原因而被添加的區(qū)域。例如,圖像的中心可以甚至在它不是中心凹區(qū)域中并且不在高細(xì)節(jié)區(qū)域中的情況下被識(shí)別。在一些示例中,來(lái)自由渲染邏輯704執(zhí)行的渲染的信息可以被用于識(shí)別區(qū)域。例如,網(wǎng)格邊緣或深度的大變化可以被識(shí)別并且被用于識(shí)別圖像中的能夠在其中使用光線跟蹤來(lái)提供反混疊的區(qū)域。作為另一示例,圖像中的對(duì)應(yīng)于具有特定深度的對(duì)象的區(qū)域可以被識(shí)別,使得場(chǎng)效應(yīng)的深度能夠由光線跟蹤數(shù)據(jù)添加。作為另一示例,場(chǎng)景中的對(duì)應(yīng)于特定對(duì)象(例如,游戲中的角色)的區(qū)域可以被識(shí)別,使得光線跟蹤數(shù)據(jù)被添加到特定對(duì)象,即使特定對(duì)象未處于中心凹區(qū)域中或高細(xì)節(jié)中。應(yīng)當(dāng)理解,能夠存在用于使區(qū)域識(shí)別邏輯708識(shí)別區(qū)域的其他原因。所識(shí)別的區(qū)域的指示從區(qū)域識(shí)別邏輯708被傳遞到光線跟蹤邏輯710并且被傳遞到更新邏輯712。
加速結(jié)構(gòu)構(gòu)建邏輯706被配置為確定表示要被渲染的圖像的場(chǎng)景的幾何結(jié)構(gòu)的圖形數(shù)據(jù)的加速結(jié)構(gòu)。加速結(jié)構(gòu)可以是分層的,并且可以被稱(chēng)為“分層結(jié)構(gòu)”。根據(jù)針對(duì)要被渲染的場(chǎng)景的幾何結(jié)構(gòu)數(shù)據(jù)來(lái)構(gòu)建加速結(jié)構(gòu)的方法是本領(lǐng)域中已知的。加速結(jié)構(gòu)構(gòu)建邏輯706可以針對(duì)每幅圖像獨(dú)立地構(gòu)建加速結(jié)構(gòu)。備選地,在被渲染的圖像表示幀序列中的幀的情況下,加速結(jié)構(gòu)構(gòu)建邏輯706可以通過(guò)更新針對(duì)先前幀的加速結(jié)構(gòu)來(lái)確定針對(duì)當(dāng)前幀的加速結(jié)構(gòu)。幀序列中的連續(xù)幀有可能具有被渲染的場(chǎng)景中的相似的幾何結(jié)構(gòu),因此其對(duì)于更新針對(duì)先前幀的加速結(jié)構(gòu)比從抓取構(gòu)建加速結(jié)構(gòu)能夠是實(shí)質(zhì)上計(jì)算較少的。光線跟蹤邏輯710具有對(duì)由加速結(jié)構(gòu)構(gòu)建邏輯706針對(duì)當(dāng)前圖像確定的加速結(jié)構(gòu)的訪問(wèn)。
光線跟蹤邏輯710被配置為執(zhí)行光線跟蹤以確定針對(duì)初始圖像的所識(shí)別的一個(gè)或多個(gè)區(qū)域的光線跟蹤數(shù)據(jù)。在一些示例中,光線跟蹤邏輯710可以執(zhí)行針對(duì)圖像的整體的光線跟蹤但是被處理的光線的密度可以在所識(shí)別的區(qū)域中被增大。用于執(zhí)行光線跟蹤的方法是本領(lǐng)域中已知的,并且通常包括執(zhí)行針對(duì)如由加速結(jié)構(gòu)表示的場(chǎng)景中的幾何結(jié)構(gòu)的光線的求交測(cè)試,并且之后在相交命中上運(yùn)行著色器程序。著色器程序的運(yùn)行可以得到二次光線,其能夠之后被求交測(cè)試,并且可以導(dǎo)致另一著色器程序?qū)嵗贿\(yùn)行。著色器程序可以被用于確定場(chǎng)景中的諸如反射、陰影、全局光照、等等的視覺(jué)效果。如由著色器程序確定的入射光照的特性可以貢獻(xiàn)于感興趣區(qū)域的確定。光線跟蹤可以以比由渲染邏輯704確定的低細(xì)節(jié)圖像的分辨率更高的分辨率來(lái)執(zhí)行。光線跟蹤的結(jié)果被傳遞到更新邏輯712。
更新邏輯712從渲染邏輯704接收初始圖像。更新邏輯712還從區(qū)域識(shí)別邏輯708接收針對(duì)器光線跟蹤的圖像數(shù)據(jù)要被添加到初始圖像的所識(shí)別的區(qū)域的指示。更新邏輯712還從光線跟蹤邏輯710接收要被添加到初始圖像的光線跟蹤的圖像數(shù)據(jù)。更新邏輯712被配置為使用針對(duì)初始圖像的所識(shí)別的一個(gè)或多個(gè)區(qū)域的所確定的光線跟蹤數(shù)據(jù)來(lái)更新初始圖像,以由此確定經(jīng)更新的圖像。經(jīng)更新的圖像具有在由光線跟蹤的圖像數(shù)據(jù)提供的所識(shí)別的區(qū)域中的詳細(xì)的光照效果。然而,在所識(shí)別的區(qū)域之外,經(jīng)更新的圖像不包括詳細(xì)的光照效果,因此產(chǎn)生經(jīng)更新的圖像的處理負(fù)擔(dān)低于在整幅圖像上的具有詳細(xì)的光照效果的圖像。這使得圖像能夠在具有對(duì)處理資源和大小的緊約束的諸如移動(dòng)設(shè)備(例如,智能電話、平板計(jì)算機(jī)、筆記本計(jì)算機(jī)、等等)的設(shè)備上被實(shí)時(shí)地生成。從更新邏輯712輸出的經(jīng)更新的圖像適合用于顯示。
在一些實(shí)施例中,時(shí)間規(guī)整邏輯714未被包括并且經(jīng)更新的圖像被傳遞到顯示器716以用于在其上顯示。
渲染邏輯704和光線跟蹤邏輯710可以被配置為異步地進(jìn)行操作。例如,光線跟蹤邏輯710可以以比渲染邏輯704更快的速率進(jìn)行操作。例如,渲染邏輯704可以以60Hz進(jìn)行操作,并且光線跟蹤邏輯可以以240Hz進(jìn)行操作。以這種方式,針對(duì)幀序列,渲染邏輯704在先前初始圖像被生成之后秒生成初始圖像。然而,光線跟蹤邏輯能夠確定要被用于以每秒240次的速率更新初始圖像的光線跟蹤數(shù)據(jù)。因此,在該示例中,特定初始圖像能夠在序列中的下一初始圖像被生成之前通過(guò)不同的光線跟蹤的圖像數(shù)據(jù)來(lái)更新四次。這允許處理系統(tǒng)700給出比渲染邏輯704操作的幀率更快的幀率(例如,240Hz而非60Hz)的印象。這在處理系統(tǒng)700要被用于虛擬現(xiàn)實(shí)系統(tǒng)中時(shí)尤其有用。為了使用戶具有連續(xù)運(yùn)動(dòng)的印象,幀率需要在虛擬現(xiàn)實(shí)系統(tǒng)中比當(dāng)注視屏幕上的顯示器(例如,電視)時(shí)需要的更高。例如,60Hz的幀率在電視上足夠給出圖像的連續(xù)流的印象,而沒(méi)有在各幀之間的引人注目的斷續(xù),然而,這在虛擬現(xiàn)實(shí)系統(tǒng)中將不是足夠的。然而,240Hz的幀率足夠給出虛擬現(xiàn)實(shí)系統(tǒng)中的圖像的連續(xù)流的印象。這利用系統(tǒng)700來(lái)實(shí)現(xiàn)而無(wú)需增大渲染邏輯704的幀率。
應(yīng)當(dāng)理解,以上給出的數(shù)目?jī)H僅是通過(guò)舉例的方式,并且在其他示例中,渲染邏輯704和光線跟蹤邏輯710可以以與以上指出的速率不同的速率來(lái)操作,并且在不同速率之間的比率可以在不同示例中是不同的。
作為示例,光線跟蹤邏輯710、區(qū)域識(shí)別邏輯708和更新邏輯712被配置為以第一速率進(jìn)行操作,然而渲染邏輯704被配置為以第二速率進(jìn)行操作,其中第一速率(例如,240Hz)比第二速率(例如,60Hz)更快。這允許區(qū)域被識(shí)別,光線跟蹤數(shù)據(jù)被確定,并且初始圖像以更快的速率進(jìn)行更新。以這種方式,初始圖像可以保持并且光線跟蹤數(shù)據(jù)能夠在更新邏輯712中被重復(fù)地添加到其。在以上給出的示例中,(例如,實(shí)現(xiàn)柵格化技術(shù)的)渲染邏輯704能夠以60Hz進(jìn)行操作,但是圖像的中心凹區(qū)域的視線跟蹤和識(shí)別、初始圖像的光線跟蹤和更小能夠以240Hz運(yùn)行。加速結(jié)構(gòu)構(gòu)建邏輯706可以以與圖7中示出的組件不同的速率(即,異步地)進(jìn)行操作。例如,加速結(jié)構(gòu)構(gòu)建邏輯706能夠以30Hz或60Hz的相對(duì)低的頻率進(jìn)行操作,而確定與加速結(jié)構(gòu)的相交的光線跟蹤邏輯710能夠以240Hz進(jìn)行操作。另外,時(shí)間規(guī)整邏輯714和顯示器716還可以與圖7中示出的組件異步地進(jìn)行操作。
在區(qū)域識(shí)別邏輯708通過(guò)分析初始圖像來(lái)識(shí)別區(qū)域的情況下,該識(shí)別可以以渲染邏輯704的操作速率進(jìn)行,因?yàn)槌跏紙D像將不會(huì)比這改變得更快。備選地,甚至在這種情況下,區(qū)域的識(shí)別可以以光線跟蹤邏輯710的更快的速率進(jìn)行,因?yàn)樵谝恍┦纠泄饩€可以指示哪里需要更多光線。
在一些示例中,時(shí)間規(guī)整邏輯714被包括并且經(jīng)更新的圖像從更新邏輯712被傳遞到時(shí)間規(guī)整邏輯714。時(shí)間規(guī)整邏輯被配置為在其被發(fā)送以在顯示器716上顯示之前將圖像規(guī)整過(guò)程應(yīng)用到經(jīng)更新的圖像。由于初始圖像可以以比幀被顯示在顯示器716上的幀率更慢的幀率來(lái)生成,所以圖像規(guī)整過(guò)程能夠?qū)D像進(jìn)行規(guī)整以考慮在初始圖像的視角與圖像將從其被顯示的視角之間的移動(dòng),以便在初始圖像被生成的時(shí)間之間的時(shí)刻顯示幀。時(shí)間規(guī)整尤其對(duì)補(bǔ)償視角中的旋轉(zhuǎn)有效,但是當(dāng)考慮視角位置的變化時(shí)相當(dāng)較不正確。這樣的圖像規(guī)整過(guò)程是本領(lǐng)域中已知的,例如在William Mark、Leonard McMillan和Gary Bishop于1997年在羅德島普羅維登斯市的交互式3D圖形研討會(huì)的會(huì)議記錄(1997年4月27-30,第7-16頁(yè))中的文章“Post-Rendering 3D Warping”中描述的。
本文中描述的示例中的一些用于在虛擬現(xiàn)實(shí)系統(tǒng)中使用。在一些其他示例中,處理系統(tǒng)能夠用于在增強(qiáng)現(xiàn)實(shí)系統(tǒng)中使用。關(guān)于真實(shí)世界的信息可以被用于確定在虛擬世界中哪里需要光線。例如,區(qū)域識(shí)別邏輯708能夠使用真實(shí)世界信息來(lái)識(shí)別要在其中執(zhí)行光線跟蹤或者要在其中增大光線跟蹤的光線密度的區(qū)域。在此情形中,捕獲真實(shí)世界的相機(jī)能夠檢測(cè)對(duì)在虛擬世界中進(jìn)行渲染具有效果的改變。例如,真實(shí)對(duì)象可以移動(dòng)并更改在虛擬對(duì)象上的陰影投射,或者真實(shí)對(duì)象可以移動(dòng)通過(guò)由虛擬對(duì)象創(chuàng)建的暗影。
在先前US專(zhuān)利申請(qǐng)?zhí)?3/953,754(被公布為US 2014/0063016 A1)中詳細(xì)描述了混合渲染系統(tǒng)?;旌箱秩鞠到y(tǒng)允許光線跟蹤邏輯和柵格化邏輯共享GPU上的一些處理資源。圖8圖示了實(shí)現(xiàn)混合渲染系統(tǒng)的GPU 802的示例,其能夠被包括在諸如處理系統(tǒng)202和612的處理系統(tǒng)中。GPU 802與GPU 202相似,但是柵格化邏輯和光線跟蹤邏輯共享GPU 802上的處理資源。具體地,GPU 802包括視線跟蹤邏輯214、控制邏輯822、柵格化表面識(shí)別邏輯804、光線跟蹤表面識(shí)別邏輯806、標(biāo)準(zhǔn)化器808、一個(gè)或多個(gè)運(yùn)行核芯810以及組合邏輯816。組合邏輯816包括融合邏輯812和圖像緩沖器814。
GPU 802可以提供用于針對(duì)由光線跟蹤并且由柵格化技術(shù)兩者識(shí)別的表面同時(shí)執(zhí)行著色作業(yè)的統(tǒng)一計(jì)算資源。例如,統(tǒng)一計(jì)算資源基于輸入的經(jīng)標(biāo)準(zhǔn)化的集合來(lái)運(yùn)行著色器,并且給出的表面由相關(guān)聯(lián)的著色器模塊著色,與該表面是否要響應(yīng)于光線相交或在柵格化期間而被著色無(wú)關(guān)。在另一示例中,不同的著色器代碼模塊可以存在用于對(duì)光線跟蹤相交著色并且用于柵格化。在該示例中,用于柵格化的表面著色器可以發(fā)出要被求交測(cè)試的光線,并且根據(jù)對(duì)該光線進(jìn)行求交測(cè)試的結(jié)果來(lái)執(zhí)行著色。
與3-D渲染是使用柵格化技術(shù)還是光線跟蹤(還是兩者)執(zhí)行的無(wú)關(guān),要被執(zhí)行的活動(dòng)的兩個(gè)主要類(lèi)別是:(1)識(shí)別可能需要在2-D圖像的渲染期間被著色的或否則被處理的3-D場(chǎng)景幾何結(jié)構(gòu)的表面;以及(2)確定該表面將在被渲染的圖像上具有什么效果。這些組成操作可以具有用于柵格化的和用于光線跟蹤的不同的處理、數(shù)據(jù)訪問(wèn)和數(shù)據(jù)流暗示。
柵格化表面識(shí)別邏輯804執(zhí)行用于識(shí)別可能需要在圖像的柵格化區(qū)域的柵格化渲染期間被著色或否則被處理的3-D場(chǎng)景幾何結(jié)構(gòu)的表面的處理。這可能涉及執(zhí)行在與樣本位置交疊的基元上的每個(gè)樣本位置處的深度測(cè)試以確定哪個(gè)基元在每個(gè)樣本深度位置處可見(jiàn)。在每個(gè)樣本位置處的所識(shí)別的表面的指示被提供到標(biāo)準(zhǔn)化器808。
光線跟蹤表面識(shí)別邏輯806執(zhí)行用于識(shí)別可能需要在圖像的感興趣區(qū)域的光線跟蹤期間被著色或否則被處理的3-D場(chǎng)景幾何結(jié)構(gòu)的表面的處理。這可以涉及跟蹤通過(guò)場(chǎng)景的每個(gè)樣本位置的光線并且執(zhí)行在場(chǎng)景中的基元上的求交測(cè)試以確定在每個(gè)樣本深度位置處哪個(gè)基元相交。在每個(gè)樣本位置處的所識(shí)別的表面的指示被提供到標(biāo)準(zhǔn)化器808。
在標(biāo)準(zhǔn)化器808接收到的數(shù)據(jù)的格式可以取決于數(shù)據(jù)是從柵格化表面識(shí)別邏輯804還是光線跟蹤表面識(shí)別邏輯806接收的而不同。標(biāo)準(zhǔn)化器處理數(shù)據(jù)以形成著色器輸入的經(jīng)標(biāo)準(zhǔn)化的集合,其具有通用格式,與表面是響應(yīng)于光線相交還是在柵格化期間被著色的無(wú)關(guān)。著色器輸入的經(jīng)標(biāo)準(zhǔn)化的集合被傳遞到運(yùn)行核芯810。著色器被運(yùn)行在運(yùn)行核芯810上以確定所識(shí)別的表面應(yīng)當(dāng)在被渲染的圖像上具有什么效果。著色器的運(yùn)行可以引起要由表面識(shí)別邏輯804和/或806執(zhí)行的另外的測(cè)試。另外,著色器的運(yùn)行可以使一個(gè)或多個(gè)光線被發(fā)出(例如,以對(duì)反射進(jìn)行建模),并且這些光線被傳遞回到光線跟蹤表面識(shí)別邏輯806以確定所發(fā)出的光線與哪些表面相交。作為另一示例,使用柵格化技術(shù)處理的特定幾何結(jié)構(gòu)可以具有透明的或“穿通的”對(duì)象類(lèi)型。概念上,穿通對(duì)象包括在它們中具有孔的基元。在這種情況下,在運(yùn)行核芯810處運(yùn)行著色器的結(jié)果可以得到通過(guò)柵格化表面識(shí)別邏輯804的另一輪以確定圖像值與透明基元融合或在對(duì)應(yīng)于穿通基元的孔的樣本位置中被渲染。
為了渲染一些樣本位置,柵格化過(guò)程可以通過(guò)識(shí)別在樣本位置處(在柵格化表面識(shí)別邏輯804處)可見(jiàn)的表面來(lái)開(kāi)始,之后在(一個(gè)或多個(gè))運(yùn)行核芯810處對(duì)著色器的運(yùn)行可以發(fā)出能夠之后使用光線跟蹤技術(shù)來(lái)處理的光線。因此,光線跟蹤和柵格化兩者都可以用于在特定樣本位置處渲染特定圖像值。在這種情況下,圖像值可以被認(rèn)為是已經(jīng)使用柵格化技術(shù)或光線跟蹤技術(shù)來(lái)渲染,使得其可以為圖像的柵格化區(qū)域或圖像的感興趣區(qū)域的部分。
控制邏輯822能夠控制柵格化表面識(shí)別邏輯804、光線跟蹤表面識(shí)別邏輯806、(一個(gè)或多個(gè))運(yùn)行核芯810和組合邏輯816的操作,使得圖像的感興趣區(qū)域通過(guò)光線跟蹤技術(shù)來(lái)渲染,并且圖像的柵格化區(qū)域通過(guò)柵格化技術(shù)來(lái)渲染。組合邏輯814的圖像緩沖器814能夠存儲(chǔ)針對(duì)圖像的每個(gè)樣本位置(或每個(gè)像素位置)的圖像值。例如,圖像的柵格化區(qū)域(其可以包括圖像的整體)能夠通過(guò)柵格化來(lái)渲染并且經(jīng)渲染的圖像值能夠被存儲(chǔ)在圖像緩沖器814中。經(jīng)柵格化的圖像值能夠被用作針對(duì)感興趣區(qū)域中的光線跟蹤的圖像值的背景。即,光線跟蹤技術(shù)能夠之后被用于確定針對(duì)感興趣區(qū)域的圖像值。在混合區(qū)域中,混合邏輯812能夠?qū)⑼ㄟ^(guò)光線跟蹤確定的圖像值與被存儲(chǔ)在圖像緩沖器814中的經(jīng)柵格化的圖像值進(jìn)行混合。如果存在未包括在混合區(qū)域中的感興趣區(qū)域的部分,則通過(guò)光線跟蹤確定的針對(duì)感興趣區(qū)域的該部分的圖像值能夠被寫(xiě)入到圖像緩沖器814中,其可以重寫(xiě)或可以不重寫(xiě)先前存儲(chǔ)在圖像緩沖器814中的針對(duì)感興趣區(qū)域的該部分的圖像值。如以上所描述的,當(dāng)經(jīng)渲染的圖像的圖像值中的全部已經(jīng)被存儲(chǔ)在圖像緩沖器814中時(shí),圖像值可以被輸出到顯示器以被顯示給用戶。
在混合GPU 802中,柵格化表面識(shí)別邏輯804可以被認(rèn)為是“柵格化邏輯”,并且光線跟蹤表面識(shí)別邏輯806以被認(rèn)為是“光線跟蹤邏輯”。標(biāo)準(zhǔn)化器808意味著能夠針對(duì)著色的基元碎片運(yùn)行相同的著色器程序而與柵格化還是光線跟蹤已經(jīng)被用于將基元碎片識(shí)別為可見(jiàn)無(wú)關(guān)。換言之,光線跟蹤邏輯被配置為識(shí)別要被著色的基元碎片,柵格化邏輯被配置為識(shí)別要被著色的基元碎片,并且一個(gè)或多個(gè)運(yùn)行核芯被配置為對(duì)所識(shí)別的基元碎片應(yīng)用著色,而與基元碎片是由光線跟蹤邏輯還是由柵格化邏輯識(shí)別的無(wú)關(guān)。使用通用的著色器程序可以有益于避免包括在圖像的不同區(qū)域中的效果(例如,濾波、彩色化或混合效果、等等)中的引入注目的差異,即在(一個(gè)或多個(gè))感興趣區(qū)域內(nèi)與在(一個(gè)或多個(gè))感興趣區(qū)域之外相比較。這可以是有益的,因?yàn)楫?dāng)感興趣區(qū)域在圖像上移動(dòng)時(shí)使用的效果的變化可能是引人注目的并且使用戶分散注意力。
在一些示例中,整幅圖像能夠根據(jù)柵格化技術(shù)來(lái)處理,并且之后在(一個(gè)或多個(gè))感興趣區(qū)域內(nèi),可以發(fā)出光線以用于由光線跟蹤邏輯806處理以將細(xì)節(jié)添加到圖像中的(一個(gè)或多個(gè))感興趣區(qū)域。每個(gè)樣本位置發(fā)出的光線的數(shù)量可以變化。例如,這可以在融合區(qū)域上變化,使得感興趣區(qū)域的中心附近,由光線跟蹤邏輯處理比進(jìn)一步遠(yuǎn)離感興趣區(qū)域的中心處理的更多的光線。另外,如以上所提到的,在一些極端示例中,感興趣區(qū)域可以跨整幅圖像延伸,但是由光線跟蹤邏輯處理的光線的密度可以相較于進(jìn)一步遠(yuǎn)離感興趣區(qū)域的中心或進(jìn)一步遠(yuǎn)離視線位置的對(duì)應(yīng)光線密度,越靠近感興趣區(qū)域的中心或越靠近視線位置,即越靠近中心凹區(qū)域,越高。
在一些示例中,能夠確定焦點(diǎn)深度,并且之后能夠設(shè)置針對(duì)經(jīng)渲染的圖像的場(chǎng)的深度。例如,視線位置能夠被用于識(shí)別用戶指向的一個(gè)或多個(gè)對(duì)象。在視線位置處的一個(gè)或多個(gè)所識(shí)別的對(duì)象的深度能夠被確定例如作為柵格化過(guò)程的部分。(一個(gè)或多個(gè))所確定的深度能夠被用于設(shè)置焦點(diǎn)深度。如果多于一個(gè)對(duì)象被識(shí)別,則焦點(diǎn)深度能夠被確定為平均值(例如,均值、中間值或眾數(shù))。場(chǎng)的深度能夠之后基于焦點(diǎn)深度來(lái)設(shè)置。在柵格化階段之后,圖像中的對(duì)象的深度被確定,并且針對(duì)圖像的不同區(qū)域處理的光線的數(shù)量可以根據(jù)那些區(qū)域中的對(duì)象的深度而變化。例如,較高的光線密度可以相較于被用于處理含有具有落入場(chǎng)的深度外的深度的可見(jiàn)對(duì)象的區(qū)域的光線密度被用于處理含有具有落入場(chǎng)的深度內(nèi)的深度的可見(jiàn)對(duì)象的區(qū)域。以這種方式,針對(duì)包含具有落入場(chǎng)的深度內(nèi)的深度的可見(jiàn)對(duì)象的經(jīng)渲染的圖像的區(qū)域相較于包含具有落入場(chǎng)的深度外的深度的可見(jiàn)對(duì)象的經(jīng)渲染的圖像的區(qū)域細(xì)節(jié),水平(一般與光線密度相對(duì)應(yīng))更大。
視線跟蹤邏輯將視線位置的指示提供到控制邏輯。感興趣區(qū)域的大小可以由控制邏輯設(shè)置。感興趣區(qū)域的大小可以是固定的或可變的。例如,如果感興趣區(qū)域的大小是可變的,則控制邏輯可以基于以下中的一個(gè)或多個(gè)來(lái)設(shè)置感興趣區(qū)域(即,使用光線跟蹤渲染的區(qū)域)的大?。?i)視線跟蹤過(guò)程的延時(shí),(ii)視線位置的移動(dòng)的速度,(iii)要被渲染的圖像的內(nèi)容,(iv)在處理系統(tǒng)上的當(dāng)前處理負(fù)載,以及(v)用戶偏好。
視線跟蹤過(guò)程的延時(shí)能夠被定義為在捕獲要根據(jù)其確定視線位置的用戶的圖像與在顯示器上顯示對(duì)應(yīng)的經(jīng)渲染的圖像之間經(jīng)過(guò)的時(shí)間。較短的延時(shí)將意味著感興趣區(qū)域與在圖像被顯示給用戶的時(shí)間的中心凹區(qū)域更好地匹配。例如,10ms的延時(shí)一般是可接受的,然而25ms的延時(shí)用戶可能能夠感知到經(jīng)渲染的感興趣區(qū)域與當(dāng)圖像被顯示時(shí)用戶的視線的當(dāng)前中心凹區(qū)域不匹配。因此,關(guān)于較長(zhǎng)的延遲,感興趣區(qū)域的大小可以被增大以允許在視線跟蹤與圖像的渲染之間的時(shí)間中的更多的眼動(dòng)。
在本文中描述的生理中,由被包括在與GPU 208相同的SOC上的視線跟蹤邏輯214執(zhí)行視線跟蹤需要的視覺(jué)處理。因此,視線跟蹤(例如,視線位置)的結(jié)果能夠被直接流水線傳輸?shù)紾PU 208中而非被存儲(chǔ)在存儲(chǔ)器中并且之后從存儲(chǔ)器中被讀出。這有助于減少延時(shí),其轉(zhuǎn)而意味著感興趣區(qū)域的大小能夠被減小,由此甚至在進(jìn)一步在減少功率消耗并提高渲染的速度方面改進(jìn)性能。以這種方式,能夠存在在眼睛跟蹤傳感器流水線(例如,相機(jī)流水線和視線跟蹤邏輯)與渲染邏輯(例如,柵格化邏輯和光線跟蹤邏輯)之間的緊密整合,從而最小化從用戶的眼睛移動(dòng)到慮新的視線位置幀被呈現(xiàn)給用戶的延時(shí)。例如,SOC上的不同的處理模塊可以共享同步信號(hào),使得在不同處理模塊(例如,相機(jī)流水線、視線跟蹤邏輯、柵格化邏輯和光線跟蹤邏輯)上的操作的計(jì)時(shí)能夠被同步。不同的處理模塊以非同步的方式來(lái)運(yùn)行,延遲能夠隨著數(shù)據(jù)從一個(gè)模塊移動(dòng)到另一模塊而累積。
在以上描述的示例中,視線跟蹤邏輯214被實(shí)現(xiàn)在GPU 208上。然而,在其他示例中,視線跟蹤邏輯214能夠被實(shí)現(xiàn)在相機(jī)流水線210中,并且視線跟蹤的結(jié)果(例如,所確定的視線位置)從相機(jī)流水線210被傳遞到GPU 208。另外,如以上所提到的,視線跟蹤邏輯214可以不使用相機(jī),并且可以使用其他視線跟蹤技術(shù)來(lái)識(shí)別視線位置。許多眼睛跟蹤器(或者“視線跟蹤器”)使用某種類(lèi)型的光傳感器,但是它們不可以被認(rèn)為是傳統(tǒng)意義上的“相機(jī)”,因?yàn)樗鼈兛赡懿皇怯糜谝源蠖鄶?shù)相機(jī)的方式使用在一個(gè)或多個(gè)透鏡后面的光敏元件的矩陣記錄圖像的設(shè)備。例如,一些眼睛跟蹤器使用瞳孔位置,其他使用角膜形狀,并且一些能夠使用視網(wǎng)膜來(lái)確定視線位置。在一個(gè)示例中,視線跟蹤邏輯能夠在眼睛處照射低功率紅外聚集燈并且在頭戴式顯示器腔內(nèi)具有能夠基于在每個(gè)傳感器處的反射的光強(qiáng)度來(lái)推出眼睛位置的單個(gè)(未聚集的)光傳感器。
如果用戶移動(dòng)他們的視線位置的深度增大,則感興趣區(qū)域的大小可以被增大。這能夠減少用戶對(duì)經(jīng)渲染的感興趣區(qū)域的邊界的感知,但是其可能意味著可能需要更多的處理功率和時(shí)間來(lái)渲染圖像,因?yàn)閳D像中的更多將通過(guò)比柵格化技術(shù)更復(fù)雜的光線跟蹤技術(shù)來(lái)渲染。用戶移動(dòng)他們的視線位置的深度能夠由視線跟蹤邏輯通過(guò)分析所捕獲的圖像的序列來(lái)確定。
如果被渲染的圖像的內(nèi)容是非常詳細(xì)的,則感興趣區(qū)域的大小可以被減小。這是因?yàn)楦敿?xì)的圖像對(duì)于通過(guò)光線跟蹤來(lái)渲染是更復(fù)雜的,因?yàn)闉榱藴p少用于渲染圖像的渲染復(fù)雜度,圖像的較小部分可以通過(guò)光線跟蹤來(lái)渲染。
如果在處理系統(tǒng)上的當(dāng)前處理負(fù)載增加,則感興趣區(qū)域的大小可以被減小。通過(guò)光線跟蹤來(lái)渲染圖像的較小部分將減小用于渲染圖像的渲染復(fù)雜度。
用戶可能偏好通過(guò)光線跟蹤來(lái)渲染圖像的較小或較大區(qū)域,因此用戶可能能夠設(shè)置用于設(shè)置感興趣區(qū)域的大小的用戶偏好。例如,用戶可以找到分散注意力的感興趣區(qū)域的邊界,并且因此可以增大感興趣區(qū)域的大小,使得邊界被進(jìn)一步推入到用戶的視場(chǎng)的外圍中。
一些示例可以使用僅僅預(yù)測(cè)的“中心凹”的形式,其中圖像的區(qū)域按給出首先渲染圖像的高細(xì)節(jié)區(qū)域的高可能性的順序被渲染并被顯示。這將允許整幅圖像以高細(xì)節(jié)被渲染,其中詳細(xì)的圖像區(qū)域首先被渲染并被顯示,使得這些區(qū)域具有低延時(shí)。圖像的較不詳細(xì)的區(qū)域可以具有較長(zhǎng)的延時(shí),但是這可能不會(huì)顯著降低用戶對(duì)被渲染和顯示的圖像的感知。例如,如果整個(gè)場(chǎng)景能夠在33ms(即,以30Hz)以高細(xì)節(jié)來(lái)渲染,并且如果時(shí)間規(guī)整被使用并且圖像的部分逐漸地以高得多的速率(例如,240Hz)來(lái)混合,之后可能根本需要眼睛跟蹤。
在以上描述的示例中,僅僅存在一個(gè)用戶。然而,在如以上提到的其他示例中,可以存在查看經(jīng)渲染的圖像的多于一個(gè)用戶。在這種情況下,視線跟蹤邏輯可以確定針對(duì)用戶中的每個(gè)的視線位置并且可以針對(duì)視線位置中的每個(gè)確定例如包圍各自的視線位置的各自的感興趣區(qū)域。多個(gè)感興趣區(qū)域能夠之后使用光線跟蹤來(lái)渲染,同時(shí)(至少)圖像的剩余部分使用柵格化來(lái)渲染。
關(guān)于術(shù)語(yǔ),(一個(gè)或多個(gè))“感興趣”區(qū)域可能不是“感興趣”的。感興趣區(qū)域是要以比其他區(qū)域更大的細(xì)節(jié)被渲染的區(qū)域,例如中心凹區(qū)域或中心凹區(qū)域植物的在那里在人類(lèi)視覺(jué)中強(qiáng)烈地感知到細(xì)節(jié)水平的其他特定區(qū)域。因此有益的是使用光線跟蹤技術(shù)來(lái)渲染(一個(gè)或多個(gè))感興趣區(qū)域,因?yàn)楣饩€跟蹤能夠提供非常詳細(xì)的圖像。
在以上描述的示例中,感興趣區(qū)域被控制為包圍檢測(cè)到的視線位置。在較簡(jiǎn)單的示例中,在處理系統(tǒng)中不需要視線跟蹤邏輯和相機(jī)流水線,并且相反感興趣區(qū)域是圖像的固定的(例如,中心的)區(qū)域。這可以是與用戶的視線無(wú)關(guān)的情況。圖9示出了具有中心感興趣區(qū)域904的圖像902的示例。感興趣區(qū)域904將如在以上描述的示例中通過(guò)光線跟蹤來(lái)渲染,并且圖像902的剩余部分將通過(guò)柵格化來(lái)渲染,并且兩個(gè)渲染可以被一起融合在融合區(qū)域中。由于感興趣區(qū)域904不移動(dòng)以跟蹤用戶的視線,所以區(qū)域904被設(shè)置為比在先前示例中更大。例如,在這種情況下,感興趣區(qū)域904覆蓋圖像902的面積的大約一半。因此,在該示例中相較于以上描述的包括視線跟蹤技術(shù)的示例沒(méi)有那么大的處理節(jié)省,其中感興趣區(qū)域的大小能夠被減小為圖像的面積的大約1%。應(yīng)當(dāng)理解,在以上描述的示例中,柵格化區(qū)域是連續(xù)的,并且在圖8中示出的示例中,柵格化可能不是完全連續(xù)的(盡管其在該示例中也可以是連續(xù)的)。
在其他示例中,感興趣區(qū)域可以由圖像中的內(nèi)容確定。例如,如果場(chǎng)景中的對(duì)象期望為關(guān)注的焦點(diǎn),則圖像的包含該對(duì)象的區(qū)域可以被確定為感興趣區(qū)域,使得其使用光線跟蹤來(lái)渲染。這可能是與用戶的視線無(wú)關(guān)并且與圖像中的對(duì)象的位置無(wú)關(guān)的情況,即對(duì)象不需要被定位在中心。作為另一示例,包含移動(dòng)對(duì)象的圖像的區(qū)域可以被確定為感興趣區(qū)域,使得其使用光線跟蹤技術(shù)來(lái)處理。作為另一示例,視線跟蹤邏輯能夠使用用戶的眼睛被確定為被頻繁地吸引到其的“熱點(diǎn)”(例如,都捕獲用戶的注意力的圖像的兩個(gè)比特,其中視線在它們之間被彈跳),并且這些熱點(diǎn)能夠被確定為感興趣區(qū)域,使得使用光線跟蹤技術(shù)來(lái)處理它們。作為另一示例,來(lái)自過(guò)去的中心凹聚集區(qū)域(作為子集或先前的簡(jiǎn)化)能夠被確定為感興趣區(qū)域,使得使用光線跟蹤技術(shù)來(lái)處理它們。作為另一示例,未來(lái)的中心凹目的能夠基于眼睛的運(yùn)動(dòng)的模型和/或掃視機(jī)制來(lái)預(yù)測(cè),并且那些預(yù)測(cè)的未來(lái)的中心凹目的能夠被確定為感興趣區(qū)域,使得使用光線跟蹤技術(shù)來(lái)處理它們。作為另一示例,高圖像復(fù)雜度的區(qū)域能夠根據(jù)復(fù)雜度度量(例如,區(qū)域中的基元的數(shù)量或區(qū)域中的邊緣的數(shù)量,等等)來(lái)識(shí)別,并且那些所識(shí)別的區(qū)域能夠被確定為感興趣區(qū)域,使得使用光線跟蹤技術(shù)來(lái)處理它們。復(fù)雜度度量可以基于已知的信息內(nèi)容和/或圖像內(nèi)的增強(qiáng),例如標(biāo)牌可以以高細(xì)節(jié)被渲染,這是因?yàn)楹芸赡苡脩魧⒛暷抢铩?/p>
在包括多個(gè)感興趣區(qū)域的其他示例中,感興趣區(qū)域可以出于不同的原因被確定為感性區(qū)域。例如,第一感興趣區(qū)域可以對(duì)應(yīng)于基于檢測(cè)到的視線位置確定的中心凹區(qū)域,并且第二感興趣區(qū)域可以被固定在圖像的中心處。
光線跟蹤邏輯和柵格化邏輯可以被配置為以相同的幀率渲染圖像。然而,在其他示例中,光線跟蹤邏輯可以以第一幀率渲染圖像的感興趣區(qū)域,并且柵格化邏輯可以以第二幀率渲染圖像的柵格化區(qū)域,其中第一幀率與第二幀率不同。第一幀率能夠高于或者低于第二幀率。
經(jīng)渲染的圖像的像素密度可以在感興趣區(qū)域中比在其他區(qū)域中(例如,在外圍中)更高。在本文中描述的示例中,柵格化邏輯以相同的分辨率渲染柵格化區(qū)域的整體。然而,在其他示例中,柵格化邏輯可以以各自的多個(gè)分辨率(例如,以針對(duì)柵格化區(qū)域的更多的外圍部分下降的分辨率)執(zhí)行圖像的柵格化區(qū)域的各自的部分的多個(gè)渲染。在這種情況下,組合邏輯將使用光線跟蹤技術(shù)渲染的圖像的經(jīng)渲染的感興趣區(qū)域與使用柵格化技術(shù)渲染的柵格化區(qū)域的多個(gè)經(jīng)渲染的部分進(jìn)行組合以形成經(jīng)渲染的圖像。
在以上描述的示例中,不同的渲染技術(shù)(例如,柵格化和光線跟蹤)被描述為用于渲染不同的區(qū)域。然而,更廣泛地,不同的渲染方式可以被用于渲染圖像的不同的區(qū)域。例如,相較于針對(duì)其他區(qū)域?qū)崿F(xiàn)的光線跟蹤方法,可以針對(duì)感興趣區(qū)域?qū)崿F(xiàn)用于光線跟蹤的不同的方法。例如,低細(xì)節(jié)場(chǎng)景數(shù)據(jù)庫(kù)和高細(xì)節(jié)場(chǎng)景數(shù)據(jù)庫(kù)可以被生成以表示被渲染的場(chǎng)景中的幾何結(jié)構(gòu)。高細(xì)節(jié)場(chǎng)景數(shù)據(jù)庫(kù)可以以比用于描述低細(xì)節(jié)場(chǎng)景數(shù)據(jù)庫(kù)中的幾何結(jié)構(gòu)的分辨率更高的分辨率來(lái)描述幾何結(jié)構(gòu)(例如,包括更多的多邊形并且使用數(shù)據(jù)的多個(gè)比特來(lái)表示基元的屬性,例如,基元頂點(diǎn)的x、y和z坐標(biāo)以及與基元相關(guān)聯(lián)的其他基元數(shù)據(jù))。在感興趣區(qū)域中(例如,在(一個(gè)或多個(gè))中心凹區(qū)域或具有高圖像細(xì)節(jié)的區(qū)域中),光線跟蹤邏輯能夠使用高細(xì)節(jié)場(chǎng)景數(shù)據(jù)庫(kù)來(lái)執(zhí)行光線跟蹤(例如,以執(zhí)行針對(duì)場(chǎng)景幾何結(jié)構(gòu)的光線的求交測(cè)試,并且以響應(yīng)于相交而執(zhí)行著色),使得在感興趣區(qū)域中實(shí)現(xiàn)高質(zhì)量渲染結(jié)果。對(duì)比執(zhí)行,在感興趣區(qū)域之外(例如,遠(yuǎn)離(一個(gè)或多個(gè))中心凹區(qū)域或具有高圖像細(xì)節(jié)的區(qū)域),光線跟蹤邏輯能夠使用低細(xì)節(jié)場(chǎng)景數(shù)據(jù)庫(kù)來(lái)執(zhí)行光線跟蹤(例如,以執(zhí)行針對(duì)場(chǎng)景幾何結(jié)構(gòu)的光線的求交測(cè)試,并且以響應(yīng)于相交而執(zhí)行著色),使得光線跟蹤邏輯的用于渲染圖像的其中渲染的質(zhì)量沒(méi)有感興趣區(qū)域那么重要的區(qū)域的處理要求被降低。另外,相較于遠(yuǎn)離感興趣區(qū)域使用的那些,可以在感興趣區(qū)域中(例如,在(一個(gè)或多個(gè))中心凹區(qū)域或具有高圖像細(xì)節(jié)的區(qū)域中)實(shí)現(xiàn)不同的著色器。例如,能夠針對(duì)場(chǎng)景中的感興趣區(qū)域計(jì)算用于實(shí)現(xiàn)場(chǎng)景中的準(zhǔn)確的反射的復(fù)雜的著色器,同時(shí)可以實(shí)現(xiàn)其他著色器(例如,較不復(fù)雜的著色器)以用于對(duì)針對(duì)不為場(chǎng)景中的感興趣區(qū)域的區(qū)域的反射進(jìn)行建模。相同的原理可以應(yīng)用到其他著色器,例如以實(shí)現(xiàn)諸如陰影、全局光照、間接和柔軟光照以及其他現(xiàn)象的效果。通過(guò)控制哪些著色器程序被運(yùn)行用于渲染圖像的不同區(qū)域,相較于渲染不為感興趣區(qū)域的區(qū)域,更多的處理功率能夠被集中在渲染感興趣區(qū)域上。
另外,不一定必須在什么是“感興趣區(qū)域”與什么不是“感興趣區(qū)域”之間進(jìn)行嚴(yán)格劃分;并且相反,渲染復(fù)雜度(例如,使用的幾何結(jié)構(gòu)數(shù)據(jù)庫(kù)中的細(xì)節(jié)的水平,和/或被運(yùn)行的著色器程序中的復(fù)雜度的水平)能夠基于針對(duì)該區(qū)域確定的感興趣的水平而被控制為復(fù)雜度的許多水平之一(例如,復(fù)雜度的三個(gè)或更多個(gè)水平)。例如,可以存在針對(duì)區(qū)域的“感興趣”的以下兩個(gè)度量:(i)該區(qū)域是否處于中心凹區(qū)域中,以及(ii)該區(qū)域是否示出圖像中的高頻細(xì)節(jié)。最高渲染復(fù)雜度可以被分配到圖像的高細(xì)節(jié)中心凹區(qū)域;同時(shí)最低渲染復(fù)雜度可以被分配到圖像的低細(xì)節(jié)非中心凹區(qū)域。針對(duì)低細(xì)節(jié)中心凹區(qū)域和高細(xì)節(jié)非中心凹區(qū)域的渲染復(fù)雜度可以在兩個(gè)極值之間的某個(gè)地方??梢杂幸娴氖鞘鼓承┫袼厝诤吓c高細(xì)節(jié)場(chǎng)景相交的一些光線和/或運(yùn)行具有與低細(xì)節(jié)場(chǎng)景相交的一些光線的高細(xì)節(jié)著色器和/或運(yùn)行低細(xì)節(jié)著色器。該比例能夠取決于被分配給該像素的興趣而在不同像素之間變化。另外,復(fù)雜度改變的方式可以取決于區(qū)域被分類(lèi)為感興趣區(qū)域與否的原因。例如,圖像的高細(xì)節(jié)外圍區(qū)域可以使用用于渲染的高細(xì)節(jié)數(shù)據(jù)庫(kù)來(lái)渲染,使得混疊效果能夠被減少,但是實(shí)現(xiàn)復(fù)雜的著色器程序來(lái)實(shí)現(xiàn)諸如陰影、反射和全局光照、等等的光照效果可能不是有益的。這是因?yàn)樵谕鈬校祟?lèi)對(duì)混疊敏感但是對(duì)圖像的精確外觀不是那么敏感。對(duì)比之下,在中心凹區(qū)域中,人類(lèi)對(duì)諸如準(zhǔn)確的諸如陰影、反射和全局光照、等等的準(zhǔn)確的光照效果的圖像細(xì)節(jié)非常敏感,但是對(duì)混疊不是那么敏感。因此,在圖像的低細(xì)節(jié)中心凹區(qū)域中,光線跟蹤邏輯可以使用低細(xì)節(jié)數(shù)據(jù)庫(kù)來(lái)渲染以減少光線跟蹤過(guò)程的處理成本,但是復(fù)雜的著色器程序可以被運(yùn)行以實(shí)現(xiàn)諸如陰影、反射和全局光照、等等的光照效果。
例如,圖10圖示了包括以下兩個(gè)加速結(jié)構(gòu)的處理系統(tǒng)1000:低細(xì)節(jié)加速結(jié)構(gòu)1002L和高細(xì)節(jié)加速結(jié)構(gòu)1002H。系統(tǒng)1000還包括低細(xì)節(jié)光線跟蹤邏輯1004、區(qū)域識(shí)別邏輯1008、高細(xì)節(jié)光線跟蹤邏輯1010、更新邏輯1012和顯示器1016。在一些示例中,系統(tǒng)1000還可以包括時(shí)間規(guī)整邏輯1014。邏輯塊1004至邏輯塊1014可以以硬件、軟件或其任何組合來(lái)實(shí)現(xiàn)。處理系統(tǒng)1000與圖7中示出的處理系統(tǒng)700相似,但是在系統(tǒng)1000中,渲染邏輯被實(shí)現(xiàn)為低細(xì)節(jié)光線跟蹤邏輯1004,其以比由高細(xì)節(jié)光線跟蹤邏輯1010執(zhí)行的光線跟蹤更低的細(xì)節(jié)(例如,更少的光線)執(zhí)行光線跟蹤,并且在系統(tǒng)1000中,渲染邏輯塊1004和邏輯塊1010兩者都使用加速結(jié)構(gòu)??傮w上,可以存在一個(gè)或多個(gè)加速結(jié)構(gòu)1006(例如,邏輯塊1004和邏輯塊1010兩者都能夠使用相同的加速結(jié)構(gòu)),但是在圖10中示出的示例中,存在由各自的邏輯塊1004和邏輯塊1010表示的兩個(gè)加速結(jié)構(gòu)。兩個(gè)加速結(jié)構(gòu)1002L和1002H是表示場(chǎng)景幾何結(jié)構(gòu)的加速結(jié)構(gòu)但是以不同水平的細(xì)節(jié)的變本。系統(tǒng)1000中的剩余部分以與以上參考圖7中示出的系統(tǒng)700描述的相同的方式操作。因此,低細(xì)節(jié)光線跟蹤邏輯1004生成被提供到區(qū)域識(shí)別邏輯1008,并且被提供到更新邏輯1012的初始圖像。區(qū)域識(shí)別邏輯1008識(shí)別要使用高細(xì)節(jié)光線跟蹤邏輯1010被光線跟蹤的區(qū)域。所識(shí)別的區(qū)域的指示被提供到高細(xì)節(jié)光線跟蹤邏輯1010。高細(xì)節(jié)光線跟蹤邏輯1010以針對(duì)所識(shí)別的區(qū)域的高水平的細(xì)節(jié)來(lái)執(zhí)行光線跟蹤,例如使用比由低細(xì)節(jié)光線跟蹤邏輯1004使用的光線密度更高的光線密度和/或使用高細(xì)節(jié)加速結(jié)構(gòu)1006。來(lái)自高細(xì)節(jié)光線跟蹤邏輯1010的結(jié)果被提供到更新邏輯,其利用由邏輯1010執(zhí)行的高細(xì)節(jié)光線跟蹤的結(jié)果來(lái)更新初始圖像的所識(shí)別的區(qū)域。所更新的圖像任選地由時(shí)間規(guī)整邏輯1014進(jìn)行時(shí)間規(guī)整,并且之后被提供到顯示器1016以用于在其上顯示。與以上所描述的類(lèi)似,低細(xì)節(jié)光線跟蹤邏輯1004可以與高細(xì)節(jié)光線跟蹤邏輯1010異步地進(jìn)行操作。例如,低細(xì)節(jié)光線跟蹤邏輯1004可以以60Hz操作,同時(shí)區(qū)域識(shí)別邏輯1008、高細(xì)節(jié)光線跟蹤邏輯1010和更新邏輯1012可以以240Hz操作。加速結(jié)構(gòu)1002L和加速結(jié)構(gòu)1002H可以如以上所描述的被構(gòu)建。
在一些示例中,一些決策邏輯可以被包括在處理流水線的開(kāi)始處,處理流水線用于決策哪個(gè)功能(例如,柵格化或光線跟蹤渲染技術(shù)或兩者)用于圖像的哪些部分。在以上描述的示例中,單幅圖像包括要使用不同的渲染技術(shù)處理的不同的區(qū)域。然而,在一些示例中,決策邏輯可以例如基于圖像的內(nèi)容來(lái)決策其將最適合于針對(duì)整幅圖像使用單個(gè)渲染技術(shù)(例如,柵格化或光線跟蹤)。在這種情況下,單個(gè)渲染技術(shù)將基于來(lái)自決策邏輯的決策而被選擇性地用于渲染整幅圖像。
圖2、圖6b和圖7的處理系統(tǒng)被示出為包括許多功能塊。這僅僅是示意性的并且不旨在定義在這樣的實(shí)體的不同邏輯元件之間的嚴(yán)格劃分??梢砸匀魏芜m當(dāng)?shù)姆绞絹?lái)提供每個(gè)功能塊。應(yīng)當(dāng)理解,本文中描述為由處理系統(tǒng)形成的中間值不需要在任何時(shí)刻由處理系統(tǒng)物理地生成并且可以?xún)H僅表示方便描述由處理系統(tǒng)在其輸入部與輸出部之間執(zhí)行的處理的邏輯值。
本文中描述的處理系統(tǒng)可以以硬件被實(shí)現(xiàn)在集成電路上。一般地,以上描述的功能、方法、技術(shù)或組件中的任何能夠以軟件、固件、硬件(例如,固定邏輯電路)或其任何組合來(lái)實(shí)現(xiàn)。術(shù)語(yǔ)“模塊”、“功能”、“組件”、“元件”、“單元”、“塊”和“邏輯”可以在本文中用于大體表示軟件、固件、硬件或其任何組合。在軟件實(shí)現(xiàn)方式的情況下,模塊、功能、組件、元件、單元、塊或邏輯表示當(dāng)運(yùn)行在處理器上時(shí)執(zhí)行指定任務(wù)的程序代碼。本文中描述的算法和方法能夠由運(yùn)行使(一個(gè)或多個(gè))處理器執(zhí)行算法/方法的代碼的一個(gè)或多個(gè)處理器執(zhí)行。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的示例包括隨機(jī)訪問(wèn)存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、光盤(pán)、閃存、硬盤(pán)存儲(chǔ)器和可以使用磁性技術(shù)、光學(xué)技術(shù)和其他技術(shù)來(lái)存儲(chǔ)指令或其他數(shù)據(jù)并且能夠由機(jī)器訪問(wèn)的其他存儲(chǔ)器設(shè)備。
如本文中所使用的術(shù)語(yǔ)計(jì)算機(jī)程序代碼和計(jì)算機(jī)可讀指令是指針對(duì)處理器的任何種類(lèi)的可執(zhí)行代碼,包括以機(jī)器語(yǔ)言、解釋語(yǔ)言或腳本語(yǔ)言表示的代碼??蓤?zhí)行代碼包括二進(jìn)制代碼、機(jī)器代碼、字節(jié)代碼、定義集成電路的代碼(例如硬件描述語(yǔ)言或網(wǎng)表)、以及以諸如C、Java或OpenCL的編程語(yǔ)言表示的代碼。可執(zhí)行代碼可以例如為任何種類(lèi)的軟件、固件、腳本、模塊或庫(kù),其當(dāng)在虛擬機(jī)或其他軟件環(huán)境處被適當(dāng)?shù)剡\(yùn)行、處理、解釋、編譯、執(zhí)行時(shí)使可執(zhí)行代碼被支持在其處的計(jì)算機(jī)系統(tǒng)的處理器執(zhí)行由代碼指定的任務(wù)。
處理器、計(jì)算機(jī)或計(jì)算機(jī)系統(tǒng)可以是具有使得其能夠運(yùn)行指令的處理能力的任何種類(lèi)的設(shè)備、機(jī)器或?qū)S秒娐?、或其匯集或部分。處理器可以是任何種類(lèi)的通用或?qū)S锰幚砥鳎鏑PU、GPU、片上系統(tǒng)、狀態(tài)機(jī)、媒體處理器、專(zhuān)用集成電路(ASIC)、可編程邏輯陣列、現(xiàn)場(chǎng)可編程門(mén)陣列(FPGA)、等等。計(jì)算機(jī)或計(jì)算機(jī)系統(tǒng)可以包括一個(gè)或多個(gè)處理器。
還旨在包含定義如本文中描述的硬件的配置的軟件,例如如被用于設(shè)計(jì)集成電路或用于將可編程芯片配置為執(zhí)行期望的功能的HDL(硬件描述語(yǔ)言)軟件。即,可以提供一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其具有存儲(chǔ)在其上的形式為集成電路定義數(shù)據(jù)集的計(jì)算機(jī)可讀程序代碼,該集成電路定義數(shù)據(jù)集當(dāng)在集成電路制造系統(tǒng)中被處理時(shí)將系統(tǒng)配置為制造被配置為執(zhí)行本文中描述的方法中的任何的處理系統(tǒng),或者制造包括本文中描述的任何裝置的處理系統(tǒng)。集成電路定義數(shù)據(jù)集可以例如為集成電路描述。
集成電路定義數(shù)據(jù)集可以采用計(jì)算機(jī)代碼的形式,例如如網(wǎng)表、用于對(duì)可編程芯片進(jìn)行配置的代碼、如定義在任何層級(jí)處的集成電路的硬件描述語(yǔ)言,包括寄存器轉(zhuǎn)移層級(jí)(RTL)代碼,如高級(jí)電路表示,例如Verilog或VHDL,并且如低級(jí)電路表示,例如OASIS(RTM)和GDSII。邏輯上定義集成電路(例如,RTL)的高級(jí)表示可以在被配置用于在包括電路元件的定義和用于將那些元件進(jìn)行組合的規(guī)則的軟件環(huán)境的上下文中生成集成電路的制造定義的計(jì)算機(jī)系統(tǒng)處被處理以便生成如由表示定義的集成電路的制造定義。如關(guān)于在計(jì)算機(jī)系統(tǒng)處運(yùn)行以便定義機(jī)器的軟件常見(jiàn)的情況,可能需要一個(gè)或多個(gè)中間用戶步驟(例如,提供命令、變量、等等)以便使被配置用于生成集成電路的制造定義的計(jì)算機(jī)系統(tǒng)運(yùn)行定義集成電路的代碼以便生成該集成電路的制造定義。
現(xiàn)在將參考圖11描述在集成電路制造系統(tǒng)處處理集成電路定義數(shù)據(jù)集以便將系統(tǒng)配置為制造處理系統(tǒng)的示例。
圖11示出了包括布局處理系統(tǒng)1104和集成電路生成系統(tǒng)1106的集成電路(IC)制造系統(tǒng)1102的示例。IC制造系統(tǒng)1102被配置接收IC定義數(shù)據(jù)集(例如,定義如在本文中的示例中的任何中描述的處理系統(tǒng))、處理IC定義數(shù)據(jù)集并且根據(jù)IC定義數(shù)據(jù)集來(lái)生成IC(例如,其體現(xiàn)如在本文中的示例中的任何中描述的處理系統(tǒng))。對(duì)IC定義數(shù)據(jù)集的處理將IC制造系統(tǒng)1102配置為制造體現(xiàn)如在本文中的示例中的任何中描述的處理系統(tǒng)的集成電路。
布局處理系統(tǒng)1104被配置為接收并處理IC定義數(shù)據(jù)集以確定電路布局。根據(jù)IC定義數(shù)據(jù)集來(lái)確定電路布局的方法是本領(lǐng)域中已知的,并且例如可以涉及合成RTL代碼以確定要被生成的電路的門(mén)級(jí)表示,例如在邏輯組件方面(例如,NAND、NOR、AND、OR、MUX和FLIP-FLOP組件)。電路布局能夠通過(guò)確定針對(duì)邏輯部件的位置信息根據(jù)電路的門(mén)級(jí)表示來(lái)確定。這可以自動(dòng)地或者在用戶參與的情況下完成以便優(yōu)化電路布局。當(dāng)布局處理系統(tǒng)1104已經(jīng)確定電路布局時(shí),其可以將電路布局定義輸出到IC生成系統(tǒng)1106。電路布局定義可以例如為電路布局描述。
IC生成系統(tǒng)1106根據(jù)電路布局定義來(lái)生成IC,如本領(lǐng)域中已知的。例如,IC生成系統(tǒng)1106可以實(shí)現(xiàn)半導(dǎo)體器件制造工藝以生成IC,其可以涉及光刻和化學(xué)處理步驟的多個(gè)步驟序列,在其期間電子電路逐漸地被創(chuàng)建在由半導(dǎo)體材料制成的晶片上。電路布局定義可以以掩膜的形式,其能夠被使用在光刻工藝中以用于根據(jù)電路定義來(lái)生成IC。備選地,被提供到IC生成系統(tǒng)1106的電路布局定義可以以計(jì)算機(jī)可讀代碼的形式,IC生成系統(tǒng)1106能夠使用其來(lái)形成用于在生成IC中使用的適當(dāng)?shù)难谀ぁ?/p>
由IC制造系統(tǒng)1102執(zhí)行的不同工藝可以全部實(shí)現(xiàn)在一個(gè)位置中,例如通過(guò)一方來(lái)實(shí)現(xiàn)。備選地,IC制造系統(tǒng)1102可以是分布式系統(tǒng)使得工藝中的一些可以在不同位置處被執(zhí)行,并且可以通過(guò)不同方來(lái)執(zhí)行。例如,以下的階段中的一些:(i)合成表示IC定義數(shù)據(jù)集的RTL代碼以形成要被生成的電路的門(mén)級(jí)表示,(ii)基于門(mén)級(jí)表示來(lái)生成電路布局,(iii)根據(jù)電路布局來(lái)形成掩膜,并且(iv)使用掩膜來(lái)制造集成電路可以在不同位置中和/或通過(guò)不同方來(lái)執(zhí)行。
在其他示例中,在集成電路制造系統(tǒng)處對(duì)集成電路定義數(shù)據(jù)集的處理可以將系統(tǒng)配置為在沒(méi)有處理IC定義數(shù)據(jù)集的情況下制造SIMD處理模塊從而確定電路布局。例如,集成電路定義數(shù)據(jù)集可以定義可配置處理器(例如,F(xiàn)PGA)的配置,并且對(duì)該數(shù)據(jù)集的處理可以將IC制造系統(tǒng)配置為(例如,通過(guò)將配置數(shù)據(jù)加載到FPGA)生成具有該定義的配置的可配置處理器。
在一些示例中,集成電路制造定義數(shù)據(jù)集當(dāng)在集成電路制造系統(tǒng)中被處理時(shí)可以使集成電路制造系統(tǒng)生成如本文中描述的設(shè)備。例如,以上參考圖11描述的方法通過(guò)集成電路制造定義數(shù)據(jù)集對(duì)集成電路制造系統(tǒng)的配置可以使如本文中描述的設(shè)備被制造。
在一些示例中,集成電路定義數(shù)據(jù)集能夠包括運(yùn)行在由數(shù)據(jù)集定義的硬件上或與由數(shù)據(jù)集定義的硬件組合地運(yùn)行的軟件。在圖11中示出的示例中,IC生成系統(tǒng)還可以由集成電路定義數(shù)據(jù)集配置為在制造集成電路時(shí)將根據(jù)在集成電路定義數(shù)據(jù)集處定義的程序代碼的固件加載到該集成電路上或者以其他方式向集成電路提供程序代碼以用于與集成電路一起使用。
申請(qǐng)人在此在這樣的特征或組合能夠整體上鑒于本領(lǐng)域技術(shù)人員的公知常識(shí)基于本說(shuō)明書(shū)來(lái)實(shí)現(xiàn)的程度上孤立地公開(kāi)了本文中描述的每個(gè)個(gè)體特征和兩個(gè)或更多個(gè)這樣的特征的任何組合,無(wú)論這樣的特征或特征的組合是否解決本文中公開(kāi)的任何問(wèn)題。鑒于前面的描述,本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解容易理解,可以在本發(fā)明的范圍內(nèi)進(jìn)行各種修改。