用于產(chǎn)生和遍歷加速結(jié)構(gòu)的方法和設(shè)備的制造方法
【專利說明】用于產(chǎn)生和遍歷加速結(jié)構(gòu)的方法和設(shè)備
[0001]本申請要求于2014年9月30日提交到韓國知識產(chǎn)權(quán)局的第10-2014-0132015號韓國專利申請的權(quán)益,出于所有目的,所述韓國專利申請的全部公開通過引用包含于此。
技術(shù)領(lǐng)域
[0002]以下描述涉及圖像渲染的方法和設(shè)備以及產(chǎn)生和遍歷加速結(jié)構(gòu)的方法和設(shè)備。
【背景技術(shù)】
[0003]三維(3D)渲染是指從3D對象數(shù)據(jù)提取從相機(jī)的給定視點觀看的圖像的圖像處理技術(shù)。光線跟蹤是指跟蹤將被渲染的場景對象與光線(ray)相交的點以渲染圖像的處理。光線跟蹤方法涉及跟蹤從相機(jī)的視點沿穿過圖像的每個像素的光線入射的光的路徑來從3D對象數(shù)據(jù)產(chǎn)生圖像。由于通過使用光線跟蹤方法,在渲染的結(jié)果中可反映光的物理特性(諸如,反射、折射和透射),所以可獲得高質(zhì)量圖像。因此,光線跟蹤技術(shù)在真實場景被渲染的3D渲染領(lǐng)域(諸如,電影制作或動畫制作)中被廣泛使用。
[0004]關(guān)于光線跟蹤方法,通過重復(fù)以下處理來渲染圖像:找出對象與光線相交的交點并跟蹤從交點反射或折射的光線。光線跟蹤包括對加速結(jié)構(gòu)的遍歷和光線與圖元(primitive)之間的相交測試。執(zhí)行遍歷和相交測試需要大量的計算和寬的存儲器帶寬。
【發(fā)明內(nèi)容】
[0005]提供本
【發(fā)明內(nèi)容】
從而以簡化形式引入對以下在【具體實施方式】中進(jìn)一步描述的構(gòu)思的選擇。本
【發(fā)明內(nèi)容】
不意圖標(biāo)識要求保護(hù)的主題的關(guān)鍵特征或必要特征,也不意圖用作幫助確定要求保護(hù)的主題的范圍。
[0006]在一個總體方面,一種產(chǎn)生用于光線跟蹤的加速結(jié)構(gòu)的方法包括:將對象分配到包圍盒中;產(chǎn)生包括節(jié)點的加速結(jié)構(gòu),所述加速結(jié)構(gòu)指示包圍盒之間的包含關(guān)系;對節(jié)點中的重疊節(jié)點進(jìn)行標(biāo)記。
[0007]所述對節(jié)點中的重疊節(jié)點進(jìn)行標(biāo)記的步驟可包括:將標(biāo)志添加到每個節(jié)點??捎伤鰳?biāo)志指示關(guān)于每個節(jié)點的子節(jié)點是否彼此重疊的信息。
[0008]在對節(jié)點中的重疊的節(jié)點進(jìn)行標(biāo)記的過程中,可在與對應(yīng)于重疊包圍盒的節(jié)點最接近的上層節(jié)點中指示重疊信息。
[0009]所述方法的總體方面還可包括:從第一非暫時性存儲器接收關(guān)于對象的3D對象數(shù)據(jù);將加速結(jié)構(gòu)存儲在第二非暫時性存儲器中,其中,在所述加速結(jié)構(gòu)中,重疊節(jié)點被標(biāo)記。
[0010]在另一總體方面,一種對加速結(jié)構(gòu)進(jìn)行遍歷的方法可包括:(a)對加速結(jié)構(gòu)的葉節(jié)點進(jìn)行遍歷,所述葉節(jié)點與光線數(shù)據(jù)相交;(b)確定相交的葉節(jié)點的上層節(jié)點中的節(jié)點是否包括彼此重疊的子節(jié)點,響應(yīng)于確定相交的葉節(jié)點的上層節(jié)點中的節(jié)點不包括彼此重疊的子節(jié)點,終止遍歷,或者響應(yīng)于確定相交的葉節(jié)點的上層節(jié)點中的節(jié)點包括彼此重疊的子節(jié)點,對彼此重疊的子節(jié)點進(jìn)行遍歷。
[0011]在操作(b),可基于節(jié)點的重疊標(biāo)志進(jìn)行關(guān)于節(jié)點是否包括彼此重疊的子節(jié)點的確定。
[0012]操作(a)可包括:將沒有被遍歷的節(jié)點推入堆棧并將沒有被遍歷的節(jié)點存儲在堆棧中。
[0013]當(dāng)在操作(b)對彼此重疊的子節(jié)點進(jìn)行遍歷時,存儲在堆桟中的節(jié)點可被順序地推出以對被推出的節(jié)點中的彼此重疊的子節(jié)點進(jìn)行遍歷。
[0014]在操作(b),被推出的節(jié)點中的不包括重疊的子節(jié)點的節(jié)點可不被遍歷。
[0015]在另一總體方面,一種用于產(chǎn)生用于光線跟蹤的加速結(jié)構(gòu)的裝置包括:加速結(jié)構(gòu)產(chǎn)生器,被配置為將對象分配到包圍盒中并產(chǎn)生包括節(jié)點的加速結(jié)構(gòu),所述加速結(jié)構(gòu)指示包圍盒之間的包含關(guān)系;重疊標(biāo)記器,被配置為對節(jié)點中的重疊節(jié)點進(jìn)行標(biāo)記。
[0016]重疊標(biāo)記器可將標(biāo)志添加到每個節(jié)點并可存儲關(guān)于每個節(jié)點的子節(jié)點是否彼此重疊的標(biāo)志信息。
[0017]重疊標(biāo)記器可在與指示重疊的包圍盒的節(jié)點最接近的上層節(jié)點存儲重疊信息。
[0018]在另一總體方面,一種用于對加速結(jié)構(gòu)進(jìn)行遍歷的光線跟蹤核包括:遍歷器,被配置為對加速結(jié)構(gòu)的葉節(jié)點進(jìn)行遍歷,所述葉節(jié)點與光線數(shù)據(jù)相交。響應(yīng)于確定相交的葉節(jié)點的上層節(jié)點中的節(jié)點不包括彼此重疊的子節(jié)點,遍歷器可終止遍歷,響應(yīng)于確定相交的葉節(jié)點的上層節(jié)點中的節(jié)點包括彼此重疊的子節(jié)點,遍歷器可對彼此重疊的子節(jié)點進(jìn)行遍歷。遍歷器可包括用于存儲節(jié)點的堆棧。
[0019]遍歷器可基于節(jié)點的重疊標(biāo)志確定節(jié)點是否包括彼此重疊的子節(jié)點。
[0020]遍歷器可將沒有被遍歷的節(jié)點推入堆棧并可將沒有被遍歷的節(jié)點存儲在堆棧中。
[0021]當(dāng)遍歷器對彼此重疊的子節(jié)點進(jìn)行遍歷時,遍歷器可順序地推出存儲在堆桟中的節(jié)點以對被推出的節(jié)點中的彼此重疊的子節(jié)點進(jìn)行遍歷。
[0022]遍歷器可不對從堆棧推出的節(jié)點中的彼此不重疊的子節(jié)點進(jìn)行遍歷。
[0023]在另一總體方面,一種用于光線跟蹤的設(shè)備包括:處理器,被配置為產(chǎn)生包括節(jié)點的加速結(jié)構(gòu),并在加速結(jié)構(gòu)的一個或更多個節(jié)點指示根據(jù)對象的包圍體層次的重疊關(guān)系。
[0024]加速結(jié)構(gòu)可包括KD樹,處理器可通過將標(biāo)志添加到KD樹的一個或更多個內(nèi)節(jié)點來指示所述重疊關(guān)系。
[0025]所述設(shè)備的總體方面還可包括:非暫時性存儲器,被配置為存儲產(chǎn)生的加速結(jié)構(gòu)。
[0026]所述設(shè)備的總體方面還可包括:處理器核,被配置為通過對產(chǎn)生的加速結(jié)構(gòu)進(jìn)行遍歷來渲染圖像,其中,處理器核使用在一個或更多個節(jié)點指示的重疊關(guān)系以在遍歷期間跳過節(jié)點。
[0027]在另一總體方面,一種光線跟蹤核包括:處理器,被配置為通過對加速結(jié)構(gòu)進(jìn)行遍歷來渲染圖像,其中,在所述加速結(jié)構(gòu)中,根據(jù)對象的包圍體層次對重疊關(guān)系進(jìn)行標(biāo)記。
[0028]處理器可被配置為:基于在加速結(jié)構(gòu)中標(biāo)記的重疊關(guān)系,在對加速結(jié)構(gòu)進(jìn)行遍歷期間,跳過一個或更多個節(jié)點。
[0029]重疊關(guān)系可指示加速結(jié)構(gòu)的節(jié)點是否具有彼此重疊的子節(jié)點,可利用添加到具有子節(jié)點的節(jié)點的重疊標(biāo)志來對重疊關(guān)系進(jìn)行標(biāo)記。
[0030]其它特征和方面將從以下詳細(xì)描述、附圖和權(quán)利要求是清楚的。
【附圖說明】
[0031]圖1是示出光線跟蹤方法的示例的示意圖。
[0032]圖2是示出光線跟蹤核的示例的示意圖。
[0033]圖3是示出由光線跟蹤核執(zhí)行的光線跟蹤方法的示例的示意圖。
[0034]圖4是示出使光線跟蹤加速的方法的示例的示意圖。
[0035]圖5是示出根據(jù)圖4的使光線跟蹤加速的方法的另一示圖。
[0036]圖6是描述根據(jù)本公開的產(chǎn)生加速結(jié)構(gòu)的方法的示例的流程圖。
[0037]圖7是示出將對象劃分到包圍盒中的方法的示例的示圖。
[0038]圖8是示出根據(jù)本公開的加速結(jié)構(gòu)的示例的示圖。
[0039]圖9是示出根據(jù)本公開的對加速結(jié)構(gòu)進(jìn)行遍歷的方法的示例的流程圖。
[0040]圖10是示出遍歷操作的示例的示圖。
[0041]圖11是示出根據(jù)本公開的對加速結(jié)構(gòu)進(jìn)行遍歷的方法的示例的示圖。
[0042]圖12是示出遍歷處理的示例的示圖。
[0043]圖13是示出根據(jù)本公開的對加速結(jié)構(gòu)進(jìn)行遍歷的方法的示例的示圖。
[0044]圖14是示出根據(jù)本公開的加速結(jié)構(gòu)產(chǎn)生設(shè)備和光線跟蹤核的示例的示圖。
[0045]圖15是示出根據(jù)本公開的光線跟蹤芯片的示例的透視圖。
【具體實施方式】
[0046]提供以下詳細(xì)描述以幫助讀者獲得對這里描述的方法、設(shè)備和/或系統(tǒng)的全面理解。然而,這里描述的方法、設(shè)備和/或系統(tǒng)的各種改變、修改和等同物對于本領(lǐng)域的普通技術(shù)人員將是清楚的。例如,這里描述的操作的順序僅為示例,操作的順序不限于這里闡明的順序,而是如本領(lǐng)域普通技術(shù)人員將清楚的那樣,除了必需按特定順序發(fā)生的操作之外,操作的順序可被改變。此外,為了更加清楚和簡明,可省略本領(lǐng)域的普通技術(shù)人員公知的功能和結(jié)構(gòu)的描述。
[0047]貫穿附圖和【具體實施方式】,相同的參考標(biāo)號表示相同的元件。附圖可不按比例縮放,并且為了清楚、說明和方便,附圖中的元件的相對大小、比例和描繪可被夸大。
[0048]這里描述的特征可以以不同形式被實現(xiàn),并不被解釋為限于這里描述的示例。相反,提供這里描述的示例使得本公開將是徹底和全面的,并將向本領(lǐng)域普通技術(shù)人員傳達(dá)本公開的全部范圍。
[0049]這里使用的術(shù)語僅是為了描述特定實施例的目的,而不意圖限制本發(fā)明。如這里所使用的,除非上下文另外明確指出,否則單數(shù)形式也意圖包括復(fù)數(shù)形式。還將理解,當(dāng)在說明書中使用術(shù)語“包括”和/或“包含”時,其指明存在所陳述的特征、整體、步驟、操作、元件和/或組件,但不排除存在或添加一個或更多個其它特征、整體、步驟、操作、元件、組件和/或它們的組合。
[0050]除非另外限定,否則這里使用的全部術(shù)語(包括技術(shù)術(shù)語和科學(xué)術(shù)語)具有與本發(fā)明所屬領(lǐng)域的普通技術(shù)人員通常理解的含義相同的含義。還將理解,除非在本文中明確地如此限定,否則諸如在通用字典中定義的術(shù)語應(yīng)被解釋為具有與現(xiàn)有技術(shù)背景中的含義一致的含義,并且將不被解釋為理想化或過于形式化的意義。
[0051]如這里所使用的,術(shù)語“和/或”包括相關(guān)列出項的一個或更多個的任意和所有的組合。當(dāng)諸如“…中的至少一個”的表述位于元件的列表之后時,所述表述修飾元件的整個列表,而不修飾列表中的單個元件。
[0052]圖1是用于解釋光線跟蹤方法的示意圖。參照圖