本發(fā)明涉及圖形處理,具體地涉及圖形處理系統(tǒng)的操作,該圖形處理系統(tǒng)執(zhí)行最終收集處理以生成用于待渲染場(chǎng)景的最終收集照明數(shù)據(jù)。
背景技術(shù):
在圖形處理系統(tǒng)中,通常通過(guò)將各個(gè)表面子劃分為稱(chēng)為“基元”的多個(gè)類(lèi)似基本成分以允許更容易執(zhí)行圖形處理操作來(lái)渲染用于顯示的表面。這些基元通常以簡(jiǎn)單的多邊形(諸如三角形)的形式。各個(gè)基元通常由一組頂點(diǎn)限定并且被表示為一組頂點(diǎn)。用于基元的各個(gè)頂點(diǎn)通常與指示基元在該頂點(diǎn)處的特性的一組頂點(diǎn)屬性數(shù)據(jù)(諸如位置、顏色、透明度、紋理坐標(biāo)等)關(guān)聯(lián)。例如,當(dāng)柵格化和渲染基元以生成圖形處理系統(tǒng)的期望輸出時(shí),可以使用該頂點(diǎn)屬性數(shù)據(jù)。
經(jīng)常期望的是應(yīng)用照明效果,以加強(qiáng)含有待渲染表面的場(chǎng)景的氣氛和/或現(xiàn)實(shí)(realism)。用于應(yīng)用照明效果的一種常見(jiàn)方法使用“光子射線(xiàn)追蹤”處理,以生成場(chǎng)景內(nèi)的表面的輻射度數(shù)據(jù)(即,生成表示透過(guò)場(chǎng)景內(nèi)的表面、從場(chǎng)景內(nèi)的表面發(fā)射、被場(chǎng)景內(nèi)的表面反射等的光的強(qiáng)度的數(shù)據(jù))。光子射線(xiàn)追蹤處理通常包括從用于照亮場(chǎng)景的各個(gè)光源朝向場(chǎng)景內(nèi)的表面投射多個(gè)光子射線(xiàn)。計(jì)算被射線(xiàn)交叉的表面上的點(diǎn)處的輻射度,并且計(jì)算得的輻射度作為輻射度數(shù)據(jù)存儲(chǔ)在場(chǎng)景的表面的“光照?qǐng)D”中。然后,當(dāng)渲染場(chǎng)景的表面時(shí),可以使用光照?qǐng)D。例如,光照?qǐng)D中的輻射度數(shù)據(jù)在渲染代表場(chǎng)景的表面的基元時(shí)可以用作照明紋理。
當(dāng)執(zhí)行光子射線(xiàn)追蹤時(shí),進(jìn)一步“遞歸性”光子射線(xiàn)可以從場(chǎng)景內(nèi)的表面朝向場(chǎng)景內(nèi)的其他表面投射。這可以提供重復(fù)第一和可能隨后的光反彈的間接照明效果。這可以改善照明效果的氣氛和/或現(xiàn)實(shí)。然而,投射充足數(shù)量的遞歸光子射線(xiàn)可能在計(jì)算上是花費(fèi)多的。另一方面,不投射遞歸光子射線(xiàn)或投射不充足數(shù)量的遞歸光子射線(xiàn)可能導(dǎo)致該場(chǎng)景中不期望的和/或不現(xiàn)實(shí)的陰暗或黑暗區(qū)域。
為了改進(jìn)照明效果的氣氛和/或現(xiàn)實(shí),可以執(zhí)行“最終收集”處理。最終收集處理通常包括遠(yuǎn)離場(chǎng)景內(nèi)的表面的“最終收集點(diǎn)”朝向場(chǎng)景的其他表面和/或光源沿所有方向投射多個(gè)采樣射線(xiàn)。采樣射線(xiàn)在那些采樣射線(xiàn)滿(mǎn)足其他表面和/或光源的點(diǎn)處對(duì)用于其他表面和/或光源的輻射度數(shù)據(jù)進(jìn)行采樣。然后組合用于最終收集點(diǎn)的所采樣輻射度數(shù)據(jù),以生成用于場(chǎng)景的最終收集照明數(shù)據(jù)。然后,當(dāng)渲染場(chǎng)景時(shí),可以使用最終收集照明數(shù)據(jù)。例如,最終收集照明數(shù)據(jù)可以用于創(chuàng)建照明紋理,其然后在渲染代表場(chǎng)景的表面的基元時(shí)可以使用。
投射采樣射線(xiàn)所沿的方向(即,遠(yuǎn)離生成照明數(shù)據(jù)的點(diǎn))意味著無(wú)需投射遞歸射線(xiàn),以當(dāng)執(zhí)行最終收集處理時(shí)創(chuàng)建間接照明效果。由此,最終收集處理可能導(dǎo)致加強(qiáng)場(chǎng)景被照亮的氣氛和/或現(xiàn)實(shí),而與等同的光子射線(xiàn)追蹤處理相比在計(jì)算上花費(fèi)不太多。
為了特別有效,最終收集處理通常仍然要求大量的采樣射線(xiàn),以從大量的最終收集點(diǎn)沿所有方向投射。這可能對(duì)圖形處理系統(tǒng)有較大處理負(fù)擔(dān)。當(dāng)然可以減少采樣射線(xiàn)和/或最終收集點(diǎn)的數(shù)量,以減少所需的處理量,但這將不可避免地減少生成的最終收集照明數(shù)據(jù)的量。
申請(qǐng)人因此相信還存在針對(duì)改進(jìn)執(zhí)行最終收集處理的圖形處理系統(tǒng)的操作的范圍。
技術(shù)實(shí)現(xiàn)要素:
根據(jù)本發(fā)明的一個(gè)方面,提供了一種操作圖形處理系統(tǒng)的方法,該方法包括以下步驟:
執(zhí)行最終收集處理,以生成用于待渲染場(chǎng)景的最終收集照明數(shù)據(jù),所述最終收集處理包括:
從所述場(chǎng)景內(nèi)的一個(gè)或更多個(gè)最終收集點(diǎn)投射采樣射線(xiàn),其中,從所述一個(gè)或更多個(gè)最終收集點(diǎn)投射的所述采樣射線(xiàn)的分布基于針對(duì)所述場(chǎng)景而提供的方向輻照度(irradiance)數(shù)據(jù);
使用從所述一個(gè)或更多個(gè)最終收集點(diǎn)投射的所述采樣射線(xiàn)對(duì)針對(duì)所述場(chǎng)景而提供的輻射度(radiosity)數(shù)據(jù)進(jìn)行采樣;以及
從所采樣的輻射度數(shù)據(jù)生成所述最終收集照明數(shù)據(jù)。
根據(jù)本發(fā)明的另一個(gè)方面,提供了一種圖形處理系統(tǒng),該圖形處理系統(tǒng)包括:
處理電路,該處理電路被構(gòu)造成執(zhí)行最終收集處理,以生成用于待渲染場(chǎng)景的最終收集照明數(shù)據(jù),所述處理電路被構(gòu)造成:
從所述場(chǎng)景內(nèi)的一個(gè)或更多個(gè)最終收集點(diǎn)投射采樣射線(xiàn),其中,從所述一個(gè)或更多個(gè)最終收集點(diǎn)投射的所述采樣射線(xiàn)的分布基于針對(duì)所述場(chǎng)景而提供的方向輻照度數(shù)據(jù);
使用從所述一個(gè)或更多個(gè)最終收集點(diǎn)投射的所述采樣射線(xiàn)對(duì)針對(duì)所述場(chǎng)景而提供的輻射度數(shù)據(jù)進(jìn)行采樣;以及
從所采樣的輻射度數(shù)據(jù)生成所述最終收集照明數(shù)據(jù)。
在本發(fā)明中,為待渲染場(chǎng)景提供的輻射度數(shù)據(jù)例如,以常規(guī)方式在最終收集處理期間被采樣,以生成最終收集照明數(shù)據(jù)。然而,在本發(fā)明中,方向輻照度數(shù)據(jù)在最終收集處理期間用作用于決定和/或選擇應(yīng)當(dāng)如何分布最終收集處理的采樣射線(xiàn)的基礎(chǔ)。本發(fā)明因此提供一種圖形處理系統(tǒng),其允許用于一個(gè)或更多個(gè)最終收集點(diǎn)的采樣射線(xiàn)基于輻照的方向以所通知的方式分布。例如,如果或當(dāng)方向輻照度數(shù)據(jù)指示那些具體方向可能提供相對(duì)較大量的輻照時(shí),例如,較多的采樣射線(xiàn)可以沿特定方向投射。另選地,如果或當(dāng)方向輻照度數(shù)據(jù)指示那些其他具體方向可能提供相對(duì)較少量的輻照時(shí),例如,較少或無(wú)采樣射線(xiàn)可以朝向其他圖特定方向投射。因此,通過(guò)基于輻照的方向來(lái)選擇采樣射線(xiàn)的更合適的分布,本發(fā)明可以提供更高質(zhì)量的一組最終收集照明數(shù)據(jù)(例如,具有低方差)。而且,因?yàn)橥渡洳蓸由渚€(xiàn)可能在計(jì)算上花費(fèi)多,所以本發(fā)明提供了一種圖形處理系統(tǒng),其例如,通過(guò)使用更少、但更適當(dāng)分布的采樣射線(xiàn),允許最終收集處理以計(jì)算上更有效的方式執(zhí)行。
如上所述,本發(fā)明使用針對(duì)場(chǎng)景而提供的輻射度數(shù)據(jù)。該輻射度數(shù)據(jù)優(yōu)選地包括關(guān)于場(chǎng)景內(nèi)的一個(gè)或更多個(gè)表面區(qū)域(例如,場(chǎng)景內(nèi)的一個(gè)或更多個(gè)表面所劃分成的一個(gè)或更多個(gè)表面區(qū)域)提供的輻射度數(shù)據(jù)。用于場(chǎng)景內(nèi)的各個(gè)表面區(qū)域的輻射度數(shù)據(jù)優(yōu)選地代表該表面區(qū)域的輻射度,例如,透過(guò)該表面區(qū)域和/或從表面區(qū)域發(fā)射和/或被表面區(qū)域反射的光的強(qiáng)度。
輻射度數(shù)據(jù)可以是用于待渲染場(chǎng)景的任意期望和/或合適的輻射度數(shù)據(jù)。例如,輻射度數(shù)據(jù)可以包括光源輻射度數(shù)據(jù)。光源輻射度數(shù)據(jù)可以從用于照亮場(chǎng)景的一個(gè)或更多個(gè)光源發(fā)射的光的輻射強(qiáng)度得到,或可以是從用于照亮場(chǎng)景的一個(gè)或更多個(gè)光源發(fā)射的光的輻射強(qiáng)度。
輻射度數(shù)據(jù)可以還包括或者反而包括表面輻射度數(shù)據(jù)。表面輻射度數(shù)據(jù)可以由從用于照亮場(chǎng)景的一個(gè)或更多個(gè)光源朝向場(chǎng)景內(nèi)的一個(gè)或更多個(gè)表面的光子射線(xiàn)追蹤得到。另選地,表面輻射度數(shù)據(jù)可以經(jīng)由從場(chǎng)景內(nèi)的一個(gè)或更多個(gè)表面朝向用于照亮場(chǎng)景的一個(gè)或更多個(gè)光源的射線(xiàn)追蹤得到。
表面輻射度數(shù)據(jù)還可以或者反而是通過(guò)考慮或計(jì)算被各個(gè)表面區(qū)域發(fā)射和/或透射和/或反射的光量(例如,由于被場(chǎng)景內(nèi)的一個(gè)或更多個(gè)其他表面區(qū)域照亮)。所反射的光量可以基于考慮之中的表面區(qū)域的反射率信息和/或用于一個(gè)或更多個(gè)其他表面區(qū)域中的每一個(gè)的之前輻射度數(shù)據(jù)和/或相對(duì)于一個(gè)或更多個(gè)其他表面區(qū)域中的每一個(gè)的考慮之中的表面區(qū)域的表面交互數(shù)據(jù)來(lái)確定。如下面更詳細(xì)地討論的,表面交互數(shù)據(jù)優(yōu)選地代表例如,基于那些表面區(qū)域的相對(duì)位置和/或定向的、用于考慮之中的表面區(qū)域之間的光交互的電位。
輻射度數(shù)據(jù)可以以任意期望和合適的方式來(lái)提供。例如,方法可以包括生成、檢索(例如,從儲(chǔ)存器)和/或接收用于場(chǎng)景的輻射度數(shù)據(jù)。類(lèi)似地,圖形處理系統(tǒng)可以包括處理電路,該處理電路被構(gòu)造成生成、檢索(例如,從儲(chǔ)存器)和/或接收用于場(chǎng)景的輻射度數(shù)據(jù)。
輻射度數(shù)據(jù)可以以任意期望和合適的方式來(lái)生成。例如,生成用于場(chǎng)景的輻射度數(shù)據(jù)可以包括從用于場(chǎng)景的一個(gè)或更多個(gè)光源朝向場(chǎng)景內(nèi)的一個(gè)或更多個(gè)表面投射一個(gè)或更多個(gè)光子射線(xiàn)。另選地,生成用于場(chǎng)景的輻射度數(shù)據(jù)可以包括從場(chǎng)景內(nèi)的一個(gè)或更多個(gè)表面朝向用于場(chǎng)景內(nèi)的一個(gè)或更多個(gè)光源投射一個(gè)或更多個(gè)射線(xiàn)。表面輻射度數(shù)據(jù)可以因此包括通過(guò)將一個(gè)或更多個(gè)直接射線(xiàn)投射到一個(gè)或更多個(gè)表面或遠(yuǎn)離一個(gè)或更多個(gè)表面而生成的直接輻射度數(shù)據(jù)。
如果期望,生成用于場(chǎng)景的輻射度數(shù)據(jù)可以還包括從表面中的一個(gè)或更多個(gè)(例如,一個(gè)或更多個(gè)反射面和/或一個(gè)或更多個(gè)漫反射面)朝向場(chǎng)景內(nèi)的一個(gè)或更多個(gè)其他表面投射一個(gè)或更多個(gè)遞歸光子射線(xiàn)。表面輻射度數(shù)據(jù)可以因此還或反而包括通過(guò)將一個(gè)或更多個(gè)遞歸光子射線(xiàn)從一個(gè)或更多個(gè)(例如,反射和/或漫反射)表面投射到一個(gè)或更多個(gè)其他表面而生成的間接輻射度數(shù)據(jù)。
生成用于場(chǎng)景的輻射度數(shù)據(jù)可以然后包括得到被(直接和/或遞歸)射線(xiàn)交叉的一個(gè)或更多個(gè)表面區(qū)域或點(diǎn)處(一個(gè)或更多個(gè)表面上和/或一個(gè)或更多個(gè)其他表面上)的輻射度數(shù)據(jù)。
生成用于場(chǎng)景的輻射度數(shù)據(jù)還可以或者反而是通過(guò)考慮或計(jì)算被各個(gè)表面區(qū)域發(fā)射和/或透射和/或反射的光量(例如,由于被場(chǎng)景內(nèi)的一個(gè)或更多個(gè)其他表面區(qū)域照亮)。如上面所討論的,所反射的光量可以基于考慮之中的表面區(qū)域的反射率信息和/或用于一個(gè)或更多個(gè)其他表面區(qū)域中的每一個(gè)的之前輻射度數(shù)據(jù)和/或相對(duì)于一個(gè)或更多個(gè)其他表面區(qū)域中的每一個(gè)的考慮之中的表面區(qū)域的表面交互數(shù)據(jù)來(lái)確定。在這些實(shí)施方式中,用于場(chǎng)景的輻射度數(shù)據(jù)可以在多個(gè)過(guò)程中迭代生成,各個(gè)隨后的過(guò)程使用之前過(guò)程中生成的之前輻射度數(shù)據(jù)。迭代可以為所選和預(yù)定數(shù)量的過(guò)程重復(fù),或可以重復(fù),直到已經(jīng)達(dá)到大致穩(wěn)定的輻射度狀態(tài)為止。
用于場(chǎng)景的一個(gè)或更多個(gè)光源可以是任意期望和合適的源。例如,用于場(chǎng)景的一個(gè)或更多個(gè)光源可以從由以下組成的組選擇:點(diǎn)光源、聚光燈源、方向光源和區(qū)域光源。
例如,在場(chǎng)景幾何圖形中,可以針對(duì)場(chǎng)景指定一個(gè)或更多個(gè)表面和/或一個(gè)或更多個(gè)光源的特性(例如,位置、定向、尺寸、材料、輻射顏色、輻射強(qiáng)度、反射率等)。
生成輻射度數(shù)據(jù)可以進(jìn)一步包括采樣(例如,點(diǎn)采樣)用于場(chǎng)景的較高分辨率初始輻射度數(shù)據(jù),并將所采樣的輻射度數(shù)據(jù)應(yīng)用于一個(gè)或更多個(gè)對(duì)應(yīng)的較低分辨率表面區(qū)域。這可以允許例如針對(duì)場(chǎng)景而提供的輻射度數(shù)據(jù)(在最終收集處理中之后采樣)的分辨率比可以初始提供的輻射度數(shù)據(jù)(可以用于除了最終收集處理之外的目的)的分辨率低。這可以減少處理最終收集處理中的輻射度數(shù)據(jù)所需的資源量(例如,功率、區(qū)域、帶寬、存儲(chǔ)空間等)。
針對(duì)場(chǎng)景而提供的輻射度數(shù)據(jù)可以以任意期望和合適的形式存儲(chǔ)。例如,輻射度數(shù)據(jù)可以存儲(chǔ)在用于場(chǎng)景的一個(gè)或更多個(gè)光照?qǐng)D(紋理)中。場(chǎng)景可以例如包括一個(gè)或更多個(gè)照明系統(tǒng),并且可以是用于一個(gè)或更多個(gè)照明系統(tǒng)中的每一個(gè)的至少一個(gè)光照?qǐng)D。一個(gè)或更多個(gè)照明系統(tǒng)可以各包括場(chǎng)景內(nèi)的一組光相互依賴(lài)表面和/或物體和/或幾何圖形。一個(gè)或更多個(gè)照明系統(tǒng)可以各包括單獨(dú)的和/或局部可溶的照明系統(tǒng),例如,關(guān)于該照明系統(tǒng)可以單獨(dú)地和/或局部地執(zhí)行最終收集處理。
提供輻射度數(shù)據(jù)的一個(gè)或更多個(gè)表面區(qū)域的分辨率(因此是光照?qǐng)D的分辨率)可以由一個(gè)或更多個(gè)質(zhì)量參數(shù)指定。
輻射度數(shù)據(jù)可以從靜態(tài)場(chǎng)景幾何圖形和/或動(dòng)態(tài)場(chǎng)景幾何圖形生成。在一些實(shí)施方式中,輻射度數(shù)據(jù)從靜態(tài)場(chǎng)景幾何圖形而不是動(dòng)態(tài)場(chǎng)景幾何圖形生成(例如,離線(xiàn))。這可以允許例如輻射度數(shù)據(jù)針對(duì)場(chǎng)景而提前生成,即,在要求場(chǎng)景運(yùn)行的應(yīng)用(例如,游戲)之前,而不是實(shí)時(shí)。在一些實(shí)施方式中,其他輻射度數(shù)據(jù)還可以從動(dòng)態(tài)場(chǎng)景幾何圖形(當(dāng)場(chǎng)景具有動(dòng)態(tài)內(nèi)容時(shí))生成(例如,實(shí)時(shí))。該其他輻射度數(shù)據(jù)可以以任意期望和合適的方式來(lái)提供。如下面將討論的,該其他輻射度數(shù)據(jù)可以用于提供動(dòng)態(tài)照明效果。這些實(shí)施方式可以減小圖形處理系統(tǒng)上的實(shí)時(shí)處理負(fù)擔(dān),而未嚴(yán)重不利地影響應(yīng)用于具有動(dòng)態(tài)內(nèi)容的場(chǎng)景的照明效果的質(zhì)量。
如上面所討論的,本發(fā)明使用針對(duì)場(chǎng)景而提供的方向輻照度數(shù)據(jù)。該方向輻照度數(shù)據(jù)優(yōu)選地包括關(guān)于場(chǎng)景內(nèi)的一個(gè)或更多個(gè)表面區(qū)域提供的方向輻照度數(shù)據(jù)(例如,場(chǎng)景內(nèi)的一個(gè)或更多個(gè)表面所劃分成的一個(gè)或更多個(gè)表面區(qū)域)。用于場(chǎng)景內(nèi)的各個(gè)表面區(qū)域的方向輻照度數(shù)據(jù)優(yōu)選地代表(例如粗略估計(jì)或估算)從用于該表面區(qū)域的多個(gè)不同貢獻(xiàn)(contributing)方向中的每一個(gè)在該表面區(qū)域處的輻照度(即,所接收的光的強(qiáng)度)。
方向輻照度數(shù)據(jù)所提供的一個(gè)或更多個(gè)表面區(qū)域中的每一個(gè)可以包括一個(gè)或更多個(gè)最終收集點(diǎn)。例如,一個(gè)或更多個(gè)表面區(qū)域中的每一個(gè)可以包括最終收集點(diǎn)中的單一個(gè)。然而,在優(yōu)選實(shí)施方式中,一個(gè)或更多個(gè)表面區(qū)域中的每一個(gè)包括多個(gè)最終收集點(diǎn)。這可以減小處理方向輻照度數(shù)據(jù)所需的資源,而不嚴(yán)重影響為多個(gè)最終收集點(diǎn)的最終收集照明數(shù)據(jù)的質(zhì)量。
用于特定表面區(qū)域的方向輻照度數(shù)據(jù)可以相對(duì)于用于該特定表面區(qū)域的一組(預(yù)限定和/或離散)貢獻(xiàn)方向限定。該組貢獻(xiàn)方向可以從考慮之中的特定表面區(qū)域從立體角的方面被限定。該組貢獻(xiàn)方向內(nèi)的貢獻(xiàn)方向可以分布(例如,均勻地)在考慮之中的表面區(qū)域的半球或球上。例如,在該組貢獻(xiàn)方向中可以有n個(gè)貢獻(xiàn)方向,其中,n等于或是至少2^n,其中,n是正整數(shù)。由此,n可以是2、4、8、16、32、64、128、256、512、1024、2048等。
方向輻照度數(shù)據(jù)可以以任意期望和合適的方式來(lái)提供。例如,方法可以包括生成、檢索(例如,從儲(chǔ)存器)和/或接收用于場(chǎng)景的方向輻照度數(shù)據(jù)。類(lèi)似地,圖形處理系統(tǒng)可以包括處理電路,該處理電路被構(gòu)造成生成、檢索(例如,從存儲(chǔ)器)和/或接收用于場(chǎng)景的方向輻照度數(shù)據(jù)。
方向輻照度數(shù)據(jù)可以以任意期望和合適的方式來(lái)生成。例如,生成用于特定表面區(qū)域的方向輻照度數(shù)據(jù)可以包括從用于該特定表面區(qū)域的該組貢獻(xiàn)方向中的方向中的各個(gè)一個(gè)方向考慮輻照作用。
方向輻照度數(shù)據(jù)可以至少部分地,從用于場(chǎng)景的表面交互數(shù)據(jù)生成。如上面所討論的,表面交互數(shù)據(jù)優(yōu)選地代表用于場(chǎng)景內(nèi)的表面區(qū)域之間的光交互的電位。表面交互數(shù)據(jù)可以包括用于場(chǎng)景內(nèi)的一個(gè)或更多個(gè)表面區(qū)域中的每一個(gè)的一個(gè)或更多個(gè)形狀因數(shù)。用于特定表面區(qū)域的各個(gè)形狀因數(shù)優(yōu)選地代表場(chǎng)景內(nèi)的特定表面區(qū)域與特定其他表面區(qū)域之間的光交互的電位。例如,用于特定表面區(qū)域的各個(gè)形狀因數(shù)可以代表特定表面區(qū)域可以“看到”特定其他表面區(qū)域的量。由此,例如,在特定其他表面區(qū)域的更大量可以被特定表面區(qū)域看到的情況下,該特定表面區(qū)域相對(duì)于特定其他表面區(qū)域的形狀因數(shù)可以更大。相反地,在更少量的特定其他表面區(qū)域的量可以被特定表面區(qū)域看到的情況下,該特定表面區(qū)域相對(duì)于特定其他表面區(qū)域的形狀因數(shù)可以更小。
各個(gè)形狀因數(shù)還可以或反而基于特定表面區(qū)域與特定其他表面區(qū)域之間的距離。例如,在特定表面區(qū)域與特定其他表面區(qū)域之間有更大距離的情況下,形狀因數(shù)可以更小。相反,在特定表面區(qū)域與特定其他表面區(qū)域之間有更小距離的情況下,形狀因數(shù)可以更大。
表面交互數(shù)據(jù)優(yōu)選地從用于場(chǎng)景的場(chǎng)景幾何圖形得到,例如,一個(gè)或更多個(gè)表面的表面輪廓、表面定向、表面材料和/或表面位置等。表面交互數(shù)據(jù)可以從靜態(tài)場(chǎng)景幾何圖形和/或動(dòng)態(tài)場(chǎng)景幾何圖形生成。然而,表面交互數(shù)據(jù)優(yōu)選地從靜態(tài)場(chǎng)景幾何圖形而不是動(dòng)態(tài)場(chǎng)景幾何圖形生成(例如,離線(xiàn))。這可以允許例如表面交互數(shù)據(jù)針對(duì)場(chǎng)景而提前生成,即,在要求場(chǎng)景運(yùn)行的應(yīng)用(例如,游戲)之前,而不是實(shí)時(shí)。這可以減小圖形處理系統(tǒng)上的實(shí)時(shí)處理負(fù)擔(dān),而未嚴(yán)重不利地影響應(yīng)用于具有動(dòng)態(tài)內(nèi)容的場(chǎng)景的照明效果的質(zhì)量。
方向輻照度數(shù)據(jù)可以還或反而至少部分地從用于場(chǎng)景的輻射度數(shù)據(jù)生成。例如,生成用于特定表面區(qū)域的方向輻照度可以包括組合(例如,相乘)用于特定表面區(qū)域關(guān)于特定其他表面區(qū)域的表面交互數(shù)據(jù)(例如,用于該特定表面區(qū)域的形狀因數(shù))和用于該特定其他表面區(qū)域的輻射度數(shù)據(jù)。該處理可以關(guān)于場(chǎng)景內(nèi)的例如,從特定表面區(qū)域沿特定方向的多個(gè)其他表面區(qū)域中的每一個(gè)為特定表面區(qū)域執(zhí)行。這些處理的結(jié)果然后可以組合(例如,加和),以提供用于該特定方向的方向輻照度值。該處理還可以從特定表面區(qū)域?yàn)楦鱾€(gè)方向執(zhí)行,以生成用于特定表面區(qū)域的方向輻照度數(shù)據(jù)。該處理還可以針對(duì)場(chǎng)景內(nèi)的一個(gè)或更多個(gè)表面區(qū)域中的每一個(gè)執(zhí)行,以生成用于一個(gè)或更多個(gè)表面區(qū)域的方向輻照度數(shù)據(jù)。
再次,方向輻照度數(shù)據(jù)可以從靜態(tài)輻射度數(shù)據(jù)和/或動(dòng)態(tài)輻射度數(shù)據(jù)生成。然而,在優(yōu)選實(shí)施方式中,方向輻照度數(shù)據(jù)從靜態(tài)輻射度數(shù)據(jù)而不是動(dòng)態(tài)輻射度數(shù)據(jù)生成(例如,離線(xiàn))。這可以允許例如方向輻照度數(shù)據(jù)針對(duì)場(chǎng)景而提前生成,即,在要求場(chǎng)景運(yùn)行的應(yīng)用(例如,游戲)之前,而不是實(shí)時(shí)。這可以再次減小圖形處理系統(tǒng)上的實(shí)時(shí)處理負(fù)擔(dān),而未嚴(yán)重不利地影響應(yīng)用于具有動(dòng)態(tài)內(nèi)容的場(chǎng)景的照明效果的質(zhì)量。
方向輻照度數(shù)據(jù)可以以任意期望和合適的形式存儲(chǔ)。例如,方向輻照度數(shù)據(jù)可以作為用于場(chǎng)景的一個(gè)或更多個(gè)方向輻照度數(shù)據(jù)紋理存儲(chǔ)??梢杂欣缬糜趫?chǎng)景的各個(gè)照明系統(tǒng)的至少一個(gè)方向輻照度數(shù)據(jù)紋理。如上面所討論的,各個(gè)照明系統(tǒng)可以包括場(chǎng)景內(nèi)的一組光相互依賴(lài)表面和/或物體和/或幾何圖形。一個(gè)或更多個(gè)照明系統(tǒng)可以各包括單獨(dú)的和/或局部可溶的照明系統(tǒng),例如,關(guān)于該照明系統(tǒng)可以單獨(dú)地和/或局部地執(zhí)行最終收集處理。
一個(gè)或更多個(gè)表面區(qū)域(為其提供方向輻照度數(shù)據(jù))的分辨率(因此,是方向輻照度數(shù)據(jù)紋理的分辨率)可以由一個(gè)或更多個(gè)質(zhì)量參數(shù)指定。如將根據(jù)上面理解的,方向輻照度數(shù)據(jù)紋理的分辨率可以與上述光照?qǐng)D的分辨率相同。
如上面所討論的,本發(fā)明包括執(zhí)行最終收集處理,最終收集處理包括從場(chǎng)景內(nèi)的一個(gè)或更多個(gè)最終收集點(diǎn)投射采樣射線(xiàn)。采樣射線(xiàn)優(yōu)選地遠(yuǎn)離一個(gè)或更多個(gè)表面區(qū)域(方向輻照度數(shù)據(jù)為該一個(gè)或更多個(gè)表面區(qū)域提供)和/或朝向一個(gè)或更多個(gè)表面區(qū)域(為該一個(gè)或更多個(gè)表面區(qū)域提供輻射度數(shù)據(jù))投射。
如上面所指示的,一個(gè)或更多個(gè)表面區(qū)域(為該一個(gè)或更多個(gè)表面區(qū)域提供方向輻照度數(shù)據(jù))優(yōu)選地具有比最終收集點(diǎn)的分辨率更低的分辨率。例如,如上面所討論的,一個(gè)或更多個(gè)表面區(qū)域(為其提供方向輻照度數(shù)據(jù))優(yōu)選地各包括多個(gè)最終收集點(diǎn)。類(lèi)似地,一個(gè)或更多個(gè)表面區(qū)域(為其提供輻射度數(shù)據(jù))優(yōu)選地具有比最終收集點(diǎn)的分辨率更低的分辨率。一個(gè)或更多個(gè)表面區(qū)域(為其提供方向輻照度數(shù)據(jù)和/或輻射度數(shù)據(jù))的較低分辨率允許處理方向輻照度數(shù)據(jù)和/或輻射度數(shù)據(jù)所需的資源量更少。然而,用于最終收集點(diǎn)的較高分辨率意味著最終收集照明數(shù)據(jù)的質(zhì)量不太受不利影響和/或不受?chē)?yán)重地不利影響。
如上面所討論的,在本發(fā)明中,從最終收集點(diǎn)中的一個(gè)或更多個(gè)投射的采樣射線(xiàn)的分布基于方向輻照度數(shù)據(jù)(例如,選擇)。采樣射線(xiàn)的分布可以基于方向輻照度數(shù)據(jù)以任意期望和合適的方式(例如,選擇)。
在優(yōu)選實(shí)施方式中,用于特定最終收集點(diǎn)的采樣射線(xiàn)的分布通過(guò)參考方向輻照度數(shù)據(jù)紋理來(lái)選擇,例如,以檢索用于含有特定最終收集點(diǎn)的特定表面區(qū)域的相關(guān)方向輻照度數(shù)據(jù)。查閱處理可以包括閱讀方向輻照度數(shù)據(jù)紋理中的一個(gè)或更多個(gè)方向輻照度數(shù)據(jù)值,和/或可以包括使用方向輻照度數(shù)據(jù)紋理中的方向輻照度數(shù)據(jù)的插值,例如,雙線(xiàn)性插值。
在一些實(shí)施方式中,采樣射線(xiàn)的分布被得到,通過(guò)從一組(預(yù)限定的和/或離散)采樣方向選擇例如一個(gè)或更多個(gè)采樣方向(沿該方向基于方向輻照度數(shù)據(jù)投射采樣射線(xiàn))。例如,來(lái)自可能促進(jìn)考慮之中的特定表面區(qū)域處的更多輻照的該組的一個(gè)或更多個(gè)采樣方向可以從該組選擇。相反,可以忽視可能促進(jìn)考慮之中的特定表面區(qū)域處的更少輻照度的該組中的一個(gè)或更多個(gè)采樣方向。
采樣射線(xiàn)的分布還可以或反而通過(guò)基于方向輻照度數(shù)據(jù)施加權(quán)重而得到。例如,更重的權(quán)重可以朝向可能促進(jìn)更多輻照的一個(gè)或更多個(gè)方向施加(因此可以投射更多的采樣射線(xiàn))。相反,更輕或零權(quán)重可以朝向一個(gè)或更多個(gè)采樣方向施加(因此可以投射更少或零采樣射線(xiàn)),該一個(gè)或更多個(gè)采樣方向可能促進(jìn)更少的輻照,或可能促進(jìn)考慮之中的表面區(qū)域處的無(wú)輻照。權(quán)重可以由一個(gè)或更多個(gè)(例如,交疊)函數(shù)施加,諸如一個(gè)或更多個(gè)(例如,交疊)余弦瓣。一個(gè)或更多權(quán)重函數(shù)可以在一個(gè)或更多個(gè)(例如,所選和/或預(yù)限定和/或離散)采樣方向上的大致中心。權(quán)重還可以或反而由用于(例如,在蒙特卡洛仿真中)生成采樣射線(xiàn)的分布的函數(shù)而施加(例如,概率密度函數(shù))。
提供采樣射線(xiàn)的分布的采樣方向可以包括用于限定和/或生成方向輻照度數(shù)據(jù)的上述貢獻(xiàn)方向中的一個(gè)或更多個(gè)。
如將理解的,用于特定最終收集點(diǎn)的采樣射線(xiàn)的分布可以大致非均勻(例如,當(dāng)方向輻照度數(shù)據(jù)指示考慮之中的表面區(qū)域不太可能被均勻照亮?xí)r)或可以大致均勻(例如,當(dāng)方向輻照度數(shù)據(jù)指示考慮之中的表面區(qū)域可能被均勻照亮?xí)r)-本發(fā)明的實(shí)施方式中重要的是用于特定最終收集點(diǎn)的采樣射線(xiàn)的分布基于方向輻照度數(shù)據(jù)適當(dāng)(例如,選擇)。
如上面所討論的,最終收集處理還包括使用從一個(gè)或更多個(gè)最終收集點(diǎn)投射的采樣射線(xiàn)對(duì)用于場(chǎng)景的輻射度數(shù)據(jù)進(jìn)行采樣。例如,用于一個(gè)或更多個(gè)表面區(qū)域的輻射度數(shù)據(jù)可以使用交叉那些一個(gè)或更多個(gè)表面區(qū)域的采樣射線(xiàn)來(lái)采樣。采樣可以包括查閱光照?qǐng)D,例如,以檢索用于含有交叉點(diǎn)的表面區(qū)域的相關(guān)輻射度數(shù)據(jù)。查閱可以包括閱讀光照?qǐng)D中的一個(gè)或更多個(gè)輻射度數(shù)據(jù)值,和/或可以包括使用光照?qǐng)D中的輻射度數(shù)據(jù)的插值,例如,雙線(xiàn)性插值。
最終收集處理可以還包括從場(chǎng)景內(nèi)的一個(gè)或更多個(gè)最終收集點(diǎn)中的一個(gè)或更多個(gè)投射進(jìn)一步大致均勻(例如,大致均衡地)分布的采樣射線(xiàn),以及使用從那些最終收集點(diǎn)投射的進(jìn)一步大致均勻(例如,大致均衡)分布的采樣射線(xiàn)來(lái)采樣用于場(chǎng)景的輻射度數(shù)據(jù)。這可以例如避免用沿特定方向投射的射線(xiàn)過(guò)度地偏置最終收集數(shù)據(jù)。
然后,可以例如使用(例如,多次)重要性采樣組合最終收集處理中采樣的輻射度數(shù)據(jù)(例如,用于特定最終收集點(diǎn)和/或用于特定表面區(qū)域的最終收集點(diǎn)),和/或校對(duì)該輻射度數(shù)據(jù),以生成最終收集照明數(shù)據(jù)(例如,用于特定最終收集點(diǎn)和/或用于特定表面區(qū)域)。用于多個(gè)最終收集點(diǎn)和/或多個(gè)表面區(qū)域的最終收集照明數(shù)據(jù)可以被組合和/或校正,以生成用于場(chǎng)景的最終收集照明數(shù)據(jù)。最終收集處理中采樣的輻射度數(shù)據(jù)因此生成用于場(chǎng)景的最終收集照明數(shù)據(jù)。
然后,用于場(chǎng)景的最終收集照明數(shù)據(jù)可以作為用于場(chǎng)景的輸出照明數(shù)據(jù)而輸出。然而,用于場(chǎng)景的最終收集照明數(shù)據(jù)可以首先與針對(duì)場(chǎng)景而提供的其他(例如,更高分辨率和/或動(dòng)態(tài))輻射度數(shù)據(jù)組合,以生成用于場(chǎng)景的輸出照明數(shù)據(jù)。這可以進(jìn)一步改善用于場(chǎng)景的多個(gè)輸出照明數(shù)據(jù)和/或施加動(dòng)態(tài)照明效果。
最終收集處理中采樣的輻射度數(shù)據(jù)可以包括靜態(tài)輻射度數(shù)據(jù)和/或動(dòng)態(tài)輻射度數(shù)據(jù)。然而,在優(yōu)選實(shí)施方式中,最終收集處理中采樣的輻射度數(shù)據(jù)包括靜態(tài)輻射度數(shù)據(jù)而不是動(dòng)態(tài)輻射度數(shù)據(jù)。由此,可以(整體)離線(xiàn)執(zhí)行最終收集處理。這可以例如減小圖形處理系統(tǒng)上的實(shí)時(shí)處理負(fù)擔(dān)。在這些實(shí)施方式中,如上面所討論的,通過(guò)將用于場(chǎng)景的最終收集照明數(shù)據(jù)與針對(duì)場(chǎng)景而提供的其他(即,動(dòng)態(tài))輻射度數(shù)據(jù)組合,可以仍然施加用于一個(gè)或更多個(gè)表面區(qū)域的動(dòng)態(tài)照明效果。
輸出照明數(shù)據(jù)(例如,最終收集照明數(shù)據(jù)或組合的最終收集和輻射度照明數(shù)據(jù))可以如期望地使用。例如,當(dāng)渲染一個(gè)或更多個(gè)基元以生成輸出數(shù)據(jù)值例如用于顯示時(shí),可以使用輸出照明數(shù)據(jù)。由此,本發(fā)明擴(kuò)展到用于渲染一個(gè)或更多個(gè)基元以生成輸出數(shù)據(jù)值例如用于顯示的方法或系統(tǒng),其在渲染一個(gè)或更多個(gè)基元時(shí)使用輸出照明數(shù)據(jù)。
例如,輸出照明數(shù)據(jù)可以用于創(chuàng)建(例如,可以存儲(chǔ)為)用于場(chǎng)景的一個(gè)或更多個(gè)照明紋理。然后,渲染處理可以包括當(dāng)渲染一個(gè)或更多個(gè)基元時(shí)使用一個(gè)或更多個(gè)照明紋理。渲染基元時(shí)使用照明紋理可以包括查閱照明紋理,例如,以檢索用于采樣基元的采樣位置的相關(guān)照明數(shù)據(jù)。查閱處理可以包括閱讀照明紋理中的一個(gè)或更多個(gè)照明數(shù)據(jù)值,和/或可以包括使用照明紋理中的照明數(shù)據(jù)的插值,例如,雙線(xiàn)性插值。然后,相關(guān)照明數(shù)據(jù)可以用于修改(變亮、變暗和/或變淺)用于采樣基元的采樣位置的顯示(例如,顏色)值。
另選地,渲染處理可以包括使用輸出照明數(shù)據(jù)修改(變亮、變暗和/或變淺)用于一個(gè)或更多個(gè)基元的頂點(diǎn)屬性(例如,顏色)數(shù)據(jù)。
和上面討論的處理階段相同,圖形處理系統(tǒng)可以含有圖形處理系統(tǒng)可含有的任意合適和期望的圖形處理階段(例如,圖形處理流水線(xiàn)的階段),諸如頂點(diǎn)著色器、柵格化階段、渲染階段等。
如上面所討論的,圖形處理流水線(xiàn)的頂點(diǎn)著色器可以例如使用輸出照明數(shù)據(jù),生成和/或修改(例如,變亮、變暗和/或變淺)用于一個(gè)或更多個(gè)基元的頂點(diǎn)數(shù)據(jù)(例如,顏色)數(shù)據(jù)。
圖形處理流水線(xiàn)的柵格化階段可以生成待渲染圖形片段,例如以生成用于所期望的圖形輸出的采樣點(diǎn)的渲染后的圖形數(shù)據(jù),諸如待顯示幀。由柵格化階段生成的各個(gè)圖形片段可以與圖形輸出的一組采樣點(diǎn)關(guān)聯(lián),并且可以用于生成與片段關(guān)聯(lián)的該組采樣點(diǎn)的一個(gè)或更多個(gè)采樣點(diǎn)的渲染后的圖形數(shù)據(jù)。柵格化階段可以被構(gòu)造成以任意期望和合適的方式生成用于渲染的片段。例如,柵格化階段可以接收待柵格化的一個(gè)或更多個(gè)基元,根據(jù)該組采樣點(diǎn)位置測(cè)試那些一個(gè)或更多個(gè)基元,并且因此生成代表基元的片段。
渲染階段可以處理由柵格化階段生成的片段,以生成用于片段代表的(覆蓋的)采樣點(diǎn)的渲染后的片段數(shù)據(jù)。渲染處理可以包括例如片段著色、混合、紋理映射等中的一種或更多種。紋理映射處理可以包括例如,以上述方式使用一個(gè)或更多個(gè)照明紋理。渲染階段可以以可編程片段著色器的形式。
圖形處理流水線(xiàn)可以還含有圖形處理流水線(xiàn)可含有的任意其他的合適和期望的處理階段,諸如早期深度(或早期深度和模具)測(cè)試器、晚期深度(或深度和模具)測(cè)試器、混合器等。
如由本領(lǐng)域技術(shù)人員理解的,本發(fā)明的圖形處理系統(tǒng)可以是包括例如主處理機(jī)的整體圖形處理系統(tǒng)中的一部分。主處理機(jī)可以例如執(zhí)行要求由圖形處理系統(tǒng)進(jìn)行的圖形處理的應(yīng)用。主處理機(jī)可以向圖形處理單元發(fā)送適當(dāng)?shù)拿詈蛿?shù)據(jù),以控制其執(zhí)行圖形處理操作并且產(chǎn)生應(yīng)用在主處理機(jī)上執(zhí)行所需要的圖形處理輸出。為了促進(jìn)這一點(diǎn),主處理機(jī)可以執(zhí)行圖形處理系統(tǒng)的驅(qū)動(dòng)程序,和/或可以執(zhí)行用于編譯要由圖形處理系統(tǒng)的可編程執(zhí)行單元執(zhí)行的著色器程序的編譯器。
圖形處理系統(tǒng)可以還包括一個(gè)或更多個(gè)存儲(chǔ)器和/或存儲(chǔ)裝置,和/或與一個(gè)或更多個(gè)存儲(chǔ)器和/或存儲(chǔ)裝置通信,該一個(gè)或更多個(gè)存儲(chǔ)器和/或存儲(chǔ)裝置存儲(chǔ)這里描述的數(shù)據(jù),和/或由圖形處理系統(tǒng)生成的輸出數(shù)據(jù),和/或用于執(zhí)行這里描述的處理的軟件。圖形處理系統(tǒng)可以還基于由圖形處理系統(tǒng)生成的數(shù)據(jù)與主微處理器通信,和/或與用于顯示圖像的顯示器通信。
本發(fā)明可以用于圖形處理系統(tǒng)可以用于生成的、所有形式的輸出,諸如用于顯示的幀、渲染-至-紋理輸出等。來(lái)自圖形處理的輸出(例如,片段著色后的)數(shù)據(jù)值優(yōu)選地被輸出到外部(例如,主)存儲(chǔ)器,用于儲(chǔ)存和使用,諸如到用于顯示器的幀緩沖器。
本發(fā)明可應(yīng)用于任意合適形式或構(gòu)造的圖形處理系統(tǒng),包括基于塊的圖形處理系統(tǒng)。
在特別優(yōu)選實(shí)施方式中,本發(fā)明的各種功能在單個(gè)圖形處理平臺(tái)上執(zhí)行,圖形處理平臺(tái)生成和輸出輸出照明數(shù)據(jù)和/或已渲染數(shù)據(jù)。
本發(fā)明可以在任意適當(dāng)?shù)南到y(tǒng)中實(shí)現(xiàn),諸如基于適當(dāng)構(gòu)造的微處理器的系統(tǒng)。在優(yōu)選實(shí)施方式中,本發(fā)明實(shí)現(xiàn)在計(jì)算機(jī)和/或基于微處理器的系統(tǒng)中。
本發(fā)明的各種功能可以以任意期望且合適的方式執(zhí)行。例如,本發(fā)明的功能可以實(shí)現(xiàn)在硬件或軟件中(根據(jù)期望)。由此,例如,除非以其他方式指示,本發(fā)明的各種功能元件、階段和“裝置”可以包括合適的處理器、控制器、功能單元、電路、處理邏輯、微處理器結(jié)構(gòu)等,它們可操作以進(jìn)行各種功能等,諸如適當(dāng)專(zhuān)用硬件元件和/或可以被編程以以期望方式操作的的可編程硬件元件。
這里還應(yīng)當(dāng)注意的是,如本領(lǐng)域技術(shù)人員將理解的,本發(fā)明的各種功能等可以在給定處理器上重復(fù)和/或并行執(zhí)行。由此,例如,處理電路可以包括并行操作的多個(gè)分開(kāi)的功能單元。等同地,各種處理階段可以共享處理電路等(如果期望)。
受制于必須執(zhí)行上面討論的特定功能的任意硬件,圖形處理系統(tǒng)可以以其他方式包括圖形處理系統(tǒng)包括的所有通常功能單元等中的任意一個(gè)或更多個(gè)或所有。
各種圖形處理階段可以因此如期望地并且以任意合適方式實(shí)現(xiàn),并且可以分別執(zhí)行任意期望和合適的功能。類(lèi)似地,各種數(shù)據(jù)(輻射度數(shù)據(jù)、方向輻照度數(shù)據(jù)、最終收集照明數(shù)據(jù)、輸出照明數(shù)據(jù)、頂點(diǎn)屬性數(shù)據(jù)等)可以以任意合適和期望的方式被限定和存儲(chǔ)。
如本領(lǐng)域技術(shù)人員將理解的,本發(fā)明的所有描述的方面和實(shí)施方式可以(且優(yōu)選地確實(shí))酌情包括這里描述的所有優(yōu)選和可選特征中的任意一個(gè)或更多個(gè)。
根據(jù)本發(fā)明的方法至少部分地可以使用軟件(例如,計(jì)算機(jī)程序)實(shí)現(xiàn)。由此將看到當(dāng)從其他方面看時(shí),本發(fā)明提供計(jì)算機(jī)軟件,該計(jì)算機(jī)軟件當(dāng)安裝在數(shù)據(jù)處理裝置上時(shí)專(zhuān)門(mén)適用于執(zhí)行這里描述的方法;計(jì)算機(jī)程序元件,該計(jì)算機(jī)程序元件包括計(jì)算機(jī)軟件代碼部,用于在程序元件在數(shù)據(jù)處理裝置上運(yùn)行時(shí)執(zhí)行這里描述的方法;和計(jì)算機(jī)程序,該計(jì)算機(jī)程序包括代碼裝置,該代碼裝置當(dāng)程序在數(shù)據(jù)處理系統(tǒng)上運(yùn)行時(shí)適用于執(zhí)行這里描述的方法的所有步驟。數(shù)據(jù)處理器可以是微處理器系統(tǒng)、可編程fpga(場(chǎng)可編程門(mén)陣列)等。
本發(fā)明還擴(kuò)展到計(jì)算機(jī)軟件載體,該計(jì)算機(jī)軟件載體包括這種軟件,這種軟件當(dāng)用于操作圖形處理器、渲染器貨包括數(shù)據(jù)處理裝置的微處理器系統(tǒng)時(shí)與所述數(shù)據(jù)處理裝置結(jié)合使所述處理器、渲染器系統(tǒng)執(zhí)行本發(fā)明的方法的步驟。這種計(jì)算機(jī)軟件載體可以是物理存儲(chǔ)介質(zhì),諸如rom芯片、cdrom、ram、閃存或盤(pán),或可以是信號(hào),諸如電線(xiàn)上的電信號(hào)、光信號(hào)或無(wú)線(xiàn)電信號(hào),諸如衛(wèi)星等。
還將進(jìn)一步理解的是,不是本發(fā)明的方法的所有步驟都需要由計(jì)算機(jī)軟件執(zhí)行,并且由此根據(jù)更寬方面,本發(fā)明提供了計(jì)算機(jī)軟件并且這種軟件安裝在計(jì)算機(jī)軟件載體上,用于執(zhí)行這里闡述的方法的步驟中的至少一個(gè)。
本發(fā)明可以因此適當(dāng)?shù)鼐唧w實(shí)施為用于與計(jì)算機(jī)系統(tǒng)一起使用的計(jì)算機(jī)程序產(chǎn)品。這種實(shí)現(xiàn)可以包括一系列計(jì)算機(jī)可讀指令,該一系列計(jì)算機(jī)可讀指令固定在有形、永久介質(zhì)上,諸如計(jì)算機(jī)可讀介質(zhì),例如,磁盤(pán)、cd-rom、rom、ram、閃存或硬盤(pán)。還應(yīng)當(dāng)包括一系列計(jì)算機(jī)可讀指令,在有形介質(zhì)(包括但不限于,光學(xué)或模擬通信線(xiàn))上,或無(wú)形地使用無(wú)線(xiàn)技術(shù)(包括但不限于,微波、紅外或其他傳輸技術(shù)),這些指令經(jīng)由調(diào)制解調(diào)器或其他接口裝置可發(fā)送到計(jì)算機(jī)系統(tǒng),。該系列計(jì)算機(jī)可讀指令具體實(shí)施這里之前描述的功能的所有或一部分。
本領(lǐng)域技術(shù)人員將理解這種計(jì)算機(jī)可讀指令可以以多種編程語(yǔ)言來(lái)寫(xiě),用于與許多計(jì)算機(jī)架構(gòu)或操作系統(tǒng)一起使用。進(jìn)一步地,這種指令可以使用任意存儲(chǔ)技術(shù)來(lái)存儲(chǔ)(存儲(chǔ)技術(shù)現(xiàn)在或?qū)?lái)包括但不限于半導(dǎo)體、磁或光),或使用任意通信技術(shù)來(lái)發(fā)送(通信技術(shù)現(xiàn)在或?qū)?lái)包括但不限于光學(xué)、紅外或微波)。預(yù)期的是,這種計(jì)算機(jī)程序產(chǎn)品可以作為可去除介質(zhì)來(lái)分發(fā),附有已打印的文檔或電子文檔,例如,現(xiàn)成軟件;例如在系統(tǒng)rom或固定盤(pán)上預(yù)加載有計(jì)算機(jī)系統(tǒng);或在網(wǎng)絡(luò)(例如,因特網(wǎng)或萬(wàn)維網(wǎng))上從服務(wù)器或電子公告欄分發(fā)。
附圖說(shuō)明
本發(fā)明的實(shí)施方式現(xiàn)在將僅以示例的方式并且參照附圖描述,附圖中:
圖1例示了根據(jù)本發(fā)明的實(shí)施方式的執(zhí)行最終收集處理所關(guān)于的場(chǎng)景;
圖2示意性地示出了根據(jù)本發(fā)明的實(shí)施方式的圖形處理系統(tǒng)的照明流水線(xiàn);
圖3圖形地例示了根據(jù)本發(fā)明的實(shí)施方式的最終收集處理中投射采樣射線(xiàn)的方法;以及
圖4示意性地示出了根據(jù)本發(fā)明的實(shí)施方式的圖形處理系統(tǒng)的渲染流水線(xiàn)和存儲(chǔ)器。
類(lèi)似的附圖標(biāo)記在附圖中適當(dāng)?shù)那闆r下用于類(lèi)似的部件。
具體實(shí)施方式
如上所述,本發(fā)明涉及執(zhí)行用于待渲染場(chǎng)景的最終收集處理的圖形處理系統(tǒng)?,F(xiàn)在將參照非常簡(jiǎn)單的場(chǎng)景描述本發(fā)明的實(shí)施方式。然而,將理解本發(fā)明可以關(guān)于復(fù)雜地多的場(chǎng)景執(zhí)行。
圖1示出了執(zhí)行最終收集處理所關(guān)于的場(chǎng)景10。場(chǎng)景10包括兩個(gè)壁面11、12和地板面13。為了執(zhí)行最終收集處理,三個(gè)面11、12、13中的每一個(gè)被劃分為多個(gè)表面區(qū)域,各個(gè)表面區(qū)域被進(jìn)一步劃分為多個(gè)最終收集點(diǎn),從這些點(diǎn)投射采樣射線(xiàn)。為了簡(jiǎn)化,用于三個(gè)表面11、12、13中的每一個(gè)的僅一個(gè)表面區(qū)域14、15、16示出在圖1中。類(lèi)似地,為了清楚,僅示出了地板面區(qū)域16的最終收集點(diǎn)并且圖1中僅例示了一個(gè)最終收集點(diǎn)17。
最終收集處理將特別參照地板面區(qū)域16及其與壁面區(qū)域14、15的光交互來(lái)描述。然而,實(shí)際上,還考慮到與場(chǎng)景10內(nèi)的其他表面區(qū)域的光交互,執(zhí)行用于地板面區(qū)域16的最終收集處理。而且,實(shí)際上,最終收集處理針對(duì)場(chǎng)景10內(nèi)的各個(gè)表面區(qū)域來(lái)執(zhí)行。
在該實(shí)施方式中,有用于場(chǎng)景10的單個(gè)聚光燈源18,雖然在其他實(shí)施方式中,可以有多個(gè)變化的光源。
現(xiàn)在將參照?qǐng)D2更詳細(xì)地描述用于場(chǎng)景10的最終收集處理,圖2示出了圖形處理系統(tǒng)的照明流水線(xiàn)20。
照明流水線(xiàn)20包括一序列不同階段,其各執(zhí)行不同操作,以生成用于場(chǎng)景10的照明數(shù)據(jù)。圖2示出了與本發(fā)明的實(shí)施方式有關(guān)的圖形處理系統(tǒng)的主要元件。如本領(lǐng)域技術(shù)人員將理解的,可以有圖2未例示的圖形處理流水線(xiàn)的其他元件。這里還應(yīng)當(dāng)注意的是圖2僅是示意性的,并且例如,實(shí)際上,所示的元件可以共享重要的硬件電路,即使它們?cè)趫D2中被示意性地示出為分開(kāi)的元件。
圖形處理系統(tǒng)的照明流水線(xiàn)20首先包括預(yù)計(jì)算處理階段23,其將質(zhì)量參數(shù)21和場(chǎng)景幾何圖形22看做輸入并且使用那些輸入執(zhí)行處理。在本實(shí)施方式中,由預(yù)計(jì)算處理階段23執(zhí)行的處理使用靜態(tài)場(chǎng)景幾何圖形22離線(xiàn)執(zhí)行。這可以減小圖形處理系統(tǒng)上的運(yùn)行處理負(fù)擔(dān)。
質(zhì)量參數(shù)21指定表面區(qū)域14、15、16的分辨率,關(guān)于其將提供用于場(chǎng)景10的輻射度數(shù)據(jù)和方向輻照度數(shù)據(jù)。場(chǎng)景幾何圖形22描述了場(chǎng)景10內(nèi)的表面11、12和13和光源18的特性。
預(yù)計(jì)算處理階段23獲得質(zhì)量參數(shù)21和場(chǎng)景幾何圖形22并且計(jì)算用于場(chǎng)景10的表面交互數(shù)據(jù)24。由預(yù)計(jì)算處理階段23計(jì)算得的表面交互數(shù)據(jù)24代表場(chǎng)景10的表面11、12、13之間的光交互的電位。在該實(shí)施方式中,表面交互數(shù)據(jù)24包括用于表面區(qū)域14、15、16中的每一個(gè)的一個(gè)或更多個(gè)形狀因數(shù),用于特定表面區(qū)域(例如,地板表面區(qū)域16)的各個(gè)形狀因數(shù)代表表面區(qū)域可以“看到”場(chǎng)景10內(nèi)的各個(gè)其他表面區(qū)域(例如,壁面區(qū)域14、壁面區(qū)域15等)的程度。形狀因數(shù)還基于考慮之中的表面區(qū)域14、15、16之間的距離。在該實(shí)施方式中,給出相對(duì)定向和位置,關(guān)于壁面區(qū)域15的用于地板表面區(qū)域16的形狀因數(shù)大于關(guān)于壁面區(qū)域14的用于地板表面區(qū)域16的形狀因數(shù)。
圖形處理系統(tǒng)的照明流水線(xiàn)20首先包括運(yùn)行時(shí)間(runtime)階段25,其將表面交互24和場(chǎng)景幾何圖形22作為輸入并且使用那些輸入執(zhí)行處理。在本實(shí)施方式中,由運(yùn)行時(shí)間階段25執(zhí)行的以下處理使用靜態(tài)場(chǎng)景幾何圖形22離線(xiàn)執(zhí)行。再次,這可以減小圖形處理系統(tǒng)上的運(yùn)行時(shí)間處理負(fù)擔(dān)。
運(yùn)行時(shí)間階段25首先使用靜態(tài)場(chǎng)景幾何圖形22生成用于場(chǎng)景10的靜態(tài)輻射度數(shù)據(jù)。用于場(chǎng)景10的輻射度數(shù)據(jù)代表從場(chǎng)景10的表面11、12、13發(fā)出的光的強(qiáng)度(作為被光源18照亮的結(jié)果)。在該實(shí)施方式中,輻射度數(shù)據(jù)在若干過(guò)程中迭代生成,基于表面區(qū)域14、15、16的形狀因數(shù)和反射率,第一過(guò)程考慮從光源18轉(zhuǎn)移到表面區(qū)域14、15、16的光量并且各個(gè)隨后過(guò)程考慮場(chǎng)景內(nèi)的表面區(qū)域14、15、16之間轉(zhuǎn)移的光量。運(yùn)行時(shí)間階段25然后在用于場(chǎng)景10的光照?qǐng)D中存儲(chǔ)用于表面區(qū)域14、15、16的輻射度數(shù)據(jù)。
為了簡(jiǎn)化,在本實(shí)施方式中,僅生成用于場(chǎng)景10的一個(gè)這種光照?qǐng)D。然而,實(shí)際上,場(chǎng)景10將通常被劃分為多個(gè)獨(dú)立照明系統(tǒng),光照?qǐng)D為各個(gè)系統(tǒng)生成。
運(yùn)行時(shí)間階段25還生成場(chǎng)景內(nèi)的各個(gè)表面區(qū)域14、15、16的方向輻照度數(shù)據(jù)。在本實(shí)施方式中,用于特定表面區(qū)域(例如,地板表面區(qū)域16)的方向輻照度數(shù)據(jù)接近于從該表面區(qū)域處的球體上均衡分布的256個(gè)不同的方向中的各個(gè)方向在表面區(qū)域處接收的光的強(qiáng)度。
在該實(shí)施方式中,從方向中的一個(gè)生成用于特定表面區(qū)域(例如,地板表面區(qū)域16)的方向輻照度數(shù)據(jù)包括使關(guān)于沿該方向的特定其他表面區(qū)域(例如,壁面區(qū)域14)的用于該表面區(qū)域的形式因數(shù)乘以該特定其他表面區(qū)域的輻射度。該乘法的結(jié)果因此接近于從該特定其他表面區(qū)域(例如,壁面區(qū)域14)從該方向在特定表面區(qū)域(例如,地板表面區(qū)域16)處的輻照度(即,可以接收的光量)。然后,該處理為用于沿該方向的各個(gè)其他表面區(qū)域的各個(gè)對(duì)應(yīng)的形狀因數(shù)和輻射度重復(fù)。
類(lèi)似地,從方向中的另一個(gè)生成用于特定表面區(qū)域(例如,地板表面區(qū)域16)的方向輻照度數(shù)據(jù)包括使關(guān)于沿另一個(gè)方向的特定其他表面區(qū)域(例如,壁面區(qū)域14)的用于該表面區(qū)域的形式因數(shù)乘以該特定其他表面區(qū)域的輻射度。然后,該處理為用于沿該另一個(gè)方向的各個(gè)其他表面區(qū)域的各個(gè)對(duì)應(yīng)的形狀因數(shù)和輻射度重復(fù)。
如將理解的,以上處理為特定表面區(qū)域(例如,地板表面區(qū)域16)沿256個(gè)促進(jìn)方向中的每一個(gè)為各個(gè)對(duì)應(yīng)的形式因數(shù)和輻射度來(lái)執(zhí)行,以生成用于該特定表面區(qū)域的方向輻照度數(shù)據(jù)。類(lèi)似處理還針對(duì)場(chǎng)景10內(nèi)的各個(gè)表面區(qū)域執(zhí)行,以生成用于場(chǎng)景10的方向輻照度數(shù)據(jù)。用于場(chǎng)景10的方向輻照度數(shù)據(jù)然后存儲(chǔ)在用于場(chǎng)景10的方向輻照度數(shù)據(jù)紋理中。
再次,為了簡(jiǎn)化,在本實(shí)施方式中,僅生成用于場(chǎng)景10的一個(gè)方向輻照度數(shù)據(jù)紋理。然而,實(shí)際上,場(chǎng)景10將通常被劃分為多個(gè)獨(dú)立照明系統(tǒng),方向輻照度數(shù)據(jù)紋理為各個(gè)系統(tǒng)生成。
用于地板表面區(qū)域16的方向輻照度數(shù)據(jù)31圖形地例示在圖3中,圖3示出了通過(guò)場(chǎng)景10的截面30。為了簡(jiǎn)化,在圖3中,用于256個(gè)促進(jìn)方向中的僅三個(gè)方向的方向輻照度數(shù)據(jù)31使用箭頭圖形地示出。方向輻照度數(shù)據(jù)31的更長(zhǎng)箭頭圖形地代表促進(jìn)方向,從該促進(jìn)方向可能有更大的輻照并且方向輻照度數(shù)據(jù)31的更短箭頭圖形地代表促進(jìn)方向,從該促進(jìn)方向可能有更少的輻照。如可以從圖3看到的,用于表面區(qū)域16的方向輻照度數(shù)據(jù)31指示從表面區(qū)域15的一般方向可能有更大的輻照,并且從其他方向(包括從表面區(qū)域14的通常方向)可能有更少的輻照。
在一些實(shí)施方式中,期望的輸出照明數(shù)據(jù)可以含有靜態(tài)和動(dòng)態(tài)內(nèi)容。在這些實(shí)施方式中,運(yùn)行時(shí)間階段25還可以實(shí)時(shí)生成動(dòng)態(tài)輻射度數(shù)據(jù),從而提供用于渲染場(chǎng)景10的實(shí)時(shí)照明數(shù)據(jù)26。
圖形處理系統(tǒng)的照明流水線(xiàn)20還包括烘焙階段29,其使用光照?qǐng)D中的靜態(tài)輻射度數(shù)據(jù)和方向輻照度數(shù)據(jù)紋理中的方向輻照度數(shù)據(jù),并且使用該數(shù)據(jù)執(zhí)行處理。烘焙階段29可以還接收并且使用與一個(gè)或更多個(gè)光源的特性有關(guān)的、進(jìn)一步更復(fù)雜的照明信息27。在本實(shí)施方式中,由烘焙階段29執(zhí)行的以下處理離線(xiàn)執(zhí)行。再次,這減小圖形處理系統(tǒng)上的運(yùn)行時(shí)間處理負(fù)擔(dān)。
烘焙階段29基于方向輻照度數(shù)據(jù)31從多個(gè)最終收集點(diǎn)投射采樣射線(xiàn)。例如,對(duì)于地板面區(qū)域16的最終收集點(diǎn)17,這涉及查閱方向輻照度數(shù)據(jù)紋理,以檢索用于地板表面區(qū)域16的方向輻照度數(shù)據(jù)31。這里應(yīng)當(dāng)注意的是,用于表面區(qū)域16的相同方向輻照度數(shù)據(jù)31用作用于從該表面區(qū)域16內(nèi)的各個(gè)最終收集點(diǎn)分布采樣射線(xiàn)的基礎(chǔ)。這允許以表面區(qū)域的較低分辨率生成并存儲(chǔ)方向輻照度數(shù)據(jù)31,同時(shí)以最終收集點(diǎn)的較高分辨率執(zhí)行采樣射線(xiàn)的投射。已經(jīng)發(fā)現(xiàn)其減少了處理方向輻照度數(shù)據(jù)所需的資源,而不嚴(yán)重影響最終收集照明數(shù)據(jù)的質(zhì)量。
圖3還圖形地例示了用于表面區(qū)域16的最終收集點(diǎn)17的采樣射線(xiàn)的分布32。如圖3所示,基于方向輻照度數(shù)據(jù),為沿表面區(qū)域15的一般方向投射而選擇更多的采樣射線(xiàn)31,為沿其他所選方向投射而選擇更少的采樣射線(xiàn),并且為沿其他方向(包括沿表面區(qū)域14的一般方向)投射而不選擇采樣射線(xiàn)。
烘焙階段29然后使用為最終收集點(diǎn)17投射的采樣射線(xiàn)對(duì)用于場(chǎng)景10的輻射度數(shù)據(jù)進(jìn)行采樣。這涉及查閱用于采樣射線(xiàn)與場(chǎng)景10的表面(例如,壁面12)交叉的表面區(qū)域(例如,壁面區(qū)域15)的輻射度數(shù)據(jù)的場(chǎng)景10的光照?qǐng)D。這里再次應(yīng)當(dāng)注意的是,被采樣射線(xiàn)采樣的光照?qǐng)D中的輻射度數(shù)據(jù)的分辨率比最終收集點(diǎn)的分辨率更低。這再次減少執(zhí)行最終收集處理時(shí)所需的資源,而不嚴(yán)重影響最終收集照明數(shù)據(jù)的質(zhì)量。
然后,使用多次重要性采樣,組合用于各個(gè)最終收集點(diǎn)(例如,最終收集點(diǎn)17)的被采樣的輻射度數(shù)據(jù),以生成用于該最終收集點(diǎn)的最終收集照明數(shù)據(jù)。如將理解的,關(guān)于用于該表面區(qū)域的各個(gè)最終收集點(diǎn)執(zhí)行基于用于表面區(qū)域(例如,地板表面區(qū)域16)的方向輻照度數(shù)據(jù)(例如,方向輻照度數(shù)據(jù)31)投射采樣射線(xiàn)、采樣輻射度數(shù)據(jù)、以及組合所采樣的輻射度數(shù)據(jù)的處理,以生成用于該表面區(qū)域的最終收集照明數(shù)據(jù)。如將理解的,關(guān)于用于場(chǎng)景的各個(gè)表面區(qū)域的各個(gè)最終收集點(diǎn)執(zhí)行基于用于場(chǎng)景10的方向輻照度數(shù)據(jù)生成最終收集照明數(shù)據(jù)的處理,以生成用于場(chǎng)景10的最終收集照明數(shù)據(jù)。
用于場(chǎng)景10的最終收集照明數(shù)據(jù)可以然后從烘焙階段29輸出,作為烘焙后的照明數(shù)據(jù)28。
如上面所討論的,在一些實(shí)施方式中,期望的輸出照明數(shù)據(jù)可以含有靜態(tài)和動(dòng)態(tài)內(nèi)容。在這些實(shí)施方式中,烘焙后的照明數(shù)據(jù)28可以與實(shí)時(shí)照明數(shù)據(jù)26組合,以生成用于渲染場(chǎng)景10的輸出照明數(shù)據(jù)。然后,在其他實(shí)施方式中,期望的輸出照明數(shù)據(jù)可以?xún)H含有靜態(tài)內(nèi)容。在這些實(shí)施方式中,用于場(chǎng)景10的輸出照明數(shù)據(jù)可以是烘焙后的照明數(shù)據(jù)28。在各個(gè)情況下,輸出照明數(shù)據(jù)存儲(chǔ)為照明紋理,并且可以然后用于渲染場(chǎng)景10。
現(xiàn)在將參照?qǐng)D4更詳細(xì)地描述渲染處理,圖4例示了圖形處理系統(tǒng)的渲染流水線(xiàn)40和存儲(chǔ)器45。
流水線(xiàn)40包括一系列不同階段,各對(duì)基元執(zhí)行不同操作,基元組成要顯示以為例如用于顯示器的渲染結(jié)果制備它們的物體。圖4示出了與本發(fā)明的實(shí)施方式有關(guān)的圖形處理系統(tǒng)的其他元件。如本領(lǐng)域技術(shù)人員將理解的,可以存在圖4中未例示的圖形處理系統(tǒng)的其他元件。這里還應(yīng)當(dāng)注意的是,圖4僅是示意性的,并且例如,實(shí)際上,所示的功能單元和渲染流水線(xiàn)階段可以共享重要的硬件電路,即使它們?cè)趫D4中被示意性地示出為分開(kāi)的階段。
首先,在流水線(xiàn)40中,生成頂點(diǎn)著色器41,其頂點(diǎn)著色用于輸出的頂點(diǎn)。頂點(diǎn)著色器41獲得為要生成的輸出限定的、與頂點(diǎn)關(guān)聯(lián)的輸入數(shù)據(jù)值,并且處理那些數(shù)據(jù)值,以生成一組對(duì)應(yīng)的頂點(diǎn)著色后的屬性數(shù)據(jù)值,用于由渲染流水線(xiàn)40的后續(xù)階段使用。
柵格化器42然后操作,以將組成渲染輸出的基元柵格化為用于處理的各個(gè)圖形片段。為了這樣做,柵格化器42接收用于渲染的圖形基元,柵格化基元為采樣點(diǎn)并且生成代表用于渲染基元的合適采樣位置的圖形片段。由柵格化器42生成的片段然后向前發(fā)送到用于處理的流水線(xiàn)的剩余部分。
由柵格化器42生成的圖形片段被傳遞到片段著色器43,用于著色。作為著色處理的一部分,片段著色器43確定用于圖形片段的采樣位置的照明紋理坐標(biāo),使用那些紋理坐標(biāo)執(zhí)行查閱照明紋理,并且使用查閱的照明紋理值,以修改顯示器,例如,顏色,用于那些采樣位置的值。然后,片段著色器43的輸出是一組適當(dāng)照亮的(例如顏色)用于采樣代表考慮之中的輸出的各個(gè)表面區(qū)域的位置的值。
來(lái)自片段著色器43的著色后的采樣位置然后被像素處理器44處理,以后處理(例如,下采樣)渲染后的采樣位置,以提供將實(shí)際輸出的像素的像素?cái)?shù)據(jù)。然后,像素?cái)?shù)據(jù)可以輸出例如到例如用于顯示器的主存儲(chǔ)器45(例如,幀緩沖器)。
用于渲染流水線(xiàn)40的其他排布當(dāng)然是可能的。例如,不是片段著色器43應(yīng)用照明效果,而是頂點(diǎn)著色器41可以修改其輸入數(shù)據(jù),以考慮待渲染圖像中的照明的效果。這可以例如包括頂點(diǎn)著色器41,其使用上述輸出照明數(shù)據(jù)來(lái)修改其輸入數(shù)據(jù)。
可以從上面看出,在至少其優(yōu)選實(shí)施方式中,本發(fā)明提供了可以以更有效的方式生成最終收集照明數(shù)據(jù)的一種圖形處理系統(tǒng)。在至少優(yōu)選實(shí)施方式中,這通過(guò)使從最終收集點(diǎn)投射的采樣射線(xiàn)的分布基于針對(duì)場(chǎng)景而提供的方向輻照度數(shù)據(jù)來(lái)實(shí)現(xiàn)。