两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

使用環(huán)境遮擋的真實感成像的系統(tǒng)和方法

文檔序號:6583683閱讀:152來源:國知局
專利名稱:使用環(huán)境遮擋的真實感成像的系統(tǒng)和方法
技術領域
本發(fā)明一般涉及計算機圖形和真實感(photorealistic)圖像生成的領域,并且 更具體地,涉及用于使用環(huán)境遮擋(ambient occlusion)的改善的真實感成像的系統(tǒng)和方 法。
背景技術
現(xiàn)代計算機圖形系統(tǒng)和方法包括設計為渲染在包括視頻游戲、飛行和其他模擬、 運動畫面和許多其他應用之類的多種應用中使用的高質量圖像的各種技術。例如,對于動 畫工作室,光線跟蹤和全局照明技術現(xiàn)在在運動畫面生產和特效中扮演不可或缺的角色。
—種常用方法是使用光線的分級組或"分組",可針對分級加速結構(HAS)對其進 行測試,以便根據例如當幾何子集未到達觀察點時的考慮,丟棄該子集。盡管傳統(tǒng)方法理論 上是有效的,但投射周圍環(huán)境遮擋光線常常給高速緩存和本地存儲器帶來巨大的壓力,并 且需要非必要的工作量。 因而,需要針對與傳統(tǒng)系統(tǒng)和方法有關的至少一些問題和缺點的用于實感成像的 系統(tǒng)和/或方法。

發(fā)明內容
提供以下概要以有助于理解所公開實施例特有的一些創(chuàng)新特征,但不意圖作為完 整說明。通過作為整體考慮全部說明書、權利要求、附圖和摘要,可以獲得對實施例的各個 方面的完整理解。 在一個實施例中,接收場景模型數(shù)據,該場景模型數(shù)據包括描述在場景中排列的 物體的場景幾何模型和多個像素數(shù)據。選擇多個像素數(shù)據中的第一像素數(shù)據?;诘谝幌?素數(shù)據生成主像素顏色和主光線。如果主光線與場景中的物體相交,則確定交點P?;谙?交的物體和交點P,確定表面法矢量N?;诮稽cP確定主命中顏色。基于主命中顏色修改 主像素顏色?;诮稽cP和表面法矢量N,產生多個環(huán)境遮擋(AO)光線,每個A0光線具有 方向D。對于每個A0光線,反轉A0光線方向D,并將A0光線起點0設置為場景外的點。使 每個AO光線從AO光線起點向著交點P行進到場景中。如果AO光線在到達點P之前與物 體相交,則從環(huán)境遮擋計算中排除該AO光線。如果AO光線在到達點P之前不與物體相交, 則在環(huán)境遮擋計算中包括該光線。基于所包括的A0光線,估計環(huán)境遮擋?;诃h(huán)境遮擋和 主命中顏色,遮暗主像素顏色,并且基于像素數(shù)據的主像素顏色,生成圖像。


