根據(jù)示例性實施方式的設(shè)備和方法涉及生成射線并對其進行渲染,更具體地,涉及管理用于生成射線并對其進行渲染的存儲器。
背景技術(shù):
射線追蹤法是指對光沿射線到虛擬屏幕中每個像素的路線進行反向追蹤并在相機視點中生成圖像的方法。
射線追蹤法一般包括以下操作:射線生成、加速結(jié)構(gòu)遍歷、相交測試和著色。在通過加速結(jié)構(gòu)遍歷操作和相交測試操作獲得與相交有關(guān)的信息之后,通過著色操作來確定射線發(fā)生器中所生成的射線的最終色彩。根據(jù)相交的介質(zhì),從由射線發(fā)生器生成的初級射線衍生次級射線(諸如,反射射線、折射射線或陰影射線)。射線發(fā)生器存儲次級射線,以執(zhí)行加速結(jié)構(gòu)遍歷操作和與次級射線有關(guān)的接下來的操作。
然而,對于多種光源和對象,用于存儲射線的空間可能時常不足。在這種情況下,渲染系統(tǒng)的性能可能由于存儲器相對于整個渲染系統(tǒng)出現(xiàn)停頓而退化。
因此,需要一種減小存儲器負(fù)荷以提高渲染系統(tǒng)性能的方法。
技術(shù)實現(xiàn)要素:
技術(shù)問題
示例性實施方式至少解決以上問題和/或缺點以及上文未描述的其他缺點。另外,不要求示例性實施方式克服上述缺點,示例性實施方式可能并未克服上述缺點中的任意缺點。
一個或多個示例性實施方式提供一種渲染系統(tǒng)和一種用于生成射線的方法,所述渲染系統(tǒng)用于通過控制待存儲在存儲器中的與射線有關(guān)的信息的量來有效地使用存儲器以及用于提高渲染系統(tǒng)的性能。
問題的解決方案
根據(jù)示例性實施方式的方面,提供用于執(zhí)行渲染系統(tǒng)的渲染過程的方法,所述方法包括:生成初級射線以對圖像進行渲染;確定初級射線是否可生成至少一種次級射線;作為確定初級射線可生成至少一種次級射線的響應(yīng),將與初級射線有關(guān)的信息存儲在存儲器中;以及基于存儲在存儲器中的與初級射線有關(guān)的信息生成至少一種次級射線。
確定初級射線是否可生成至少一種次級射線可包括:作為初級射線與對象相交且不是陰影射線的響應(yīng),確定初級射線可以生成至少一種次級射線。
該方法還可包括:作為確定初級射線不能生成至少一種次級射線的響應(yīng),從存儲器刪除與初級射線有關(guān)的信息。
該方法還可包括:作為確定至少一種次級射線生成陰影射線而不生成折射射線或反射射線的響應(yīng),從存儲器刪除與初級射線有關(guān)的信息。
該方法還可包括:確定存儲器是否包括與射線有關(guān)的任何信息;以及作為確定存儲器包括多條信息的響應(yīng),基于多條信息之中最近被存儲在存儲器中的與射線有關(guān)的信息生成次級射線。
該方法還可包括:作為初級射線是陰影射線的響應(yīng),將初級射線的渲染結(jié)果作為色彩值存儲在幀緩沖器中。
該方法還可包括:作為存儲器不包括與射線有關(guān)的任何信息的響應(yīng),終止渲染過程。
與初級射線有關(guān)的信息可包括與初級射線的方向向量有關(guān)的信息。
根據(jù)示例性實施方式的另一方面,提供一種渲染系統(tǒng),其包括射線發(fā)生器、渲染器、存儲器和控制器,其中,射線發(fā)生器配置成生成初級射線;渲染器配置成基于所生成的初級射線來對圖像進行渲染;以及控制器配置成:確定初級射線是否可以生成至少一種次級射線;作為確定初級射線可以生成至少一種次級射線的響應(yīng),將與初級射線有關(guān)的信息存儲在存儲器中;以及基于存儲在存儲器中的與初級射線有關(guān)的存儲信息,生成至少一種次級射線。
控制器還可配置成:作為初級射線與對象相交且不是陰影射線的響應(yīng),確定初級射線可生成次級射線。
控制器還可配置成:作為確定至少一種次級射線不生成次級射線的響應(yīng),從存儲器中刪除與初級射線有關(guān)的信息。
控制器還可配置成:確定存儲器是否包括與射線有關(guān)的任何信息;以及作為確定存儲器包括多條信息的響應(yīng),基于所述多條信息當(dāng)中最近被存儲在存儲器中的與射線有關(guān)的信息來生成次級射線。
控制器還可被配置成:作為初級射線是陰影射線的響應(yīng),將初級射線的渲染結(jié)果存儲在幀緩沖器中。
控制器還可配置成:確定存儲器是否包括與射線有關(guān)的任何信息;以及作為存儲器不包括與射線有關(guān)的任何信息的響應(yīng),終止渲染系統(tǒng)的渲染過程。
與初級射線有關(guān)的信息可包括與初級射線的方向向量有關(guān)的信息。
根據(jù)示例性實施方式的另一方面,提供執(zhí)行渲染系統(tǒng)的渲染過程的方法,其包括:生成初級射線以對圖像進行渲染;作為初級射線能夠生成可衍生的次級射線的響應(yīng),存儲與初級射線有關(guān)的信息;以及作為初級射線不能生成額外可衍生的次級射線的響應(yīng),刪除與初級射線有關(guān)的信息。
可衍生的次級射線可對應(yīng)于與對象相交的折射射線或反射射線。
可衍生的次級射線可以是初級射線所生成的多種次級射線中的一種,且存儲與初級射線有關(guān)的信息可包括:將可衍生的次級射線存儲在存儲器的主堆棧中;以及將除可衍生的次級射線和陰影射線之外的多種次級射線存儲在存儲器的次級堆棧中。
可衍生的次級射線是從初級射線衍生的折射射線或反射射線,且存儲與初級射線有關(guān)的信息包括:將與折射射線有關(guān)的信息或與反射射線有關(guān)的信息存儲在存儲器的主堆棧中;作為反射射線被存儲在主堆棧中的響應(yīng),將與折射射線有關(guān)的信息存儲在存儲器的次級堆棧中;以及作為折射射線被存儲在主堆棧中的響應(yīng),將與反射射線有關(guān)的信息存儲在次級堆棧中。
該方法還可包括:將存儲在次級堆棧中的與折射射線有關(guān)的信息或與反射射線有關(guān)的信息加載到主堆棧中;以及確定與所加載的信息對應(yīng)的折射射線或反射射線是否生成次級射線。
根據(jù)示例性實施方式的另一方面,提供存儲程序的非暫時性計算機可讀存儲介質(zhì),所述程序可由計算機運行以執(zhí)行進行渲染系統(tǒng)的渲染過程的方法。
發(fā)明的有益效果
根據(jù)各示例性實施方式,用戶能夠使用這樣的渲染系統(tǒng),所述渲染系統(tǒng)通過控制待存儲在存儲器中的與射線有關(guān)的信息的量來有效地使用存儲器,從而提高渲染系統(tǒng)的性能。
附圖說明
通過參考附圖描述某些示例性實施方式,以上和/或其他方面將更加顯而易見,在附圖中:
圖1是示出根據(jù)示例性實施方式的渲染系統(tǒng)的結(jié)構(gòu)的框圖;
圖2是根據(jù)示例性實施方式用來描述用于生成次級射線的配置的視圖;
圖3和圖4是示出根據(jù)示例性實施方式生成次級射線的順序和根據(jù)該順序來存儲次級射線的方法的視圖;
圖5是根據(jù)示例性實施方式用來描述生成次級射線的順序的流程圖;
圖6是根據(jù)示例性實施方式用來描述生成遞歸式次級射線的順序的流程圖;
圖7和圖8是示出根據(jù)示例性實施方式的渲染系統(tǒng)的配置的視圖;以及
圖9是根據(jù)示例性實施方式用來描述用于生成射線的順序的流程圖。
具體實施方式
下文參考附圖更詳細(xì)地描述某些示例性實施方式。
在以下說明中,即使是在不同附圖中,相同的附圖參考標(biāo)記也用于相同的元件。提供說明中所定義的事項(諸如,詳細(xì)的構(gòu)造和元件)以幫助全面理解示例性實施方式。然而,可以在沒有那些具體定義的事項的情況下實踐示例性實施方式。另外,沒有詳細(xì)描述眾所周知的功能或構(gòu)造,因為其會以不必要的細(xì)節(jié)混淆本發(fā)明。
圖1是示出根據(jù)示例性實施方式的渲染系統(tǒng)100的結(jié)構(gòu)的框圖。如圖1中所示出,渲染系統(tǒng)100包括射線發(fā)生器110、參考存儲器120、渲染器130、控制器140和幀緩沖器150。
射線發(fā)生器110生成射線。射線發(fā)生器110可基于射線生成信息來生成至少一種射線。也就是說,射線發(fā)生器110可基于所存儲的射線生成信息來生成初級射線和生成次級射線。下文將描述射線生成信息。另外,次級射線可包括陰影射線、折射射線和反射射線。就生成次級射線而言,射線發(fā)生器110可首先生成陰影射線。在對陰影射線進行渲染之后,射線發(fā)生器110可生成折射射線和反射射線。
參考存儲器120存儲與射線有關(guān)的信息。也就是說,參考存儲器120可存儲生成次級射線所需的信息。參考存儲器120可以是堆?;蜿犃?,但這僅是示例,且參考存儲器的類型不受限制。
存儲在參考存儲器120中的與射線有關(guān)的信息可包括與射線的方向向量有關(guān)的信息。特別地,參考存儲器120可包括與三角指數(shù)、射線深度、射線從其衍生出的方向、射線的位置以及對象相交的位置有關(guān)的信息。
渲染器130對經(jīng)由射線發(fā)生器110生成的射線進行渲染。也就是說,在對于執(zhí)行渲染操作來說必要的組件當(dāng)中,渲染器130可包括除射線發(fā)生器110以外的所有組件。
例如,渲染器130可包括用于遍歷射線追蹤法中所使用的加速結(jié)構(gòu)、測試相交以及執(zhí)行著色操作的組件。
控制器140控制渲染系統(tǒng)100的整體操作。尤其,控制器140可確定是否由所生成的射線來生成次級射線。另外,控制器140可進行控制以根據(jù)確定結(jié)果將與射線有關(guān)的信息存儲在參考存儲器120中。
也就是說,作為所生成的射線不是陰影射線并與對象相交的響應(yīng),控制器140可確定所述射線是可生成次級射線的射線。陰影射線不生成次級射線。除非某一射線與對象相交,否則即使所述射線不是陰影射線,其仍不生成次級射線。因此,作為所生成的射線不是陰影射線并與對象相交的響應(yīng),控制器140可確定該射線可生成次級射線。
作為確定所生成的射線是可生成次級射線的射線的響應(yīng),控制器140可進行控制以將與所生成的射線有關(guān)的信息存儲在參考存儲器120中。另外,控制器140可控制射線發(fā)生器110以使其基于存儲在參考存儲器120中的與射線有關(guān)的信息來生成次級射線。
作為所生成的射線是陰影射線的響應(yīng),控制器140可進行控制以將基于所生成的射線的渲染結(jié)果的色彩值記錄在幀緩沖器中。也就是說,陰影射線不生成次級射線,因此,控制器140可將基于陰影射線的渲染結(jié)果的色彩值存儲在幀緩沖器中以終止對于射線的渲染操作。另外,控制器140可確定參考存儲器120是否包括與射線有關(guān)的信息。作為確定參考存儲器120不包括該信息的響應(yīng),控制器140可終止渲染操作。
作為由射線順序地生成至少一種次級射線且所述至少一種所生成的次級射線不再生成次級射線的響應(yīng),控制器140可刪除存儲在參考存儲器120中的與該射線有關(guān)的信息。也就是說,作為確定不再由射線生成次級射線的響應(yīng),控制器140可從參考存儲器120刪除與該射線有關(guān)的信息。
另外,作為確定參考存儲器120包括在從參考存儲器120中刪除與第一射線有關(guān)的信息之后的信息的響應(yīng),控制器140可基于最近被存儲在參考存儲器120中的信息來生成另一次級射線。
也就是說,作為與射線有關(guān)的信息被順序地存儲在參考存儲器120中的響應(yīng),控制器140可基于最近被存儲的信息來確定是否可生成次級射線。作為確定最近被存儲的射線可生成次級射線的響應(yīng),控制器140可基于與所確定的射線有關(guān)的信息來生成另一次級射線。
下文將描述用于將與射線有關(guān)的信息存儲在參考存儲器120中以及從參考存儲器120中刪除該信息的方法。
通過上述渲染系統(tǒng)100,用戶能夠使用這樣的渲染系統(tǒng),所述渲染系統(tǒng)有效地管理存儲器并使用較少量的內(nèi)存來執(zhí)行渲染操作。
下文中,將參考圖2到圖4來詳細(xì)描述用于將與射線有關(guān)的信息存儲在參考存儲器120中并通過渲染系統(tǒng)100來執(zhí)行渲染操作的方法。
圖2是根據(jù)示例性實施方式用來描述用于生成次級射線的配置的視圖。也就是說,初級射線200可生成陰影射線(shdn)210、折射射線(refr)220和反射射線(refl)230中的至少一種。尤其,初級射線200可首先生成陰影射線210,然后生成折射射線220或反射射線230。
陰影射線210不再生成次級射線。然而,折射射線220和反射射線230可生成至少一種次級射線。例如,折射射線220可生成作為次級射線的陰影射線240、折射射線250和反射射線260。另外,反射射線230可生成作為次級射線的陰影射線270、折射射線280和反射射線290。
另外,作為折射射線250和280以及反射射線260和290的次級射線,可由折射射線250和280以及反射射線260和290生成陰影射線、折射射線和反射射線中的至少一種。
其結(jié)果是,如圖2中所示,次級射線的數(shù)量迅速增加。因此,作為與所生成的次級射線有關(guān)的信息被順序地存儲在存儲器(諸如,堆棧或隊列)中的響應(yīng),存儲器的容量可能不足,從而造成一部分射線損失或渲染系統(tǒng)中出現(xiàn)凝集。另外,所生成的射線的數(shù)量并不是固定的,因此渲染器130的工作負(fù)荷可變化相當(dāng)大。
圖3示出根據(jù)示例性實施方式用于生成和存儲次級射線的方法。
作為初級射線310的次級射線,由初級射線310生成第一陰影射線320、第一折射射線330和第一反射射線410。另外,作為第一折射射線330的次級射線,由第一折射射線330生成第二陰影射線340、第二折射射線350和第二反射射線370。作為第二折射射線370的次級射線,由第二折射射線370生成第三陰影射線360。由第二反射射線370生成第四陰影射線380和第四折射射線390。另外,由第四折射射線390生成第五陰影射線400。
雖然圖3僅將最初生成的射線310描述為初級射線,但是可將生成次級射線的任何射線稱為初級射線(相對于其次級射線來說)。例如,就第一折射射線330與第二折射射線350之間的關(guān)系來說,可將第一折射射線330稱為初級射線。
圖4是示出參考存儲器120根據(jù)射線生成順序的存儲狀態(tài)的視圖。作為由射線發(fā)生器110生成初級射線310的響應(yīng),控制器140可確定所生成的初級射線310是否為陰影射線。如果初級射線310不是陰影射線,則控制器140可確定初級射線310是否與對象相交。
作為確定所生成的初級射線310不是陰影射線并與對象相交的響應(yīng),可從初級射線310生成次級射線。相應(yīng)地,控制器140可控制參考存儲器120以使其存儲與初級射線310有關(guān)的信息。
尤其,與射線有關(guān)的信息可包括與射線的方向向量有關(guān)的信息。
射線發(fā)生器110可基于存儲在參考存儲器120中的與初級射線310有關(guān)的信息來生成次級射線。在次級射線當(dāng)中,可首先生成陰影射線。也就是說,射線發(fā)生器110可首先生成作為次級射線的陰影射線,然后生成折射射線或反射射線。
因此,響應(yīng)于生成作為次級射線的第一陰影射線320,控制器140可進行控制使得不將與第一陰影射線320有關(guān)的信息存儲在參考存儲器120中,因為第一陰影射線320不再生成次級射線。其結(jié)果是,與第一陰影射線320被生成之前的參考存儲器510相比,第一陰影射線320被生成之后的參考存儲器120可不改變。
另外,控制器140可將基于第一陰影射線320的渲染結(jié)果的色彩值存儲在幀緩沖器150中。
另外,控制器140可確定參考存儲器120是否包括與射線有關(guān)的信息。如果參考存儲器120包括與初級射線310有關(guān)的信息,則控制器140可控制射線發(fā)生器110使其基于與初級射線310有關(guān)的信息來生成次級射線。
響應(yīng)于生成作為次級射線的第一折射射線(1st FL)330,控制器140可確定所生成的次級射線是否為陰影射線。由于第一折射射線330不是陰影射線,因此控制器140可確定第一折射射線330是否與對象相交。作為確定第一折射射線330與對象相交的響應(yīng),可由第一折射射線330生成更多的次級射線,因此控制器140可將與第一折射射線330有關(guān)的信息存儲在參考存儲器120中。
作為由射線發(fā)生器110基于存儲在參考存儲器120中的與第一折射射線330有關(guān)的信息生成作為次級射線的第二陰影射線340的響應(yīng),不再由第二陰影射線340生成次級射線,因此控制器140可不存儲與所生成的第二陰影射線340有關(guān)的信息。相應(yīng)地,與參考存儲器120在時間T530(在生成第二陰影射線340之前的時間)的狀態(tài)相比,參考存儲器在時間T540(當(dāng)生成作為次級射線的第二陰影射線340時)的狀態(tài)可不改變。
根據(jù)示例性實施方式,參考存儲器120還可包括次級堆棧。在該情況下,可將參考存儲器120的剩余區(qū)域(次級堆棧除外)稱為主堆棧。可替代地,可在與參考存儲器120分離的存儲裝置中實施次級堆棧??刂破?40可在時間T530將第一反射射線410存儲在次級堆棧中。當(dāng)控制器140在T600完成處理從第一折射射線330衍生的所有次級射線時,控制器140可引用次級堆棧以確定控制器140在T600之后將處理什么數(shù)據(jù)。
控制器140可進行控制以將基于對第二陰影射線340的渲染操作的色彩值存儲在幀緩沖器150中。
另外,控制器140可確定參考存儲器120是否包括與射線有關(guān)的信息。作為確定參考存儲器120包括與射線有關(guān)的信息的響應(yīng),控制器140可控制射線發(fā)生器110以使其生成次級射線。
然而,不存儲與第二陰影射線340有關(guān)的信息。于是,參考存儲器120中最近被存儲的信息是與第一折射射線330有關(guān)的信息。相應(yīng)地,控制器140可進行控制以基于與第一折射射線330有關(guān)的信息來生成次級射線。
響應(yīng)于由射線發(fā)生器110基于存儲在參考存儲器120中的與第一折射射線330有關(guān)的信息生成作為次級射線的第二折射射線350,控制器140可確定所生成的第二折射射線350是否為陰影射線。如果第二折射射線350不是陰影射線,則控制器140可確定第二折射射線350是否與對象相交。作為第二折射射線350與對象相交的響應(yīng),可由第二折射射線350生成更多的次級射線。相應(yīng)地,控制器140可在時間T550將與第二折射射線350有關(guān)的信息存儲在參考存儲器120中。
此外,控制器140可在時間T550將次級反射射線(2nd FL)370存儲在次級堆棧中,使得第二反射射線370堆疊在第一反射射線410上。當(dāng)控制器140在T560完成對從第二折射射線350衍生的所有次級射線的處理時,控制器140可引用次級堆棧以確定控制器140在T570將處理什么數(shù)據(jù)。
響應(yīng)于由射線發(fā)生器110基于存儲在參考存儲器120中的與第二折射射線350有關(guān)的信息生成作為次級射線的第三陰影射線360,控制器140可將基于第三陰影射線360的渲染結(jié)果的色彩值存儲在幀緩沖器150中。所存儲的第二折射射線350不再需要處理,因此,控制器140可在時間T560刪除與第二折射射線350有關(guān)的存儲信息。因此,參考存儲器120可在時間T560僅存儲與第一折射射線330和初級射線310有關(guān)的信息。
控制器140可確定參考存儲器120是否包括與射線有關(guān)的信息。作為確定參考存儲器120包括與射線有關(guān)的信息的響應(yīng),控制器140可控制射線發(fā)生器110以生成次級射線。
由于與第二折射射線350有關(guān)的信息被刪除,所以在時間T560存儲在參考存儲器120中的最新信息是與第一折射射線330有關(guān)的信息。因此,控制器140可進行控制以基于與第一折射射線330有關(guān)的信息來生成次級射線。
射線發(fā)生器110可基于存儲在參考存儲器120中的與第一折射射線330有關(guān)的信息來生成次級射線。尤其,射線發(fā)生器110基于存儲在參考存儲器120中的與第一折射射線330有關(guān)的信息來生成作為次級射線的第二陰影射線340。因此,射線發(fā)生器110可生成作為次級射線的反射射線或折射射線。
相應(yīng)地,響應(yīng)于由射線發(fā)生器110生成作為次級射線的第二反射射線370,控制器140可確定所生成的第二反射射線370是否為陰影射線。如果第二反射射線370不是陰影射線,則控制器140可確定第二反射射線370是否與對象相交。
作為確定第二反射射線370與對象相交的響應(yīng),可由第二反射射線370生成更多的次級射線。因此,控制器140可在時間T570將與第二反射射線370有關(guān)的信息存儲在參考存儲器120中。
在時間T570,控制器140可引用次級堆棧以在次級折射射線350與次級反射射線370之間確定哪一者尚未處理。如圖4中所示,次級堆棧指示將在時間T570處理次級反射射線370,控制器140可從次級堆棧加載次級反射射線370,并在時間T570將其存儲在參考存儲器120的主堆棧中。
作為確定第二反射射線370是折射射線或反射射線而非陰影射線且折射射線或反射射線不與對象相交的響應(yīng),控制器140可不將與射線有關(guān)的信息存儲在參考存儲器120中。
另外,控制器140可控制射線發(fā)生器110以使其基于存儲在參考存儲器120中的與第二反射射線370有關(guān)的信息來生成次級射線。
射線發(fā)生器110可通過第二反射射線370首先生成作為次級射線的第四陰影射線380??刂破?40可確定所生成的射線是否為陰影射線。另外,由于第四陰影射線380不再生成次級射線,因此在時間T580控制器140可不存儲與第四陰影射線380有關(guān)的信息。相應(yīng)地,與參考存儲器120在時間T570(在生成第四陰影射線380之前的時間)的狀態(tài)相比,參考存儲器120在時間T580(生成作為次級射線的第四陰影射線380時)的狀態(tài)并未改變。
控制器140可確定參考存儲器120是否包括與射線有關(guān)的任何信息。作為確定參考存儲器120包括該信息的響應(yīng),控制器140可控制射線發(fā)生器110以使其生成次級射線。
另外,作為確定出由射線發(fā)生器110基于參考存儲器120中所存儲的與第二反射射線370有關(guān)的信息生成第四折射射線390且第二反射射線370不再生成次級射線的響應(yīng),控制器140可控制參考存儲器120以刪除與第二反射射線370有關(guān)的信息。
因此,作為對于第四折射射線390的渲染操作的結(jié)果,參考存儲器120可通過控制控制器140來在時間T590刪除與第二反射射線370有關(guān)的信息。
另外,控制器140可確定第四折射射線390是否為陰影射線。如果第四折射射線390不是陰影射線,則控制器140可確定第四折射射線390是否與對象相交。作為確定第四折射射線390與對象相交的響應(yīng),射線發(fā)生器110可通過第四折射射線390生成次級射線。射線發(fā)生器110可首先生成作為次級射線的陰影射線。相應(yīng)地,響應(yīng)于作為次級射線的第五陰影射線500被生成,控制器140可進行控制以將根據(jù)第五陰影射線500的渲染結(jié)果的色彩值存儲在幀緩沖器150中。另外,由于第一折射射線330不再生成次級射線,因此控制器140可控制參考存儲器120以在時間T600刪除與第一折射射線330有關(guān)的信息。
另外,控制器140可確定參考存儲器120是否包括與射線有關(guān)的任何信息。如圖4中所示,初級射線310在時間T600存儲于參考存儲器120中,因此,射線發(fā)生器110可基于與所存儲的初級射線310有關(guān)的信息來生成次級射線。
因此,控制器140可基于存儲在參考存儲器120中的與初級射線310有關(guān)的信息來生成作為次級射線的第一反射射線410。例如,控制器140可在時間T600之后從次級堆棧加載第一反射射線410,并將它存儲在參考存儲器120的主堆棧中。由此,控制器140可在第一折射射線330與第一反射射線410之間確定尚未處理第一反射射線140,并在時間T600之后著手第一反射射線410。另外,渲染系統(tǒng)100可由第一反射射線通過上述過程來執(zhí)行對于次級射線的渲染操作。
作為對全部次級射線執(zhí)行渲染操作且參考存儲器120不包括與射線有關(guān)的任何其他信息的響應(yīng),渲染系統(tǒng)100可終止渲染操作。
在參考圖4所描述的以上示例性實施方式中,控制器140確定出所述過程使用次級堆棧,但這僅是示例。控制器140可使用各種方法來確定所述過程。例如,當(dāng)從存儲器120刪除與第一折射射線330有關(guān)的信息時,控制器140可單獨地記錄與存儲器120中的所述刪除有關(guān)的信息,并參考該信息在沒有任何刪除記錄的情況下通過著手所述過程來確定下一過程。在這種情況下,不需要單獨的次級堆棧。
圖5是根據(jù)示例性實施方式用來描述生成次級射線的順序的流程圖。渲染系統(tǒng)100生成第一射線(操作S610),并對所生成的第一射線進行渲染(操作S620)。
作為確定出第一射線能夠生成次級射線(操作S630-是)的響應(yīng),渲染系統(tǒng)100將與第一射線有關(guān)的信息存儲在參考存儲器120中(操作S640)。尤其,如果所生成的射線不是陰影射線并與對象相交,則渲染系統(tǒng)100可確定所述射線可生成次級射線。另外,作為確定所生成的射線能夠生成次級射線的響應(yīng),渲染系統(tǒng)100可將與所生成的射線有關(guān)的信息存儲在參考存儲器120中。
渲染系統(tǒng)100基于與第一射線有關(guān)的存儲信息來生成第二射線并對所生成的第二射線進行渲染(操作S650)。與射線有關(guān)的信息可包括射線的方向向量。相應(yīng)地,渲染系統(tǒng)100可基于與所存儲的射線的方向向量有關(guān)的信息來生成第二射線,所述第二射線是第一射線的次級射線。尤其,渲染系統(tǒng)100可首先生成次級射線中的陰影射線。在生成陰影射線之后,渲染系統(tǒng)100可生成作為次級射線的折射射線或反射射線。
圖6是根據(jù)示例性實施方式用來具體描述生成遞歸式次級射線的遞歸順序的流程圖。
渲染系統(tǒng)100生成射線(操作S700),并對所生成的射線進行渲染(操作S710)。另外,渲染系統(tǒng)100確定所生成的射線是否為陰影射線(操作S720)。
作為確定射線不與對象相交的響應(yīng),即使所述射線不是陰影射線,仍不生成次級射線。相應(yīng)地,渲染系統(tǒng)100確定射線是否與對象相交(操作S730)。
作為確定射線與對象相交(操作S730-是)的響應(yīng),渲染系統(tǒng)100將與射線有關(guān)的信息存儲在參考存儲器120中以生成射線的次級射線。另外,渲染系統(tǒng)100可基于存儲在參考存儲器120中的與射線有關(guān)的信息來生成射線。在這種情況下,渲染系統(tǒng)100可首先生成次級射線中的陰影射線。例如,響應(yīng)于渲染系統(tǒng)100生成作為次級射線的陰影射線和折射射線,渲染系統(tǒng)100可首先生成陰影射線。
作為確定所生成的射線是陰影射線(操作S720-是)的響應(yīng),渲染系統(tǒng)100將渲染結(jié)果存儲在幀緩沖器150中(操作S750)。另外,渲染系統(tǒng)100確定參考存儲器120是否為空的(操作S760)。
另外,如果確定射線不與對象相交且不是陰影射線,則渲染系統(tǒng)100可確定參考存儲器120是否為空的(操作S760)。
另外,作為確定射線不再生成次級射線的響應(yīng),渲染系統(tǒng)100可從參考存儲器120中刪除與射線有關(guān)的信息。
相應(yīng)地,渲染系統(tǒng)100可將由射線發(fā)生器110所生成的射線的量控制為恒定。
圖7示出渲染系統(tǒng)1000,其包括使用堆棧結(jié)構(gòu)或基于堆棧的存儲器分布的參考存儲器830。然而,這僅是示例,且可使用各種類型的存儲器結(jié)構(gòu)或存儲器分配方法(包括隊列)。
渲染系統(tǒng)1000可通過如圖7所出的射線發(fā)生器800來生成射線。另外,就所生成的射線來說,渲染系統(tǒng)1000可遍歷加速結(jié)構(gòu)、測試相交和通過渲染器810來執(zhí)行渲染操作,用于執(zhí)行著色的組件包括在所述渲染器中。
參考存儲器管理器(Ref.Mem magager)820可確定是否可從所生成的射線來生成次級射線。作為確定所生成的射線可生成次級射線的響應(yīng),參考存儲器管理器820可將與所生成的射線有關(guān)的信息存儲在參考存儲器830中。
如果射線不是陰影射線并與對象相交,則參考存儲器管理器820可確定該射線可生成次級射線。
作為執(zhí)行對陰影射線的渲染操作的響應(yīng),渲染系統(tǒng)1000可將對于陰影射線的渲染結(jié)果存儲在幀緩沖器150中。也就是說,渲染系統(tǒng)1000可將關(guān)于陰影射線的色彩值存儲在幀緩沖器150中。
作為確定不再從射線生成將對其執(zhí)行渲染操作的次級射線的響應(yīng),參考存儲器管理器820可控制參考存儲器830以使其刪除與射線有關(guān)的信息。
圖8是示出根據(jù)另一個示例性實施方式的渲染系統(tǒng)2000的視圖。圖8的渲染系統(tǒng)2000也可通過射線發(fā)生器9000來生成射線。另外,就所生成的射線來說,渲染系統(tǒng)2000可遍歷加速結(jié)構(gòu)、測試相交和通過渲染器910來執(zhí)行渲染操作,其中該渲染器中包括用于執(zhí)行著色的組件。
另外,渲染系統(tǒng)2000可通過射線參考管理器920來管理與射線有關(guān)的信息。尤其,參考數(shù)據(jù)計算器930可確定所生成的射線是否可生成次級射線。作為確定所生成的射線可生成次級射線的響應(yīng),參考數(shù)據(jù)計算器930可計算與所生成的射線有關(guān)的信息,并將計算出的信息存儲在參考存儲器940中。如果所生成的射線不是陰影射線并與對象相交,則參考數(shù)據(jù)計算器930可確定所述射線可生成次級射線,并計算與所生成的射線有關(guān)的信息。例如,就所生成的射線來說,參考數(shù)據(jù)計算器930可計算三角指數(shù)、射線深度、得到射線的方向、射線的位置以及射線與對象相交的位置。
另外,作為對陰影射線執(zhí)行渲染操作的響應(yīng),渲染系統(tǒng)2000可將陰影射線的渲染結(jié)果存儲在幀緩沖器150中。也就是說,渲染系統(tǒng)2000可將關(guān)于陰影射線的色彩值存儲在幀緩沖器150中。
作為確定經(jīng)渲染的射線不再生成次級射線的響應(yīng),消除器950可控制參考存儲器940刪除與射線有關(guān)的信息。也就是說,消除器950可拖出存儲在參考存儲器940中的與射線有關(guān)的信息,并刪除該信息。例如,響應(yīng)于被渲染的射線僅生成作為次級射線的陰影射線,消除器950可刪除存儲在參考存儲器940中的與射線有關(guān)的信息。
相應(yīng)地,通過如圖8所示的渲染系統(tǒng)2000,用戶能夠使用這樣的渲染系統(tǒng)2000,所述渲染系統(tǒng)2000有效地管理存儲器并利用參考存儲器940來執(zhí)行渲染操作。
圖9是根據(jù)示例性實施方式用來描述生成渲染系統(tǒng)的射線的流程圖。渲染系統(tǒng)100生成射線(操作S1000),并對所生成的射線進行渲染(操作S1010)。另外,渲染系統(tǒng)100可將根據(jù)對所生成的射線的渲染結(jié)果的色彩值存儲在幀緩沖器150中,以完成對射線的渲染操作。
渲染系統(tǒng)100確定所生成的射線是否為陰影射線(操作S1020)。作為確定所生成的射線不是陰影射線的響應(yīng)(操作S1020-否),渲染系統(tǒng)100可確定所生成的射線是否與對象相交(操作S1040)。
作為確定所生成的射線與對象相交(操作S1040-是)的響應(yīng),渲染系統(tǒng)100計算與所生成的射線有關(guān)的信息(操作S1050)。另外,渲染系統(tǒng)100將計算出的信息存儲在參考存儲器中(操作S1060)。如果所生成的射線不是陰影射線并與對象相交,則可生成次級射線。相應(yīng)地,渲染系統(tǒng)100可將計算出的信息存儲在參考存儲器中以生成次級射線。
作為所生成的射線是陰影射線的響應(yīng)(操作S1020-是),渲染系統(tǒng)100將渲染結(jié)果存儲在幀緩沖器150中(操作S1030)。也就是說,渲染系統(tǒng)100可將根據(jù)陰影射線的渲染結(jié)果的色彩值存儲在幀緩沖器150中。然后,渲染系統(tǒng)100確定參考存儲器是否為空(操作S1070)。另外,作為所生成的射線不與對象相交的響應(yīng),即使所生成的射線不是陰影射線渲染系統(tǒng)100也可確定參考存儲器是否為空的(操作S1070)。
作為確定參考存儲器是空(操作S1070-是)的響應(yīng),渲染系統(tǒng)100可終止渲染操作。作為確定參考存儲器不是空(操作S1070-否)或者計算出的信息包括在參考存儲器中(操作S1060)的響應(yīng),渲染系統(tǒng)100獲得參考存儲器中所存儲的信息當(dāng)中最近被存儲的信息(操作S1080),并確定是否可生成陰影射線除外的次級射線(操作S1090)。在這種情況下,可生成陰影射線除外的次級射線的情況可以指信息被存儲的射線與對象相交的情況。
作為確定不可生成陰影射線除外的次級射線的響應(yīng)(操作S1090-否),渲染系統(tǒng)100刪除所獲得的信息(操作S1100)。
尤其,作為與所獲得的信息有關(guān)的射線不再生成次級射線(諸如反射射線或折射射線)的響應(yīng),渲染系統(tǒng)100可刪除所獲得的信息。另外,即使當(dāng)與所獲得的信息有關(guān)的射線僅生成作為次級射線的陰影射線時,渲染系統(tǒng)100也可在生成陰影射線并對其進行渲染時刪除與所獲得的信息有關(guān)的射線。
作為確定可生成陰影射線除外的次級射線的響應(yīng)(操作S1090-是),渲染系統(tǒng)100可基于所獲得的信息生成射線(操作S1000)。也就是說,渲染系統(tǒng)100可以遞歸的方式生成射線,直到存儲在參考存儲器中的全部信息被刪除為止。
根據(jù)各示例性實施方式,用戶能夠使用這樣的渲染系統(tǒng),所述渲染系統(tǒng)通過控制待存儲在存儲器中的與射線有關(guān)的信息的量來有效地使用存儲器,從而提高渲染系統(tǒng)的性能。
可以將一個或多個示例性實施方式實現(xiàn)為計算機可讀記錄介質(zhì)上的計算機可讀代碼,但是不限于此。計算機可讀記錄介質(zhì)是能存儲之后可由計算機系統(tǒng)讀取的數(shù)據(jù)的任何數(shù)據(jù)存儲裝置。計算機可讀記錄介質(zhì)的示例包括只讀存儲器(ROM)、隨機存取存儲器(RAM)、CD-ROM、磁帶、軟盤和光學(xué)數(shù)據(jù)存儲裝置。計算機可讀記錄介質(zhì)還可以分布在用網(wǎng)絡(luò)聯(lián)接的計算機系統(tǒng)上,使得以分布的方式來存儲和執(zhí)行計算機可讀代碼。而且,示例性實施方式可編寫為這樣的計算機程序,所述計算機程序通過計算機可讀傳輸介質(zhì)(諸如載波)來傳輸并且接納在執(zhí)行程序的通用或?qū)S脭?shù)字計算機中并在所述計算機中實現(xiàn)。此外,要理解,在示例性實施方式中,上述設(shè)備和裝置中的一個或多個單元可以包括電路、處理器、微處理器等,且可執(zhí)行存儲在計算機可讀介質(zhì)中的計算機程序。
前述實施方式和優(yōu)點僅是示例性的,而不解釋為限制本發(fā)明的構(gòu)思。本公開的教導(dǎo)可容易應(yīng)用于其他類型的設(shè)備。另外,示例性實施方式的描述旨在是說明性的而不限制權(quán)利要求的范圍,諸多替代方案、修改和變型對于本領(lǐng)域技術(shù)人員而言將顯而易見。