用于虛擬環(huán)境的間接照亮過程的制作方法
【專利摘要】描述了間接照亮3D虛擬環(huán)境中(比如,視頻游戲中)的物體的方法、系統(tǒng)、裝置和軟件。將環(huán)境的立方體貼圖和地面平面轉(zhuǎn)化為從物體位置描繪視圖的360度緯度-經(jīng)度貼圖。使用余弦卷積使所述緯度-經(jīng)度貼圖模糊,并然后為所述物體將所述模糊緯度-經(jīng)度貼圖轉(zhuǎn)換成局部立方體貼圖。然后,將所述局部立方體貼圖用于確定從所述環(huán)境投射在所述物體上的標(biāo)準(zhǔn)和反射間接照亮顏色。
【專利說明】用于虛擬環(huán)境的間接照亮過程
[0001]相關(guān)申請(qǐng)的交叉引用
[0002]本申請(qǐng)是2011年2月22日提交的美國(guó)專利申請(qǐng)?zhí)?3/032,026的繼續(xù)申請(qǐng)(代理人案卷號(hào)026340-009200US),為了所有目的其內(nèi)容以全文引用的方式并入本文。
【技術(shù)領(lǐng)域】
[0003]總的來說,本發(fā)明涉及用于三維(3D)環(huán)境的計(jì)算機(jī)圖形處理,包括對(duì)3D環(huán)境內(nèi)的物體的照亮和著色。具體而言,提供了適合對(duì)逼真視頻游戲中的物體上的間接光和陰影進(jìn)行實(shí)時(shí)渲染的方法、系統(tǒng)和裝置。
【背景技術(shù)】
[0004]近幾年,視頻游戲已變得更具沉浸感。其常常包含三維環(huán)境,玩家在三維環(huán)境內(nèi)探索、戰(zhàn)斗以及玩。這種3D環(huán)境允許玩家朝他或她本人選擇的方向看,從三個(gè)維度看到并操縱物體。
[0005]3D環(huán)境還用于電視、電影以及其它預(yù)錄制格式中。這種預(yù)錄制介質(zhì)可講故事、圖解記錄片或教育觀眾。3D環(huán)境的其它用途包括使工件、空間和布局可視化的計(jì)算機(jī)輔助設(shè)計(jì)(CAD)和計(jì)算機(jī)輔助制造(CAM)??傊?D環(huán)境在實(shí)時(shí)交互和預(yù)錄制非交互格式中常常是有用的。
[0006]對(duì)于最新的視頻游戲,消費(fèi)者常常要求并期望看起來逼真的3D虛擬環(huán)境。虛擬環(huán)境的逼真和復(fù)雜不僅可實(shí)現(xiàn)出于銷售目的而吸人眼球的絢麗多彩的圖像,還增加了游戲性。微妙的視覺線索(比如,與avatar面部的斑駁顏色混合并反射的天空的色調(diào))允許玩家無需研究手冊(cè)便可判斷表情并捕捉情感。這些從自然界得到的線索是直觀的。此外,幾乎察覺不到間接照亮線索可幫助警告來自背后或頭頂?shù)奈kU(xiǎn)。即便是在對(duì)其沒有任何先前經(jīng)驗(yàn)的世界中面對(duì)危險(xiǎn)時(shí),用戶可無意識(shí)地使用間接照亮調(diào)整自己以評(píng)定并對(duì)情況作出反應(yīng)。
[0007]盡管近幾年在處理能力和3D算法方面已經(jīng)有很大提高,但是傳送看起來逼真的3D圖像會(huì)是一個(gè)很艱難的過程。對(duì)于預(yù)錄制介質(zhì),比如電影和電視而言,不需要對(duì)3D環(huán)境進(jìn)行實(shí)時(shí)渲染??稍缭趯⑵滹@示給公眾之前的制作時(shí)對(duì)其進(jìn)行渲染。然而,對(duì)于觀眾在其內(nèi)選擇想要往哪看以及操縱什么的視頻游戲而言,3D環(huán)境常常要求實(shí)時(shí)渲染。有時(shí)據(jù)稱視頻游戲與電影相似,但是視頻游戲是逐幀實(shí)時(shí)渲染。
[0008]傳送逼真3D的高端方法(比如,射線跟蹤)需要強(qiáng)大的處理能力,以至利用如今的消費(fèi)者技術(shù),無法合理地將該方法用于實(shí)時(shí)渲染快動(dòng)作視頻游戲。低級(jí)渲染方法(其使用近似法和視覺特技)以處理能力換取質(zhì)量和逼真。然而,即便是低級(jí)渲染方法有時(shí)也努力以與當(dāng)代游戲系統(tǒng)相關(guān)的幀速率渲染3D環(huán)境。例如,在當(dāng)代視頻游戲系統(tǒng)中,每秒六十幀的幀速率(fps)常常是玩游戲順暢的標(biāo)準(zhǔn)。如果游戲設(shè)計(jì)者在設(shè)計(jì)算法時(shí)不小心,則被渲染物體可發(fā)生彈出或不連續(xù)的跳躍。當(dāng)在復(fù)雜的場(chǎng)景中一次渲染許多3D物體時(shí),這可尤為明顯。[0009]對(duì)立體3D顯示的渲染使對(duì)幀速率的要求基本加倍。必須對(duì)場(chǎng)景進(jìn)行兩次渲染,一次針對(duì)右眼,一次針對(duì)左眼。一百二十赫茲是3D顯示的共用頻率,因此可以每秒六十幀的速率渲染每一個(gè)眼睛視圖。
[0010]本領(lǐng)域存在對(duì)用于渲染視頻游戲和預(yù)錄制格式中的3D環(huán)境的更好更快的算法的需求。
【發(fā)明內(nèi)容】
[0011]總體而言,提供了以3D虛擬環(huán)境中的背景投射的間接光照亮物體的方法、系統(tǒng)和裝置。3D環(huán)境的‘世界視圖’可被格式化為全景360度的圖像,比如立方體貼圖。對(duì)于3D環(huán)境中的每一個(gè)物體,根據(jù)特定物體的視角/位置將世界視圖立方體貼圖從位置和格式上變換為3D視圖的緯度-經(jīng)度貼圖。然后,利用余弦(漫射)卷積使每一個(gè)物體的緯度-經(jīng)度貼圖模糊。得出的模糊緯度-經(jīng)度貼圖很好地近似從每個(gè)方向照射物體的所有間接光。然后,將得出的模糊緯度-經(jīng)度貼圖再轉(zhuǎn)換并降低采樣成與其各個(gè)物體相關(guān)的‘模糊’立方體貼圖。然后,將模糊立方體貼圖用于渲染其各個(gè)物體上的間接光。間接光可包括菲涅耳、粗糙反射光、正常光和其它間接光。
[0012]分離的地面平面圖像(比如描繪整個(gè)球場(chǎng)的那些)可立方體貼圖一起使用以創(chuàng)建緯度-經(jīng)度貼圖。地面平面圖像可用于渲染草、泥土和球場(chǎng)線,而立方體貼圖可用于渲染露天看臺(tái)、記分板和天空。
[0013]雖然本文的許多實(shí)例是在運(yùn)動(dòng)風(fēng)格視頻游戲的環(huán)境下示出球場(chǎng),但是應(yīng)理解本文示教的算法、系統(tǒng)和裝置適用于其它視頻游戲、電影、CAD程序和其它格式。
[0014]為了幫助從立方體貼圖至緯度-經(jīng)度貼圖的變換(然后再變換回來),變換向量矩陣被存儲(chǔ)顏色圖像。例如,在由歐幾里德坐標(biāo)(x、y、z)表示的三維空間中,特定像素的X-向量變換可由紅色表示,1-向量可由綠色表示,Z-向量可由藍(lán)色表示。
[0015]一些實(shí)施方案指向以間接光照亮虛擬環(huán)境中的物體的方法。該方法包括接收虛擬環(huán)境的立方體貼圖(其從中心位置描繪虛擬環(huán)境),接收物體在虛擬環(huán)境中的位置(物體位置與中心位置不同),使用至少一個(gè)與存儲(chǔ)器可操作地耦合的處理器將從中心位置描繪虛擬環(huán)境的立方體貼圖轉(zhuǎn)化為從物體位置描繪虛擬環(huán)境的緯度-經(jīng)度貼圖(其與物體相關(guān))。該方法還包括使用余弦漫射卷積使緯度-經(jīng)度貼圖模糊以創(chuàng)建模糊緯度-經(jīng)度貼圖,將模糊緯度-經(jīng)度貼圖轉(zhuǎn)換成模糊立方體貼圖(其與物體相關(guān)),并基于模糊立方體貼圖渲染對(duì)物體的間接照亮。
[0016]一些實(shí)施方案指向間接照亮虛擬環(huán)境中的物體的方法。該方法包括接收虛擬環(huán)境的立方體貼圖,接收物體在虛擬環(huán)境中的位置,基于立方體貼圖和物體位置使用至少一個(gè)與存儲(chǔ)器可操作地耦合的處理器從物體位置的角度生成緯度-經(jīng)度貼圖,對(duì)緯度-經(jīng)度貼圖進(jìn)行卷積以創(chuàng)建模糊緯度-經(jīng)度貼圖,并基于模糊緯度-經(jīng)度貼圖渲染對(duì)物體的間接照売。
[0017]該方法可進(jìn)一步包括將模糊緯度-經(jīng)度貼圖轉(zhuǎn)換成模糊立方體貼圖,其中渲染使用模糊立方體貼圖??蛇x地或除了使用模糊立方體貼圖,一些實(shí)施方案可使用球諧函數(shù)法(SHM)以渲染間接光。
[0018]其它實(shí)施方案涉及使用或存儲(chǔ)用于以上描述的方法的指令的機(jī)器可讀有形存儲(chǔ)介質(zhì)和計(jì)算機(jī)系統(tǒng)。
[0019]通過參考說明書的剩余部分及附圖可以進(jìn)一步理解本文公開并建議的實(shí)施方案的本質(zhì)和優(yōu)點(diǎn)。
【專利附圖】
【附圖說明】
[0020]圖1圖示了間接照亮物體的現(xiàn)有技術(shù)方法。
[0021]圖2圖示了根據(jù)實(shí)施方案的虛擬環(huán)境的世界視圖立方體貼圖。
[0022]圖3圖示了根據(jù)實(shí)施方案的虛擬環(huán)境的世界視圖地面平面圖像。
[0023]圖4圖示了根據(jù)實(shí)施方案的玩家在棒球場(chǎng)內(nèi)的位置。
[0024]圖5圖示了根據(jù)實(shí)施方案的從玩家的位置確定仰視圖。
[0025]圖6圖示了根據(jù)實(shí)施方案的從玩家的設(shè)置確定向下視圖。
[0026]圖7圖示了根據(jù)實(shí)施方案的緯度-經(jīng)度貼圖。
[0027]圖8圖示了根據(jù)實(shí)施方案的模糊緯度-經(jīng)度貼圖。
[0028]圖9圖示了根據(jù)實(shí)施方案的與玩家相關(guān)的立方體貼圖。
[0029]圖10圖示了根據(jù)實(shí)施方案的從局部立方體貼圖查找顏色。
[0030]圖11是根據(jù)實(shí)施方案的使用模型的法向量對(duì)連續(xù)間接光的3D渲染。
[0031]圖12是根據(jù)實(shí)施方案的利用菲涅爾準(zhǔn)則對(duì)圖11中的模型上的間接光澤能量的3D渲染。
[0032]圖13是根據(jù)實(shí)施方案的對(duì)圖11中的模型的3D渲染,包括間接光和反射。
[0033]圖14是圖示根據(jù)實(shí)施方案的過程的流程圖。
[0034]圖15是圖示根據(jù)實(shí)施方案的過程的流程圖。
[0035]圖16圖示了適合實(shí)現(xiàn)實(shí)施方案的計(jì)算機(jī)系統(tǒng)。
【具體實(shí)施方式】
[0036]總體而言,描述了以3D虛擬環(huán)境中的背景投射的間接光照亮物體的方法、系統(tǒng)和裝置。這可從環(huán)境中物體的角度給出實(shí)時(shí)反射的錯(cuò)覺,而無需從物體的位置對(duì)整個(gè)環(huán)境進(jìn)行渲染。通過將世界視圖立方體貼圖轉(zhuǎn)換成緯度-經(jīng)度貼圖的過程(使局部緯度-經(jīng)度貼圖模糊、將模糊緯度-經(jīng)度貼圖變成局部立方體貼圖,然后使用局部立方體貼圖照亮物體,該過程對(duì)于每一個(gè)物體來說都是局部性的)實(shí)現(xiàn)了對(duì)3D環(huán)境中的3D物體的間接照亮。
[0037]“立方體貼圖”是一種表示位置周圍的視圖的方式。立方體貼圖(有時(shí)稱為一種光探測(cè)器)包括表示位置周圍的視圖的貼圖,如六個(gè)面的立方體,雖然少于六個(gè)面或一些面空白的立方體貼圖也稱作立方體貼圖。對(duì)立方體貼圖的操作常常由圖形處理單元(GPU)中的基于硬件的快速算法支持,因此很容易且快速地操作。在鏡球或角貼圖中,使用立方體貼圖的立方體映射可比使用球體映射的圖像操作更快。有時(shí)可以說立方體貼圖與鏡球或角貼圖近似。
[0038]“地面平面圖像”(有時(shí)稱為“自上而下的視圖”)包括描繪地面的圖像。在某些情況下,立方體貼圖表示天空和周圍環(huán)境,而地面平面表示地面。當(dāng)一個(gè)人大部分時(shí)間在地面附近時(shí),地面平面圖像很容易獲得。
[0039]“緯度-經(jīng)度貼圖”是將水平和垂直尺寸映射到矩形圖像上的周圍視圖格式。緯度-經(jīng)度貼圖的方位(即,經(jīng)度)范圍通常在O至360度、-90至+270度,或-180至+180度之間。其仰角(即,緯度)范圍通常在-90至+90度之間。
[0040]術(shù)語“局部變化”包括反射(或間接光)基于物體在世界環(huán)境中的位置改變的概念。例如,在背景中,當(dāng)玩家avatar朝記分板跑時(shí),記分板在視圖中變大。記分板將其色調(diào)投射到玩家面向其的一面上。同時(shí),地面上的草、泥土和劃線將其顏色投射在玩家的鞋、褲子等上。
[0041]“間接照亮”物體所包括的可多于直接照亮物體。間接照亮可包括調(diào)整已被光源照亮的物體片段的顏色(包括灰度)。顏色調(diào)整可模仿從非光源投射的光。
[0042]直接照亮3D物體很平常,而間接照亮3D物體則為相對(duì)較先進(jìn)的技術(shù)。許多具有3D環(huán)境的視頻游戲省略了間接照亮效果,這是因?yàn)樵撔Ч蟮奶幚砟芰Τ33^了現(xiàn)有處理能力。然而,間接光可意味著看起來虛假的世界與看起來逼真的世界之間的差異。人眼可使用這種線索無意識(shí)地區(qū)分二者。
[0043]許多游戲采用從預(yù)計(jì)算立方體貼圖得出的預(yù)計(jì)算球諧函數(shù)矩陣。球諧函數(shù)矩陣包括紅色、綠色和藍(lán)色每一種顏色的一個(gè)16元素矩陣(S卩,4X4矩陣);因此,包括三個(gè)矩陣。預(yù)計(jì)算立方體貼圖,然后根據(jù)立方體貼圖預(yù)計(jì)算球諧函數(shù)矩陣。用在游戲中的正是球諧函數(shù)矩陣。
[0044]圖1圖示了照亮物體的現(xiàn)有技術(shù)方法。在3D環(huán)境100中,avatarlOl行走、擊球并繞體育館跑動(dòng)。當(dāng)avatar位于體育館中央時(shí),相比從周圍柱子反射的光,來自天空的光占主導(dǎo)。當(dāng)avatar接近體育館的一側(cè)時(shí),從最近的柱子反射的光在avatar面向最近的柱子的一面應(yīng)很明顯。同時(shí),在avatar身體的相對(duì)面上,來自天空的光應(yīng)更占主導(dǎo),這是因?yàn)榕cavatar在體育館中心時(shí)相比,在體育館相對(duì)側(cè)的柱子距離更遠(yuǎn)了。
[0045]為3D環(huán)境中的預(yù)定區(qū)域預(yù)計(jì)算了描繪對(duì)場(chǎng)景的各種照亮的立方體貼圖和球諧函數(shù)矩陣。這在游戲發(fā)展的過程中會(huì)發(fā)生,且結(jié)果與游戲圖形一起被存儲(chǔ)。距avatar最近的無論什么立方體貼圖位置均是用于間接照亮avatar。在圖中,avatarlOl距立方體貼圖位置103最近;因此與立方體貼圖103相關(guān)的球諧函數(shù)矩陣用于渲染avatarlOl。很明顯,這不會(huì)產(chǎn)生對(duì)avatar準(zhǔn)確逼真的照亮,這是因?yàn)閍vatarlOl與立方體貼圖103位于不同的位置。盡管可預(yù)計(jì)算更多立方體貼圖和球諧函數(shù)矩陣來提高逼真性,但是在訪問存儲(chǔ)器時(shí)這要花費(fèi)存儲(chǔ)器和處理器的時(shí)間。此外,在具有亮線或地面與草的界面明顯的場(chǎng)地上,玩家下面的間接光可與實(shí)際非常不同。
[0046]預(yù)計(jì)算的立方體貼圖/球諧函數(shù)矩陣解決方法對(duì)于變化的環(huán)境來說可能無法實(shí)行。例如,提供隨戶外比賽進(jìn)展而變化的氣候的視頻游戲在開始玩游戲之前可能不能預(yù)計(jì)算環(huán)境中的所有立方體貼圖和球諧函數(shù)矩陣。如果在玩游戲過程中云移動(dòng),則云投射的光可能不在預(yù)計(jì)算的立方體貼圖內(nèi)。
[0047]圖2圖示了根據(jù)實(shí)施方案的虛擬棒球場(chǎng)的立方體貼圖。立方體貼圖200具有六個(gè)正方形210、211、212、213、214、215,其從棒球場(chǎng)的中心描繪了底部、左邊、前面、后面、右邊、和頂部視圖。在一些正方形中,可看到露天看臺(tái)204從左邊至后面至右邊環(huán)繞。在其它正方形中,可看到記分板和棒球場(chǎng)光結(jié)構(gòu)205。在正方形215中,描繪了頭頂正上方開闊的天空206。天空206可具有云、鳥、軟式廣告飛船和其它背景物體。每當(dāng)天氣變化、云朵飄來,軟式飛艇滑過空中,或當(dāng)人群揮手時(shí),可重新計(jì)算立方體貼圖??稍诿恳痪只蛎恳粓?chǎng)比賽開始時(shí)改變立方體貼圖。
[0048]大致來看,左邊、前面、后面和右邊的正方形211、212、213和214的下半部分均為空白的。此外,后面的正方形210也是空白的。在示例性實(shí)施方案中,空白區(qū)域是那些被地面平面圖像覆蓋的區(qū)域。
[0049]圖3圖示了根據(jù)實(shí)施方案的虛擬環(huán)境的地面平面圖像。地面平面圖像300被空白區(qū)域317圍繞。該區(qū)域被立方體貼圖覆蓋。中心位置316 (其可在或不在棒球場(chǎng)的中心)是方便以全景視圖描述周圍棒球場(chǎng)的位置。立方體貼圖200 (圖2)可以說是棒球場(chǎng)從中心位置316的360度全景視圖。
[0050]地面平面圖像300具有棒球內(nèi)場(chǎng)318和外場(chǎng)319。除了其它細(xì)節(jié),棒球內(nèi)場(chǎng)包括投手丘320和本壘板321。
[0051]可對(duì)世界視圖立方體貼圖和地面平面圖像二者進(jìn)行對(duì)數(shù)編碼以保持高動(dòng)態(tài)范圍。例如,可以以下等式編碼顏色:
[0052](等式.1)Colorenc0ded= (1g10(color+0.101)+1)/3.0
[0053]圖4圖示了根據(jù)實(shí)施方案的玩家在棒球場(chǎng)內(nèi)的位置。擊球手422站在距中心位置316很遠(yuǎn)的本壘板321的后面。擊球手422的位置由位置向量423 (“位置“)指示。位置向量423指示玩家的量值(即,距離)和方向。
[0054]圖5圖示了根據(jù)實(shí)施方案的從玩家的位置確定仰視圖。立方體貼圖200與球形視圖524近似。圖中將球形視圖524繪制為半球以更好地圖示以下向量幾何。
[0055]擊球手422站在位置423 (相對(duì)于中心位置/原點(diǎn)316)。從擊球手位置422看到的天空顏色塊527與從中心位置316看到的相同天空顏色塊527相同。然而,向量方向不同。通過使用向量代數(shù)或其它方法,人們便可根據(jù)向量525和位置向量423確定向量526的方向。因此,向量525的方向被映射到向量526的方向。換句話說,當(dāng)一個(gè)人從擊球手的位置朝向量525的方向看時(shí),就等同于在世界視圖立方體貼圖的中心位置/原點(diǎn)朝向量526的方向看。與向量525和526對(duì)應(yīng)的方向向量可僅僅是單位向量。
[0056]圖6圖示了根據(jù)實(shí)施方案的從玩家的設(shè)置確定向下的視圖。在該方案中,有兩種潛在的顏色可供選擇用于映射:一種來自立方體貼圖,一種來自地面平面。
[0057]從擊球手的位置422看到的露天運(yùn)動(dòng)場(chǎng)的顏色塊630與從中心位置316看到的相同露天運(yùn)動(dòng)場(chǎng)的顏色塊630相同;然而,向量方向不同。人們可根據(jù)向量628和位置向量423確定向量629的方向。與圖5中的實(shí)例相似,向量628的方向被映射至向量629的方向。地面平面圖像提供不同的顏色。
[0058]從擊球手的位置422看到的地面顏色632很容易從地面平面圖像300和方向向量631找到。為了確定在示例性實(shí)施方案中使用哪種顏色,使用了距玩家最近的點(diǎn)。因此,使用了顏色630而非顏色632。其它實(shí)施方案使用平均顏色或其它的顏色混合。
[0059]使用上述方法,可將從擊球手的位置看到的360度全景視圖映射到玩家位置的局部立方體貼圖。的確,可針對(duì)反射等這么做。然而,間接光自然模糊,立方體貼圖具有可引起模糊算法問題的間斷。例如,如果一個(gè)人僅僅要逐一使立方體貼圖的每一個(gè)面模糊,則靠近立方體的第一個(gè)面的暗特征將不會(huì)有助于立方體的相鄰面的模糊。在示例性實(shí)施方案中,直接將360度全景視圖映射至緯度-經(jīng)度貼圖。
[0060]為了幫助從立方體貼圖至緯度-經(jīng)度貼圖的變換,變換向量矩陣被存儲(chǔ)為紅色-綠色-藍(lán)色(RGB)格式的顏色圖像。例如,在由歐幾里德坐標(biāo)(x、y、z)表示的三維空間中,特定像素的X-向量變換可由紅色表示,y_向量可由綠色表示,Z-向量可由藍(lán)色表示。由于圖形處理器單元很容易操縱并存儲(chǔ)圖像,因此這是一種存儲(chǔ)變換矩陣的方便方式。
[0061]圖7圖示了根據(jù)實(shí)施方案的緯度-經(jīng)度貼圖。緯度-經(jīng)度貼圖700是通過使用上述用于在世界內(nèi)平移位置的技術(shù)從世界視圖立方體貼圖200 (圖2)和地面平面圖像300(圖3)映射向量生成的。緯度-經(jīng)度貼圖示出了擊球手位置周圍的360度方位視圖。應(yīng)注意,僅零度方位的左邊可見露天運(yùn)動(dòng)場(chǎng)的本壘板321和光結(jié)構(gòu)205,露天看臺(tái)204在擊球手的后面環(huán)繞-180至+180度。
[0062]通過余弦衰減模糊著色器對(duì)緯度-經(jīng)度貼圖700進(jìn)行余弦(漫射)卷積使其模糊。對(duì)于模糊算法,將左邊緣和右邊緣設(shè)置為“包裹”,將頂部和底部邊緣設(shè)置為“鏡像”?!R像’模式充分近似對(duì)頂部或底部上范圍之外的位置(在每一個(gè)卷積的瞬時(shí)毯狀區(qū)域內(nèi))的檢查,并利用包裹對(duì)偏向左邊或右邊的位置增加180度的偏移。緯度-經(jīng)度貼圖本身可重寫,或可寫新的緯度-經(jīng)度貼圖。
[0063]圖8圖示了根據(jù)實(shí)施方案的模糊緯度-經(jīng)度貼圖。緯度-經(jīng)度貼圖800是圖7中的緯度-經(jīng)度貼圖700的模糊版。除去了特征,其更像處于真實(shí)的間接照亮狀況。緯度-經(jīng)度貼圖800很好地近似了從每一個(gè)方向照射人物的間接照亮。緯度-經(jīng)度貼圖800被采樣成降低采樣的模糊立方體貼圖,其每一個(gè)面上僅有8X8個(gè)像素。
[0064]圖9圖示了根據(jù)實(shí)施方案的與玩家相關(guān)的立方體貼圖。在擊球手位置示出了立方體貼圖933 (從緯度-經(jīng)度貼圖800 (圖8)形成的降低采樣的立方體貼圖)。這僅僅是為了說明;在該位置并未有立方體被渲染。擊球手的立方體貼圖示出了所有來自天空、周圍的露天運(yùn)動(dòng)場(chǎng)和地面的投到擊球手身上的間接顏色。
[0065]為了說明,其它玩家的立方體貼圖934在其各自的位置示出。在實(shí)施方案中,為場(chǎng)地上的每一個(gè)玩家生成了模糊立方體貼圖。在某些情況下,可為玩家的各種部位(比如,玩家的臉、襯衫和頭盔)生成單獨(dú)的模糊立方體貼圖。根據(jù)應(yīng)用,一些立方體貼圖每一個(gè)面上的像素可比其它立方體貼圖的像素少。例如,擊球手的有光澤的塑料護(hù)脛可使用每一個(gè)面上均具有許多像素的立方體貼圖,這是因?yàn)槠錇楦叨如R反射,而擊球手的制服可使用具有相對(duì)較少像素的立方體貼圖,這是因?yàn)槠湎鄬?duì)較粗糙且非鏡面反射(即,漫射)。為了獲得看起來逼真的反射,將被著色的片段可對(duì)原始的立方體貼圖或地面平面進(jìn)行采樣。
[0066]只要玩家在其位置的幾英尺范圍內(nèi),便可使用每一個(gè)玩家的局部模糊立方體貼圖(其是根據(jù)玩家的位置計(jì)算的)。如果玩家移動(dòng)超過幾英寸,比如跑動(dòng)接球,則可為玩家計(jì)算新的立方體貼圖。在一些實(shí)施方案中,為每一幀生成立方體貼圖直到玩家返回至休息狀態(tài),比如限定為僅在半英尺的半徑范圍內(nèi)移動(dòng)的狀態(tài)??杀4嬖谀承┪恢玫牧⒎襟w貼圖。例如,可保存在擊球手位置的立方體貼圖以便每一個(gè)接連的擊球手均可再次使用。然而,在一些實(shí)施方案中,可每隔幾幀重新計(jì)算與擊球手相關(guān)的立方體貼圖以正確地為其走動(dòng)渲染間接光。
[0067]圖10圖示了根據(jù)實(shí)施方案的從局部立方體貼圖查找顏色。給定虛擬照相機(jī)1035的視角1035,擊球手422面部的片段1039的反射間接光澤能量/顏色是通過確定反射向量1037 (其與照相機(jī)-片段向量1036具有方向相反大小相等的角度)而確定的。反射向量1037用于從局部立方體貼圖1040查找顏色1038。顏色1038乘以菲涅爾準(zhǔn)則給出玩家的適當(dāng)間接照亮顏色的元素。
[0068]相似地,法向量1042 (其從擊球手422面部的片段1041垂直地發(fā)出)用于從局部立方體貼圖查找另一種顏色。法線和光澤能量顏色的混合以及擊球手的皮膚顏色、各種光源等用于渲染擊球手的面部。
[0069]圖11是根據(jù)實(shí)施方案的使用模型的法向量對(duì)連續(xù)間接光的3D渲染。法向量,比如法向量1042 (圖10)用于從各個(gè)方向查找顏色。該圖僅示出與法向量相關(guān)的顏色(灰度模式)。
[0070]圖12是根據(jù)實(shí)施方案的利用菲涅爾準(zhǔn)則對(duì)圖11中的模型上的間接光澤能量的3D渲染。反射向量,比如反射向量1037 (圖10)用于渲染擊球手。該圖僅不出與反射向量相關(guān)的顏色(灰度模式)。應(yīng)注意,掠反射更顯著的模型邊緣周圍有更多反射光。
[0071]圖13是根據(jù)實(shí)施方案的對(duì)圖11中的模型的最終3D渲染,包括間接光和反射。如果仔細(xì)看,可看到接近擊球手頭盔前面的第一壘線的反射。
[0072]圖14是圖示根據(jù)一個(gè)實(shí)施方案的過程1400的流程圖。在操作1401,接收虛擬環(huán)境的立方體貼圖,該立方體貼圖從中心位置描繪虛擬環(huán)境。在操作1402,接收物體在虛擬環(huán)境中的位置,該物體位置與中心位置不同。在操作1403,使用至少一個(gè)與存儲(chǔ)器可操作地耦合的處理器將從中心位置描繪虛擬環(huán)境的立方體貼圖轉(zhuǎn)化為從物體位置描繪虛擬環(huán)境的緯度-經(jīng)度貼圖,該緯度-經(jīng)度貼圖與物體相關(guān)。在操作1404,使用余弦漫射卷積使緯度-經(jīng)度貼圖模糊以創(chuàng)建模糊緯度-經(jīng)度貼圖。在操作1405,將模糊緯度-經(jīng)度貼圖轉(zhuǎn)換為模糊立方體貼圖,該模糊立方體貼圖與物體相關(guān)。在操作1406,基于模糊立方體貼圖渲染對(duì)物體的間接照亮。
[0073]圖15是圖示根據(jù)實(shí)施方案的過程1500的流程圖。在操作1501,接收虛擬環(huán)境的立方體貼圖。在操作1502,接收物體在虛擬環(huán)境中的位置。在操作1503,基于立方體貼圖和物體位置使用至少一個(gè)與存儲(chǔ)器可操作地耦合的處理器從物體位置的角度生成緯度-經(jīng)度貼圖。在操作1504,對(duì)緯度-經(jīng)度貼圖進(jìn)行卷積以創(chuàng)建模糊緯度-經(jīng)度貼圖。在操作1505,將模糊緯度-經(jīng)度貼圖轉(zhuǎn)換為模糊立方體貼圖。卷積和/或轉(zhuǎn)換可重寫現(xiàn)有的緯度-經(jīng)度貼圖或在其它存儲(chǔ)器中創(chuàng)建新的貼圖。在操作1506,基于模糊緯度-經(jīng)度貼圖渲染對(duì)物體的間接照亮,其中渲染使用模糊立方體貼圖。
[0074]可按以上給出的順序或適用的不同順序進(jìn)行操作??墒蛊湓谟?jì)算機(jī)或其它機(jī)器內(nèi)自動(dòng)運(yùn)行,或其可被編碼在軟件、固件中,或被硬編碼為機(jī)器可讀指令并通過可執(zhí)行該指令的一個(gè)或多個(gè)處理器運(yùn)行。
[0075]圖16圖示了根據(jù)各種實(shí)施方案的適合執(zhí)行裝置的硬件系統(tǒng)的實(shí)例。該框圖圖示了適合實(shí)踐本發(fā)明的實(shí)施方案的計(jì)算機(jī)系統(tǒng)1600,比如個(gè)人計(jì)算機(jī)、視頻游戲控制臺(tái)和關(guān)聯(lián)的顯示器、移動(dòng)裝置、個(gè)人數(shù)字助理或其它數(shù)字裝置。計(jì)算機(jī)系統(tǒng)1600包括用于運(yùn)行軟件應(yīng)用程序及視需要運(yùn)行操作系統(tǒng)的中央處理器(CPU) 1605。CPU1605可由一個(gè)或多個(gè)同質(zhì)或異質(zhì)處理內(nèi)核組成。存儲(chǔ)器1610存儲(chǔ)供CPU1605使用的應(yīng)用程序和數(shù)據(jù)。存儲(chǔ)器1615為應(yīng)用程序和數(shù)據(jù)提供非易失性存儲(chǔ)器和其它計(jì)算機(jī)可讀介質(zhì),且可包括固定磁盤驅(qū)動(dòng)器、可移動(dòng)磁盤驅(qū)動(dòng)器、閃速存儲(chǔ)裝置和⑶-ROM、DVD-ROM、藍(lán)光、HD-DVD或其它光存儲(chǔ)裝置,以及信號(hào)傳輸和存儲(chǔ)介質(zhì)。用戶輸入裝置1620將用戶輸入從一個(gè)或多個(gè)用戶傳遞至計(jì)算機(jī)系統(tǒng)1600,用戶輸入裝置的實(shí)例可包括鍵盤、鼠標(biāo)、操縱桿、觸摸板、觸摸屏、靜態(tài)照相機(jī)或攝像機(jī),和/或麥克風(fēng)。網(wǎng)絡(luò)接口 1625允許計(jì)算機(jī)系統(tǒng)1600通過電子連通網(wǎng)絡(luò)與其它計(jì)算機(jī)系統(tǒng)通信,且可包括通過局域網(wǎng)和廣域網(wǎng),比如因特網(wǎng)的有線或無線通信。音頻處理器1630適于根據(jù)CPU1605、存儲(chǔ)器1610和/或存儲(chǔ)器1615提供的指令和/或數(shù)據(jù)生成模擬或數(shù)字音頻輸出。計(jì)算機(jī)系統(tǒng)1600的組件,包括CPU1605、存儲(chǔ)器1610、數(shù)據(jù)存儲(chǔ)器1615、用戶輸入裝置1620、網(wǎng)絡(luò)接口 1625和音頻處理器1630通過一個(gè)或多個(gè)數(shù)據(jù)總線1635連接。
[0076]圖形子系統(tǒng)1640還與數(shù)據(jù)總線1635和計(jì)算機(jī)系統(tǒng)1600的組件連接。圖形子系統(tǒng)1640包括圖形處理單元(GPU) 1645和圖形存儲(chǔ)器1650。圖形存儲(chǔ)器1650包括用于存儲(chǔ)輸出圖像中每一個(gè)像素的象素?cái)?shù)據(jù)的存儲(chǔ)顯示存儲(chǔ)器(例如,幀緩沖器)。圖形存儲(chǔ)器1650可與GPU1645集成在同一裝置中,可作為單獨(dú)的裝置與GPU1645連接,和/或在存儲(chǔ)器1610內(nèi)執(zhí)行。象素?cái)?shù)據(jù)可直接從CPU1605提供至圖形存儲(chǔ)器1650??蛇x地,CPU1605為GPU1645提供限定所期望的輸出圖像的數(shù)據(jù)和/或指令,GPU1645根據(jù)該數(shù)據(jù)和/或指令生成一個(gè)或多個(gè)輸出圖像的象素?cái)?shù)據(jù)。限定所期望的輸出圖像的數(shù)據(jù)和/或指令可儲(chǔ)存于存儲(chǔ)器1610和/或圖形存儲(chǔ)器1650中。在實(shí)施方案中,GPU1645包括3D渲染能力,其用于根據(jù)限定場(chǎng)景的幾何形狀、照亮、著色、紋理、運(yùn)動(dòng)和/或照相機(jī)參數(shù)的指令和數(shù)據(jù)生成輸出圖像的象素?cái)?shù)據(jù)。GPU1645還可包括一個(gè)或多個(gè)能夠執(zhí)行著色器程序的可編程執(zhí)行單元。
[0077]圖形子系統(tǒng)1640周期性地從圖形存儲(chǔ)器1650輸出將要在顯示裝置1655上顯示的圖像的象素?cái)?shù)據(jù)。顯示裝置1655可以是任何能夠顯示視覺信息以回應(yīng)來自計(jì)算機(jī)系統(tǒng)1600的信號(hào)的裝置,包括CRT、IXD、等離子體和OLED顯示器。計(jì)算機(jī)系統(tǒng)1600可為顯示裝置1655提供模擬或數(shù)字信號(hào)。
[0078]根據(jù)各種實(shí)施方案,CPU1605為具有一個(gè)或多個(gè)處理內(nèi)核的通用微處理器??墒褂靡粋€(gè)或多個(gè)具有微處理器體系結(jié)構(gòu)(其特別適合高度平行和計(jì)算密集型應(yīng)用,比如媒體和交互式娛樂應(yīng)用)的CPU1605實(shí)現(xiàn)進(jìn)一步的實(shí)施方案。
[0079]系統(tǒng)組件可通過網(wǎng)絡(luò)連接,在不同實(shí)施方案中其可以是以下的任何組合:因特網(wǎng)、IP網(wǎng)絡(luò)、內(nèi)聯(lián)網(wǎng)、廣域網(wǎng)("WAN")、局域網(wǎng)("LAN")、虛擬私人網(wǎng)絡(luò)("VPN")、公共交換電話網(wǎng)("PSTN"),或任何其它類型的支持本文描述的裝置之間的數(shù)據(jù)通信的網(wǎng)絡(luò)。網(wǎng)絡(luò)可包括有線和無線連接,包括光鏈路。根據(jù)本公開,對(duì)于本領(lǐng)域中的技術(shù)人員而言,許多其它實(shí)例是可能的且明顯的。在本文的討論中,可特別指定或不指定網(wǎng)絡(luò)。
[0080]在前述說明書中,結(jié)合本發(fā)明的具體實(shí)施方案描述了本發(fā)明,但是本領(lǐng)域中的技術(shù)人員將認(rèn)識(shí)到,本發(fā)明并不局限于此。本發(fā)明的上述各種特征和方面可單獨(dú)使用或結(jié)合使用。進(jìn)一步地,在不脫離本說明書更廣泛的精神和范圍的情況下,本發(fā)明能夠應(yīng)用于除本文描述的環(huán)境和應(yīng)用之外的許多環(huán)境和應(yīng)用中。因此,說明書和附圖應(yīng)該理解為說明性而非限制性的。
[0081]應(yīng)注意,以上討論的方法、系統(tǒng)和裝置僅作為實(shí)例。必需強(qiáng)調(diào)的是,各種實(shí)施方案可酌情省略、替代或增加各種流程或組件。例如,應(yīng)理解,在可選的實(shí)施方案中,可按與所描述的順序不同的順序執(zhí)行該方法,且可增加、省略或組合各種步驟。此外,針對(duì)某些實(shí)施方案描述的特征可結(jié)合在各種其它實(shí)施方案中。實(shí)施方案的不同方面和元件可以相似的方式組合。此外,應(yīng)強(qiáng)調(diào),技術(shù)會(huì)發(fā)展,因此很多元件為實(shí)例,不應(yīng)被解釋為限制發(fā)明的范圍。
[0082]在描述中,給出了具體細(xì)節(jié)以提供對(duì)實(shí)施方案的全面理解。然而,本領(lǐng)域的一個(gè)普通技術(shù)人員將理解,可以在沒有這些具體細(xì)節(jié)的情況下實(shí)施這些實(shí)施方案。例如,為了避免使實(shí)施方案模糊不清,示出的公知電路、過程、算法、結(jié)構(gòu)和技術(shù)不包括不必要的細(xì)節(jié)。
[0083]此外,應(yīng)注意,可將實(shí)施方案描述為以流程圖或框圖表示的過程。盡管每一個(gè)可將操作描述為順序性過程,然而也可平行或同時(shí)實(shí)施所述操作中的許多操作。此外,可重新排列操作順序。過程可具有圖中并未包括的附加步驟。
[0084]此外,如本文所公開的那樣,術(shù)語“存儲(chǔ)器”或“存儲(chǔ)單元”可表示一個(gè)或多個(gè)用于存儲(chǔ)數(shù)據(jù)的裝置,包括只讀存儲(chǔ)器(ROM)、隨機(jī)存取存儲(chǔ)器(RAM)、磁RAM、磁芯存儲(chǔ)器、磁盤存儲(chǔ)介質(zhì)、光存儲(chǔ)介質(zhì)、閃速存儲(chǔ)裝置,或其它用于存儲(chǔ)信息的計(jì)算機(jī)可讀介質(zhì)。術(shù)語“計(jì)算機(jī)可讀介質(zhì)”包括但不限于便攜式或固定存儲(chǔ)裝置、光存儲(chǔ)裝置、無線通道、SIM卡、其它智能卡,和各種其它能夠存儲(chǔ)、包含或攜帶指令或數(shù)據(jù)的介質(zhì)。
[0085]此外,實(shí)施方案可通過硬件、軟件、固件、中間件、微代碼、硬件描述語言或其任意組合來實(shí)現(xiàn)。當(dāng)在軟件、固件、中間件或微代碼中執(zhí)行時(shí),執(zhí)行必要任務(wù)的程序代碼或代碼段可儲(chǔ)存于計(jì)算機(jī)可讀介質(zhì),比如存儲(chǔ)介質(zhì)中。處理器可執(zhí)行必要任務(wù)。
[0086]已描述了一些實(shí)施方案,本領(lǐng)域的那些技術(shù)人員將認(rèn)識(shí)到在不脫離本發(fā)明的精神的情況下,可使用各種修改、可選構(gòu)造和等效物。例如,上述元件可僅僅是較大系統(tǒng)的組件,其中其它規(guī)則可優(yōu)先于本發(fā)明的應(yīng)用或修改本發(fā)明的應(yīng)用。此外,許多步驟可在考慮上述元件之前、過程中或之后進(jìn)行。因此,以上描述不應(yīng)被認(rèn)為是限制本發(fā)明的范圍。
【權(quán)利要求】
1.一種以間接光照亮虛擬環(huán)境中的物體的方法,所述方法包括: 接收虛擬環(huán)境的立方體貼圖,所述立方體貼圖從中心位置描繪所述虛擬環(huán)境; 接收物體在所述虛擬環(huán)境中的位置,所述物體位置與所述中心位置不同; 使用至少一個(gè)與存儲(chǔ)器可操作地耦合的處理器將從中心位置描繪所述虛擬環(huán)境的所述立方體貼圖轉(zhuǎn)化為從所述物體位置描繪所述虛擬環(huán)境的緯度-經(jīng)度貼圖,所述緯度-經(jīng)度貼圖與所述物體相關(guān); 使用余弦漫射卷積使所述緯度-經(jīng)度貼圖模糊以創(chuàng)建模糊緯度-經(jīng)度貼圖; 將所述模糊緯度-經(jīng)度貼圖轉(zhuǎn)換為模糊立方體貼圖,所述模糊立方體貼圖與所述物體相關(guān);以及 基于所述模糊立方體貼圖渲染對(duì)所述物體的間接照亮。
2.一種間接照亮虛擬環(huán)境中的物體的方法,所述方法包括: 接收虛擬環(huán)境的立方體貼圖; 接收物體在所述虛擬環(huán)境中的位置; 基于所述立方體貼圖和所述物體位置使用至少一個(gè)與存儲(chǔ)器可操作地耦合的處理器從所述物體位置的角度生成緯度-經(jīng)度貼圖; 使所述緯度-經(jīng)度貼圖模糊以創(chuàng)建模糊緯度-經(jīng)度貼圖;以及 基于所述模糊緯度-經(jīng)度貼圖渲染對(duì)所述物體的間接照亮。
3.根據(jù)權(quán)利要求2所述的方法,其還包括: 將所述模糊緯度-經(jīng)度貼圖轉(zhuǎn)換成模糊立方體貼圖,其中所述渲染使用所述模糊立方體貼圖。
4.根據(jù)權(quán)利要求3所述的方法,其還包括: 確定所述物體的片段的表面法線方向向量; 使用所述表面法線方向向量從所述模糊立方體貼圖查找顏色;以及 基于所述查找的顏色渲染所述物體片段。
5.根據(jù)權(quán)利要求3所述的方法,其還包括: 確定所述物體的片段的反射方向向量,所述反射向量基于照相機(jī)相對(duì)于所述片段的位置; 使用所述反射方向向量從所述模糊立方體貼圖查找顏色;以及 基于所述查找的顏色渲染所述物體片段。
6.根據(jù)權(quán)利要求2所述的方法,其還包括: 將變換向量的矩陣編碼為圖像, 其中生成所述緯度-經(jīng)度貼圖包括使用所述編碼的變換向量的圖像將所述虛擬環(huán)境的所述立方體貼圖中的像素變換為所述緯度-經(jīng)度貼圖中的像素。
7.根據(jù)權(quán)利要求2所述的方法,其還包括: 接收所述虛擬環(huán)境的地面平面圖像, 其中生成所述緯度-經(jīng)度貼圖是基于所述地面平面圖像。
8.根據(jù)權(quán)利要求7所述的方法,其還包括: 對(duì)所述虛擬環(huán)境的所述立方體貼圖和所述地面平面圖像進(jìn)行對(duì)數(shù)編碼, 從而保留聞動(dòng) 態(tài)范圍。
9.根據(jù)權(quán)利要求2所述的方法,其中所述模糊包括應(yīng)用余弦漫射卷積。
10.根據(jù)權(quán)利要求9所述的方法,其中在垂直通道和水平通道中應(yīng)用所述余弦漫射卷積。
11.根據(jù)權(quán)利要求2所述的方法,其中所述物體為玩家avatar。
12.根據(jù)權(quán)利要求2所述的方法,其中所述虛擬環(huán)境包括運(yùn)動(dòng)游戲場(chǎng)。
13.根據(jù)權(quán)利要求2所述的方法,其中渲染間接照亮包括渲染正常和反射的菲涅爾準(zhǔn)則調(diào)整光。
14.根據(jù)權(quán)利要求2所述的方法,其中所述立方體貼圖近似鏡球貼圖。
15.根據(jù)權(quán)利要求2所述的方法,其中按所示順序執(zhí)行操作。
16.根據(jù)權(quán)利要求2所述的方法,其中每一個(gè)操作由所述至少一個(gè)與所述存儲(chǔ)器可操作地耦合的處理器執(zhí)行。
17.一種機(jī)器可讀有形存儲(chǔ)介質(zhì),其包含指示用于使一個(gè)或多個(gè)機(jī)器執(zhí)行權(quán)利要求2所述的操作的指令的信息。
18.一種計(jì)算機(jī)系統(tǒng),其執(zhí)行計(jì)算機(jī)程序中的指令,所述計(jì)算機(jī)程序指令包括用于執(zhí)行權(quán)利要求2所述的操作的程序代碼。
19.一種機(jī)器可讀有形介質(zhì),其包含指示用于使一個(gè)或多個(gè)機(jī)器執(zhí)行操作的指令的信息,所述操作包括: 接收虛擬環(huán)境的立方體貼圖; 接收物體在所述虛擬環(huán)境中的位置; 基于所述立方體貼圖和所述物體位置從所述物體位置的角度生成緯度-經(jīng)度貼圖; 使所述緯度-經(jīng)度貼圖模糊以創(chuàng)建模糊緯度-經(jīng)度貼圖;以及 基于所述模糊緯度-經(jīng)度貼圖渲染對(duì)所述物體的間接照亮。
20.根據(jù)權(quán)利要求19所述的介質(zhì),其還包括指令,所述指令用于: 將所述模糊緯度-經(jīng)度貼圖轉(zhuǎn)換成模糊立方體貼圖,其中所述渲染使用所述模糊立方體貼圖。
【文檔編號(hào)】G06T15/04GK103635939SQ201180067977
【公開日】2014年3月12日 申請(qǐng)日期:2011年2月28日 優(yōu)先權(quán)日:2011年2月22日
【發(fā)明者】P.T.黑格 申請(qǐng)人:索尼電腦娛樂美國(guó)公司