在附圖中,相似附圖標記指代各個視圖之中相同或功能類似的元素,附圖被并入 在說明書中并形成說明書的一部分,進一步圖示了實施例,并且與具體實施方式
一起用于 說明在此公開的實施例。
圖1圖示了示出根據優(yōu)選實施例的計算機圖形系統(tǒng)的框 圖2圖示了示出根據優(yōu)選實施例在示例場景中的主光線投射的框圖;
圖3圖示了示出根據優(yōu)選實施例在示例場景中的環(huán)境遮擋光線的框圖;
圖4圖示了示出根據優(yōu)選實施例的對于環(huán)境遮擋的改進方法的例子的框圖;
圖5圖示了描繪可根據優(yōu)選實施例實現(xiàn)的改進的環(huán)境遮擋方法的邏輯操作步驟 的高級流程圖; 圖6圖示了描繪可根據優(yōu)選實施例實現(xiàn)的改進的環(huán)境遮擋方法的邏輯操作步驟 的高級流程圖; 圖7圖示了描繪可根據優(yōu)選實施例實現(xiàn)的改進的環(huán)境遮擋方法的邏輯操作步驟 的高級流程圖;以及 圖8圖示了示出可被配置為合并一個或多個優(yōu)選實施例的示例計算機系統(tǒng)的框 圖。
具體實施例方式
這些非限制性示例中討論的具體值和配置可以變化,并且引用其僅僅用于例示至 少一個實施例,而不是要限制本發(fā)明的范圍。 在以下討論中,描述一些具體細節(jié)以提供本發(fā)明的整體理解。本領域技術人員將 理解,可以無需這樣的具體細節(jié)而實踐本發(fā)明。在其他實例中,以示意或框圖形式圖示了公 知元件,以便不會在不必要的細節(jié)方面模糊本發(fā)明。此外,在最大程度上,省略了關于網絡 通信、電磁信令技術、用戶接口或輸入/輸出技術等的細節(jié),因為不認為這樣的細節(jié)是獲得 本發(fā)明的完整理解所必需的,并認為其在相關領域技術普通人員的理解范圍內。
如本領域技術人員將理解的,本發(fā)明可以實施為系統(tǒng)、方法或計算機程序產品。因 此,本發(fā)明可采取完全硬件實施例、完全軟件實施例(包括固件、駐留軟件、微代碼等)或組 合了軟件和硬件方面的實施例的形式,它們在此可統(tǒng)稱為"電路"、"模塊"或"系統(tǒng)"。另外, 本發(fā)明可以采取以表達的任何有形介質(在該介質上包含計算機可使用的程序代碼)實現(xiàn) 的計算機程序產品的形式。 可以采用一個或多個計算機可用或計算機可讀介質的任何組合。計算機可用或計 算機可讀介質可以是(例如但不限于)電子、磁、光、電磁、紅外或半導體系統(tǒng)、裝置、設備或 傳播介質。計算機可讀介質的更具體的例子(非窮盡列舉)將包括以下具有一條或多條 線的電連接、便攜式計算機盤碟、硬盤、隨機存取存儲器(RAM)、只讀存儲器(R0M)、可擦除 可編程只讀存儲器(EPROM或閃存)、光纖、便攜式緊湊盤只讀存儲器(CDROM)、光存儲器件、 諸如支持因特網或內部網之類的傳輸介質或磁存儲器件。注意,計算機可用或計算機可讀 介質甚至可以是上面打印了程序的紙張或其它合適的介質,因為該程序可經由例如對紙張 或其它介質的光學掃描被捕獲,然后被編譯、翻譯,或者如果有必要以合適的方式處理,然 后被存儲到計算機存儲器中。在本文的上下文中,計算機可用和計算機可讀介質可以是能 夠包含、存儲、通信、傳播或傳送由指令執(zhí)行系統(tǒng)、裝置或設備使用或與指令執(zhí)行系統(tǒng)、裝置 或設備使用結合使用的程序的任何介質。計算機可用介質可以包括基帶中的或作為載波的 一部分的傳播數(shù)據信號,其中計算機可用程序代碼利用該傳播數(shù)據信號來體現(xiàn)??梢允褂?任何適當?shù)慕橘|(包括但不限于無線、有線、光纖線纜、RF等)傳送計算機可用程序代碼。
可以用一個或多個編程語言(包括諸如Java、 Smalltalk、 C++等的面向對象的編程語言以及諸如"C"編程語言或類似編程語言的傳統(tǒng)程序性編程語言)的任意組合編寫用 于執(zhí)行本發(fā)明的操作的計算機程序代碼。程序代碼可以完全在用戶計算機上執(zhí)行、部分地 在用戶計算機上執(zhí)行、作為單機軟件包執(zhí)行、部分地在用戶計算機并部分第在遠程計算機 上執(zhí)行、或完全在遠程計算機或服務器上執(zhí)行。在后一情況中,遠程計算機可通過包括,包 括局域網(LAN)或廣域網(WAN)在內的任何類型的網絡連接到用戶計算機,或可以進行與 外部計算機的連接(例如,使用因特網服務提供者通過因特網)。 下面參照根據本發(fā)明實施例的方法、裝置(系統(tǒng))和計算機程序產品的流程圖示 和/或框圖,描述本發(fā)明。將理解,流程圖示和/或框圖的每個塊以及流程圖示和/或框圖 中的塊的組合可由計算機程序指令實現(xiàn)。可以將這些計算機程序指令提供給通用計算機、 專用計算機或其他可編程數(shù)據處理裝置的處理器,以產生機構使得經由計算機或其他可編 程數(shù)據處理裝置的處理器執(zhí)行的指令建立用于實現(xiàn)流程圖和/或框圖塊或多個塊中指定 的功能/動作的部件。 這些計算機程序指令還可以被存儲在計算機可讀介質中,該計算機可讀介質可以 引導計算機或其他可編程數(shù)據處理裝置按特定方式運作,使得計算機可讀介質中存儲的指 令產生包括實現(xiàn)在流程圖和/或框圖塊或多個塊中指定的功能/動作的指令部件的一件產<formula>formula see original document page 6</formula> 計算機程序指令還可以被加載到計算機或其他可編程數(shù)據處理裝置上,以致使在 計算機或其他可編程裝置上執(zhí)行一系列操作步驟,以產生計算機實現(xiàn)的處理,使得在計算 機或其他可編程裝置上執(zhí)行的指令提供用于實現(xiàn)在流程圖和/或框圖塊或多個塊中指定 的功能/動作的處理。 適合于存儲和/或執(zhí)行程序代碼的數(shù)據處理系統(tǒng)將包括通過系統(tǒng)總線直接或間 接耦接到存儲器元件的至少一個處理器。存儲器元件可包括在程序代碼的實際執(zhí)行期間采 用的本地存儲器、大容量存儲器和提供至少一些程序代碼的臨時存儲以便減少在執(zhí)行期間 必須從大容量存儲器取會代碼的次數(shù)的高速緩沖存儲器。 輸入/輸出或I/0設備(包括但不限于鍵盤、顯示器、定點設備等)可直接或通過 居間1/0控制器耦接到系統(tǒng)。網絡適配器也可耦接到系統(tǒng),以使得數(shù)據處理系統(tǒng)能夠通過 居間私有或公共網絡耦接到其他數(shù)據處理系統(tǒng)或遠處打印機或存儲設備。調制解調器、電 纜調制解調器和以太網卡正是一些目前可獲得的類型的網絡適配器。 現(xiàn)在參照附圖,圖1是圖示根據本發(fā)明優(yōu)選實施例用于使用環(huán)境遮擋的改進的真 實感成像的系統(tǒng)100的某些組件的高級框圖。通常,系統(tǒng)100使用環(huán)境遮擋進行真實感成 像,并包括圖形引擎102。 例如,許多真實感成像技術關注于跟蹤假想光線在從光源經過場景移動時行進的 路徑。在"光線投射"中,對于場景中的每個像素,圖形系統(tǒng)跟蹤從場景中的所選觀察點到所 選光源的假想光線,基于光線在其到光源的路上是否與場景中的物體相交,更新像素色彩、 遮暗(shading)和其他因素。以此方式,圖形系統(tǒng)可以迅速確定觀察點場景中的物體是否 對觀察點可見(可視性),以及場景中的其他物體是否阻擋來自光源的光落到物體上(直接 陰影)。這樣,圖形系統(tǒng)可以將三維場景渲染為例如適合于計算機屏幕的二維圖像。如這里 所使用的,"光線投射"意味著針對可視性跟蹤光線和直接陰影計算。 在"光線跟蹤"中,具體地在Whitted型光線跟蹤中,當跟蹤光線與場景中的物體相交時,圖形系統(tǒng)生成三種附加類型的光線即"次級光線"中的一個或多個,該"次級光線" 的起源是跟蹤光線和物體的交點,該三種附加類型的光線是反射光線、折射光線和陰影光 線。"反射"光線從相交點在原始光線的鏡面反射路徑的方向上行進。如果發(fā)射光線與另一
物體相交,則該反射物體通過在第一物體上顯示出反射物體的鏡像(mirror image)而影響 代表交點的像素。 如果原始跟蹤光線與透明物體相交,則"折射"光線從交點在原始光線的折射路徑 的方向上行進,并且可以穿過物體行進。如果折射光線與另一物體相交,則圖形系統(tǒng)相應地 更新代表交點的像素。如果物體面對光源,則"陰影"光線跟蹤從交點到光源的直線路徑。 如果陰影光線與不透明物體相交,則不透明物體阻擋來自光源的光到達交點,并且圖形系 統(tǒng)相應地更新代表交點的像素。 除了 Whitted型次級光線之外,典型的圖形系統(tǒng)還可進行多個其他場景操縱,以 增強所描繪場景的實感度。例如,"全局照明"(用于將間接光照考慮因素添加到場景的技 術的一般術語)通過改進場景光照的真實感將附加真實感添加到場景。因為全局照明技術 常常是資源密集型的,因此一些典型的圖形系統(tǒng)使用環(huán)境遮擋來模擬全局照明。通常,傳統(tǒng) 的"環(huán)境遮擋"從主交點和次級交點投射多條光線,基于與其他物體和表面相交的樣本光線 的數(shù)目計算覆蓋率。 環(huán)境遮擋和光線跟蹤的次級光線增加了在光線投射中不可獲得的細節(jié),這得到的 是更具真實感的圖像。然而,附加的光線也需要附加的計算和存儲資源。這樣的附加計算 和存儲需求已經常常使得交互的光線跟蹤不實用或不可能。這里描述的新穎的實施例克服 了一些這樣的限制。 如下面將更詳細描述的,系統(tǒng)100可以被配置為使用光線的分級組或"分組",其 中可針對分級力口速結構(Hierarchical Acceleration Structure,HAS)對該光線的分級組 或"分組"進行測試,以便根據例如當幾何子集未到達觀察點時的考慮,丟棄該子集。通常, HAS是由按順序排列的節(jié)點構成的數(shù)據結構,并用來保存關于場景幾何形狀的信息,該信息 可以用來評估特定光路是否與場景中的物體相交等等。示例HAS包括均勻網格、二叉樹、KD 樹、八叉樹和包圍空間層級(bounded-volume hierarchy,BVH)。使用光線的分級分組和通 過加速結構穿過(traverse)分組常常極大地降低了在維持可接受的準確度的同時所需的 操作數(shù)量。 實踐中,存在多種在求解環(huán)境遮擋積分中有用的典型技術。最直接的前向方式之 一是其通過使用Monte Carlo或其他采樣方法從交點P投射光線,然后對于與場景幾何形 狀中的其他物體的相交進行測試,來近似在交點P處的可視性函數(shù)。通過不相交的環(huán)境光 線的數(shù)目除以投射的光線總數(shù),估計P處的環(huán)境暴露度。 HAS的典型有效的實現(xiàn)方式可以通過從前到后、從交點到場景邊界或物體交點穿 過場景,將環(huán)境遮擋光線與三維場景相交,由此避免不必要地穿過受遮擋的加速結構的各 部分。例如,在一種方式中,層級中的每一級存儲該級上子節(jié)點的最大分離(s印aration) 的尺度。在運行時,圖形引擎將該最大分離度和光線方向結合,以便選擇首先訪問哪個子節(jié) 點。 盡管傳統(tǒng)方法理論上是有效的,但是從交點P投射環(huán)境遮擋光線常常給高速緩存 和本地存儲器帶來巨大壓力,并且需要不必要的工作量。具體地,因為點P位于場景內部,
7并且由于從前到后穿過的性質,可能并且很有可能的是,圖形引擎將在環(huán)境遮擋光線可以開始與P前面的場景幾何形狀相交之前,檢查HAS的遮擋部分。由此,如下面更詳細描述的,系統(tǒng)100提供了降低對高速緩存和本地存儲器的壓力來穿過HAS的機制。
廣泛地,如下面更詳細描述的,盡管改進了圖形引擎用來確定對于特定場景的實感環(huán)境遮擋級的處理,系統(tǒng)IOO提供了極大地改善真實感成像質量的圖形系統(tǒng)。所公開的實施例主要改進了光線跟蹤性能,特別改進了環(huán)境遮擋操縱。另外,即使在具有有限本地存儲器的系統(tǒng)中,這里描述的新穎的圖形引擎和實施例也可以提供改善的光線跟蹤性能。因此,所公開的實施例可以改善高端系統(tǒng)的性能,并使實現(xiàn)操作中可接受的圖形性能(否則其會超出圖形硬件的能力)。 更具體地,圖形引擎102接收和處理場景模型輸入104,生成多個像素顏色數(shù)據和其他信息。圖形引擎102將所生成的信息傳遞給顯示子系統(tǒng)106,該顯示子系統(tǒng)106使用所生成的信息在顯示器108上顯示圖像。典型的場景模型輸入104包括描述場景中物體的排列的多個像素數(shù)據和場景幾何模型。典型的運動畫面可以包括數(shù)千靜止圖像,每個靜止圖像是場景中物體的排列。 通常,多個"像素數(shù)據"將場景中的物體與諸如顯示屏幕之類的參考幀(referenceframe)相關聯(lián),根據參考幀安排關于描述場景的像素的數(shù)量的有限上邊界。在場景模型輸入中使用的每個像素具有關聯(lián)的像素數(shù)據。在一個實施例中,像素數(shù)據包括像素的坐標參考,其表示像素與其他像素的相對位置;以及初級像素顏色,圖形引擎102在像素數(shù)據的處理過程中修改該初級像素顏色,如下所述。在替代實施例中,像素數(shù)據不包括初級顏色,并且圖形引擎102基于下面詳細描述的處理,向多個像素數(shù)據中的每一個添加像素顏色。
在圖示實施例中,圖形引擎102包括輸入/輸出(I/O)模塊120。通常,1/0模塊120在他方面是傳統(tǒng)的1/0接口。操作中,1/0模塊120接收場景模型輸入104。 1/0模塊120還耦接到顯示子系統(tǒng)106。顯示子系統(tǒng)106在其他方面是傳統(tǒng)的顯示子系統(tǒng),并且被配置為從圖形引擎102接收處理過的場景模型數(shù)據并基于處理過的場景模型數(shù)據在顯示器108上顯示圖像。 在所圖示的實施例中,圖形引擎102包括協(xié)同處理單元(SPU) 130和存儲器140。SPU 130在其他方面是傳統(tǒng)的處理單元(PU),如以下所述修改的。在一個實施例中,SPU130是Cell 處理器。在替代實施例中,SPU 130是Broadband Engine 處理器。存儲器140在其他方面是傳統(tǒng)的存儲器模塊140,如以下所述修改的。通常,操作中,圖形引擎102接收未處理的場景模型數(shù)據104,并將未處理的場景模型數(shù)據104存儲在存儲器140中。SPU130處理場景模型數(shù)據104,以生成適合于顯示子系統(tǒng)106用來顯示圖像的處理過的場景模型數(shù)據。 更具體地,存儲器140包括模型數(shù)據142。模型數(shù)據142是指在不同處理階段中接收的場景模型數(shù)據。在一個實施例中,模型數(shù)據142被排列為HAS。在一個實施例中,模型數(shù)據142被排列為包圍空間層次(BVH)。 SPU 130包括渲染模塊132和本地存儲器134。渲染模塊132是被配置為處理場景模型數(shù)據的邏輯塊(下面更詳細描述)。本地存儲器134在其他方面是傳統(tǒng)的PU本地存儲器,如以下描述采用的。通常,SPU 130從存儲器140中檢索模型數(shù)據142的多個部分,將檢索的部分存儲在本地存儲器134中。在一個實施例中,檢索的部分是多個像素數(shù)據中的每個單個像素數(shù)據。如下面更詳細描述的,渲染模塊132處理場景模型數(shù)據的檢索的部分,添加像素顏色或修改已有像素顏色,并將修改的像素數(shù)據返回模型數(shù)據142。
更具體地,圖形引擎102接收場景模型數(shù)據104,并執(zhí)行在此所述的新穎的環(huán)境遮擋技術。圖2圖示了示例場景200中的主光線投射。場景200包括多個物體210和表面220。從觀察點232投射的主光線230在交點240處與表面220相交。表面法矢量(normal) 250表示垂直于表面220(在點240)的矢量的方向。 圖3圖示了在具有觀察點332的示例場景300中的環(huán)境遮擋光線投射。多個環(huán)境遮擋光線350從表面320的交點340離開。環(huán)境遮擋光線350中的一些將與物體310相交。
圖4圖示了在具有觀察點432和場景邊界402的場景400中根據優(yōu)選實施例的改進的環(huán)境遮擋光線處理。多個環(huán)境遮擋(AO)光線450從起點向場景邊界402外行進。通常,場景邊界402代表對圖形引擎已知的場景模型數(shù)據的限制。 每個AO光線450從其起點在朝向表面420的交點440的直線上向場景邊界402外行進。在一些實施例中,圖形引擎將AO光線450分為分組460。如所示,具有起點452a、452b和456的A0光線450在它們去向交點440的路上不與場景中的物體相交。因此,這些光線被包括在后續(xù)環(huán)境遮擋計算中。 如所示,具有起點454a和454b的AO光線450在它們去向交點440的路上與物體410a相交。這樣,表面420部分被物體410a遮擋,這些光線不被包括在后續(xù)環(huán)境遮擋計算中。 在一個實施例中,圖形引擎在環(huán)境遮擋計算中考慮所有AO光線,將"被包括"的AO
光線的數(shù)目除以"被包括的"和"被排除的"AO光線兩者的總數(shù),以生成覆蓋率。在替代實
施例中,圖形引擎在環(huán)境遮擋和/或遮暗計算中僅僅考慮"被包括的"AO光線。 圖5圖示了使用環(huán)境遮擋的真實感成像的方法的一個實施例。具體地,圖5圖示
了描繪由例如可以根據優(yōu)選實施例實現(xiàn)的圖1的系統(tǒng)100執(zhí)行的邏輯操作步驟的高級流程
圖500。通常,除非另外指明,否則諸如圖1的圖形引擎102之類的圖形引擎執(zhí)行該方法的步驟。 如塊505所示,處理開始,其中圖形引擎接收場景模型數(shù)據,該場景模型數(shù)據包括場景幾何模型和多個像素數(shù)據。在一個實施例中,多個像素數(shù)據中的一個或多個包括初級像素顏色。接下來,如塊510所示,圖形引擎選擇多個像素數(shù)據之一作為當前像素數(shù)據。
接下來,如塊515所示,圖形引擎基于當前像素數(shù)據生成主像素顏色。在一個實施例中,圖形引擎基于初級像素顏色生成主像素顏色。接下來,如塊520所示,圖形引擎基于當前像素數(shù)據生成主光線。對了清楚說明,在所示實施例中,圖形引擎每像素生成一個主光線。在替代實施例中,在對每個主光線的如下所述的一個或多個步驟之后,圖形引擎對每像素生成多個主光線。 接下來,如判定塊525所示,圖形引擎基于場景幾何模型確定主光線是否與場景中的物體相交。如果在塊525處主光線與場景中的物體相交,則處理沿著"是"分支繼續(xù)到塊530。 接下來,如塊530所示,圖形引擎基于主光線和物體的相交,確定交點P。接下來,
如塊535所示,圖形引擎基于主光線和物體的相交,確定表面法矢量N。 接下來,如塊540所示,圖形引擎基于主光線和物體的相交,確定主命中顏色(hitcolor)。接下來,如塊545所示,圖形引擎基于主命中顏色,修改主像素顏色。處理繼續(xù)到圖6的標記"A"。 圖6圖示了使用環(huán)境遮擋的真實感成像的方法的一個實施例。具體地,圖6圖示了描繪由例如可以根據優(yōu)選實施例實現(xiàn)的圖1的系統(tǒng)100執(zhí)行的邏輯操作步驟的高級流程圖600。通常,除非另外指明,否則諸如圖1的圖形引擎102之類的圖形引擎執(zhí)行該方法的步驟。 處理從標記"A"繼續(xù)到塊605。如塊605所示,圖形引擎基于交點P和表面法矢量N,生成多個環(huán)境遮擋(A0)光線,每個AO光線具有光線方向。 接下來,如塊610所示,圖形引擎將A0光線分為分組。接下來,如判定塊615所示,圖形引擎確定是否存在要處理的任何AO光線/分組。在第一次運行時,將有至少一個A0光線要處理。如果在判定塊615處存在要處理的A0光線/分組,則處理沿著"是"分支繼續(xù)到塊620。 接下來,如塊620所示,圖形引擎選擇至少一個A0光線/分組之一作為當前AO光線/分組。接下來,如塊625所示,圖形引擎反轉當前A0光線(或當前分組中的每個A0光線)的方向。接下來,如塊630所示,圖形引擎沿著當前A0光線的原始方向,改變源自交點P的AO光線,將起點0設為已知為場景邊界外部的點。 接下來,如塊635所示,圖形引擎設置最大AO光線穿行。在一個實施例中,最大光線穿行代表起點0和交點P之間的場景內距離。在替代實施例中,最大光線穿行代表HAS中場景邊界和交點P之間的節(jié)點數(shù)。 接下來,如塊640所示,圖形引擎沿著AO光線的方向使當前AO光線從其起點0向HAS的第一節(jié)點前進。接下來,如判定塊645所示,圖形引擎確定A0光線是否命中(hit)場景中的物體。如果在判定塊645處圖形引擎確定A0光線已經碰到場景中的物體,則處理沿著"是"分支繼續(xù)到塊650。如塊650所示,圖形引擎排除該AO光線,并且處理返回到標記"B",即判定塊615,其中圖形引擎確定是否存在任何另外的AO光線/分組要處理。
如果在判定塊645處圖形引擎確定A0光線沒有碰到場景中的物體(在當前節(jié)點),則處理沿著"否"分支繼續(xù)到判定塊655。如判定塊655所示,圖形引擎確定AO光線是否已經到達交點P。如果在判定塊655處,AO光線已經到達交點P,則處理沿著"是"分支繼續(xù)到塊660。 在一個實施例中,在判定塊655處,圖形引擎還確定A0光線是否行進了其最大穿行距離,并且如果是這樣,則認為AO光線已經到達了交點P。如塊660所示,圖形引擎包括AO光線,并且處理返回到標記"B",即判定塊615,其中圖形引擎確定是否存在任何另外的AO光線/分組要處理。 如果在判定塊655處,A0光線還未到達交點P,則處理沿著"否"分支繼續(xù)到塊665。如塊665所示,圖形引擎選擇下一 HAS節(jié)點作為當前HAS節(jié)點,并且處理返回塊640,其中圖形引擎使AO光線向當前HAS節(jié)點前進。 因此,如塊640至665所示,圖形引擎使每個AO光線從其起點朝向交點P前進到場景中。如果AO光線在去向交點的路上碰到物體,則圖形引擎排除該AO光線并選擇下一AO光線進行處理。如果AO光線在去向交點的路上未碰到物體,則圖形引擎包括該AO光線并選擇下一 AO光線進行處理。
如果在塊615處沒有更多的AO光線/分組(對于當前主光線交點),則處理沿著"否"分支繼續(xù)到圖7的標記"C"。 圖7圖示了使用環(huán)境遮擋的真實感成像的方法的一個實施例。具體地,圖7圖示了描繪由例如可以根據優(yōu)選實施例實現(xiàn)的圖1的系統(tǒng)100執(zhí)行的邏輯操作步驟的高級流程圖700。通常,除非另外指明,否則諸如圖1的圖形引擎102之類的圖形引擎執(zhí)行該方法的步驟。 處理從標記"C"繼續(xù)到塊705。如塊705所示,圖形引擎基于所包括的AO光線計算對于當前像素的AO覆蓋度。在替代實施例中,圖形引擎基于所包括的和所排除的AO光線兩者計算對于當前像素的AO覆蓋度。 接下來,如塊710所示,圖形引擎基于所計算的AO覆蓋度修改主像素顏色。接下來,如判定塊715所示,圖形引擎確定是否存在另外的像素和/或像素數(shù)據要處理。如果在判定塊1430處存在另外的像素要處理,則處理沿著"是"分支繼續(xù)到標記"D",返回圖5的塊510,其中圖形引擎選擇下一像素數(shù)據作為當前像素數(shù)據,并且處理如上所述繼續(xù)。
如果在塊525處主光線不與場景中的物體相交,則處理沿著"否"分支繼續(xù)到標記"E",其中處理繼續(xù)到如上所述的判定塊715。接下來,如塊720所示,圖形引擎存儲具有多個像素數(shù)據的場景模型數(shù)據。接下來,如塊725所示,顯示子系統(tǒng)基于多個像素數(shù)據生成用于顯示的圖像。 因此,與其他方法和系統(tǒng)相比,所公開的實施例提供了許多優(yōu)點。例如,即使在具有有限本地存儲器的系統(tǒng)中,在此描述的圖形引擎也可以提供改進的光線跟蹤性能。所公開的實施例還改進了可升級(scalable)以滿足期望的真實感質量和用于實施圖形引擎的具體系統(tǒng)的需求的環(huán)境遮擋性能。 如上所述,可以實踐在此所述的一個或多個實施例,或者另外在計算機系統(tǒng)中實現(xiàn)。通常,如在此使用的術語"計算機"是指任何自動計算機器。因而,術語"計算機"不僅包括諸如膝上型計算機、個人計算機、小型機和大型機之類的通用計算機,還包括諸如個人數(shù)字助理(PDA)、網絡使能的手持設備、因特網或網絡使能的移動電話之類的設備和其他合適的設備。圖8是提供圖示了可用來實踐在此所述的一個或多個實施例的示例計算機系統(tǒng)的細節(jié)的框圖。 具體地,圖8圖示了計算機系統(tǒng)800。計算機系統(tǒng)800包括計算機802。計算機802在其他方面是傳統(tǒng)的計算機,并包括至少一個處理器810。處理器810在其他方面是傳統(tǒng)的計算機處理器,并且可以包括單核、雙核中央處理單元(PU)、協(xié)同PU、附連PU或其他合適的處理器。 處理器810耦接到系統(tǒng)總線812??偩€812在其他方面是傳統(tǒng)的系統(tǒng)總線。如所示,計算機802的各種組件耦接到總線812。例如,計算機802還包括存儲器820,其通過總線812耦接到處理器810。存儲器820在其他方面是傳統(tǒng)的計算機主存儲器,并且可以包括例如隨機存取存儲器(RAM)。通常,存儲器820存儲應用822、操作系統(tǒng)824和存取功能826。 通常,應用822在其他方面是傳統(tǒng)的軟件程序應用,并且可以包括任意數(shù)量的典型程序,以及并入了本發(fā)明的一個或多個實施例的計算機程序。操作系統(tǒng)824在其他方面是傳統(tǒng)的操作系統(tǒng),并且可包括例如Unix、 AIX、 Li皿x、 Microsoft Windows 、 MacOS 和其他合適的操作系統(tǒng)。存取功能826在其他方面是傳統(tǒng)的存取功能,包括網絡連接功能,并且可被包括在操作系統(tǒng)824中。 計算機802還包括存儲器830。通常,存儲器830在其他方面是用于存儲數(shù)據的傳統(tǒng)設備和/或多個設備。如所示,存儲器830可包括硬盤832、閃存或其他易失性存儲器834和/或光學存儲設備836。本領域技術人員將理解,還可以采用其他存儲介質。
1/0接口 840也耦接到總線812。 I/O接口 840在其他方面?zhèn)鹘y(tǒng)的接口 。如所示,1/0接口 840耦接到計算機802外部的設備。具體地,1/0接口 840耦接到用戶輸入設備842和顯示設備844。輸入設備842在其他方面是傳統(tǒng)的輸入設備,并且可以包括例如鼠標、鍵盤、數(shù)字鍵區(qū)、觸摸敏感屏幕、麥克風、網絡攝像機和其他合適的輸入設備。顯示設備844在其他方面是傳統(tǒng)的顯示裝置,并且可以包括例如監(jiān)視器、LCD顯示器、GUI屏幕、文本屏幕、觸摸敏感屏幕、Braille顯示器和其他合適的顯示設備。 網絡適配器850也耦接到總線812。網絡適配器850在其他方面是傳統(tǒng)的網絡適配器,并且可包括例如無線、以太網、LAN、 WAN或其他合適的適配器。如所示,網絡適配器850可以將計算機802耦接到其他計算機和設備852。其他計算機和設備852在其他方面是在聯(lián)網環(huán)境中典型采用的傳統(tǒng)計算機和設備。本領域技術人員將理解,存在適合于計算機802和計算機系統(tǒng)800的許多其他聯(lián)網配置。 附圖中的流程圖和框示了根據本發(fā)明各種實施例的系統(tǒng)、方法和計算機程序產品的可能的實現(xiàn)方式的體系結構、功能性和操作。為此,流程圖或框圖中的每個塊可以代表模塊、片段或部分代碼,其包括用于實現(xiàn)指定邏輯功能的一個或多個可執(zhí)行指令。還應注意,在一些替換實現(xiàn)方式中,塊中注明的功能可不按照圖中注明的順序進行。例如,取決于所涉及的功能性,連續(xù)示出的兩個塊實際上可以基本同時執(zhí)行,或者有時可按相反順序執(zhí)行塊。還將注意,可以通過執(zhí)行指定功能或動作的專用的基于硬件的系統(tǒng)或專用硬件和計算機指令的組合來實現(xiàn)框圖和/或流程圖示中的每個塊以及框圖和/或流程圖示中的塊的組合。 將理解,可以按期望地將上面公開的以及其他特征和功能的變化或者其替代物組合為許多其他不同的系統(tǒng)或應用。此外,本領域技術人員可以繼續(xù)在其中進行各種目前不能預見或不可預期的替代、修改、變化或改進,它們也應被所附權利要求所包括。
權利要求
一種方法,包括接收場景模型數(shù)據,所述場景模型數(shù)據包括描述在場景中排列的物體的場景幾何模型和多個像素數(shù)據;選擇所述多個像素數(shù)據中的第一像素數(shù)據;基于所述第一像素數(shù)據生成主像素顏色;基于所述第一像素數(shù)據生成主光線;確定所述主光線是否與所述場景中的物體相交;如果所述主光線與所述場景中的物體相交,則確定交點P;基于相交的物體和交點P,確定表面法矢量N;基于交點P確定主命中顏色;基于所述主命中顏色修改主像素顏色;基于交點P和表面法矢量N,確定多個環(huán)境遮擋AO光線,每個AO光線具有方向D;對于每個AO光線,反轉AO光線方向D,并將AO光線起點O設置為場景外的點;使每個AO光線從AO光線起點向著交點P行進到場景中;如果AO光線在到達點P之前與物體相交,則從環(huán)境遮擋計算中排除該AO光線;如果AO光線在到達點P之前不與物體相交,則在環(huán)境遮擋計算中包括該AO光線;基于所包括的AO光線,估計環(huán)境遮擋;基于環(huán)境遮擋和主命中顏色,遮暗所述主像素顏色;以及基于像素數(shù)據的主像素顏色生成圖像。
2. 如權利要求1所述的方法,還包括對于每個AO光線設置最大穿行距離。
3. 如權利要求2所述的方法,其中所述穿行距離是AO光線起點和點P之間的距離。
4. 如權利要求1所述的方法,還包括將所述場景幾何模型組織為包括多個節(jié)點的分 級加速結構HAS。
5. 如權利要求4所述的方法,其中所述HAS是kd樹。
6. 如權利要求4所述的方法,其中所述HAS是包圍空間層級。
7. 如權利要求4所述的方法,其中使每個A0光線行進包括逐節(jié)點穿過HAS。
8 如權利要求1所述的方法,還包括將AO光線分為分組。
9 . 一種用于生成圖像的計算機系統(tǒng),包括用于實現(xiàn)權利要求1-8的任一方法的部件。
10. —種系統(tǒng),包括 圖像顯示器,耦接到顯示子系統(tǒng); 處理器,耦接到所述顯示子系統(tǒng),并被配置為接收場景模型數(shù)據,所述場景模型數(shù)據包括描述在場景中排列的物體的場景幾何模型 和多個像素數(shù)據;選擇所述多個像素數(shù)據中的第一像素數(shù)據; 基于所述第一像素數(shù)據生成主像素顏色; 基于所述第一像素數(shù)據生成主光線; 確定所述主光線是否與所述場景中的物體相交; 如果所述主光線與所述場景中的物體相交,則確定交點P ; 基于相交的物體和交點P,確定表面法矢量N ;基于交點P確定主命中顏色; 基于所述主命中顏色修改主像素顏色;基于交點P和表面法矢量N,確定多個環(huán)境遮擋AO光線,每個AO光線具有方向D ; 對于每個AO光線,反轉AO光線方向D,并將AO光線起點0設置為場景外的點; 使每個AO光線從AO光線起點向著交點P行進到場景中;如果AO光線在到達點P之前與物體相交,則從環(huán)境遮擋計算中排除該AO光線; 如果AO光線在到達點P之前不與物體相交,則在環(huán)境遮擋計算中包括該AO光線; 基于所包括的AO光線,估計環(huán)境遮擋; 基于環(huán)境遮擋和主命中顏色,遮暗所述主像素顏色;以及 基于像素數(shù)據的主像素顏色,生成圖像。
11. 如權利要求IO所述的系統(tǒng),其中所述處理器還被配置為對于每個AO光線設置最大 穿行距離。
12. 如權利要求IO所述的系統(tǒng),其中所述處理器還被配置為將所述場景幾何模型組織 為包括多個節(jié)點的分級加速結構HAS。
13. 如權利要求12所述的系統(tǒng),其中使每個AO光線行進包括逐節(jié)點穿過HAS。
全文摘要
接收場景模型數(shù)據,該場景模型數(shù)據包括描述在場景中排列的物體的場景幾何模型和多個像素數(shù)據。選擇多個像素數(shù)據中的第一像素數(shù)據。基于第一像素數(shù)據生成主像素顏色和主光線。如果主光線與場景中的物體相交,則確定交點P。基于相交的物體和交點P,確定表面法矢量N。基于交點P確定主命中顏色?;谥髅蓄伾薷闹飨袼仡伾;诮稽cP和表面法矢量N,產生多個環(huán)境遮擋(AO)光線,每個AO光線具有方向D。對于每個AO光線,反轉AO光線方向D,并將AO光線起點O設置為場景外的點。使每個AO光線從AO光線起點向著交點P行進到場景中。如果AO光線在到達點P之前與物體相交,則從環(huán)境遮擋計算中排除該AO光線。如果AO光線在到達點P之前不與物體相交,則在環(huán)境遮擋計算中包括該光線?;谒ǖ腁O光線,估計環(huán)境遮擋?;诃h(huán)境遮擋和主命中顏色,遮暗主像素顏色,并且基于像素數(shù)據的主像素顏色,生成圖像。
文檔編號G06T15/06GK101751690SQ20091022206
公開日2010年6月23日 申請日期2009年11月13日 優(yōu)先權日2008年12月5日
發(fā)明者喬奎因·馬德魯加, 巴里·L·邁納, 馬克·R·納特 申請人:國際商業(yè)機器公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
苍梧县| 巴东县| 玛曲县| 宁城县| 巩义市| 延津县| 蓬溪县| 乌鲁木齐县| 利津县| 航空| 和静县| 河津市| 揭西县| 陆河县| 旺苍县| 泰宁县| 元朗区| 双峰县| 新乡市| 保德县| 合作市| 四子王旗| 临桂县| 拉萨市| 永州市| 长岛县| 共和县| 故城县| 临桂县| 建平县| 巫溪县| 巢湖市| 韩城市| 石城县| 巴里| 湘阴县| 皋兰县| 云和县| 城固县| 梧州市| 尉氏县|