專利名稱:Gpu并行光線追蹤渲染方法
技術(shù)領(lǐng)域:
本發(fā)明屬于動畫制作領(lǐng)域,涉及ー種GPU并行光線追蹤渲染方法。
背景技術(shù):
真實感動畫需要模擬光線在場景中進行傳播所發(fā)生的各種物理現(xiàn)象,如多次的反射、折射、投影等。這不僅需要對場景中各種物體的幾何屬性和材質(zhì)屬性的精確描述,還需進行多次反射、折射帶來的極其復(fù)雜的求解計算,這使得渲染一幅真實感圖像需要很長的時間,圖形學(xué)領(lǐng)域的很多研究都集中在如何更好地實現(xiàn)全局光照算法,在很短的時間內(nèi)生成高質(zhì)量的圖像上。
在三維數(shù)字動畫制作過程中,渲染是一個及其重要的環(huán)節(jié),它對產(chǎn)品的質(zhì)量有著至關(guān)重要的影響。以往的渲染方法,如光柵渲染,有著很多“先天不足”的問題,在細節(jié)渲染上可能存在嚴重的失真、無法簡單地實現(xiàn)全局光照、無法繪制出準確細膩的陰影效果等問題,而光線跟蹤能方便地模擬生成復(fù)雜的光照效果,生成高質(zhì)量的圖像。但光線跟蹤算法的計算開銷較大,妨礙了其應(yīng)用效率。
發(fā)明內(nèi)容
本發(fā)明所要解決的問題在于提出ー種GPU并行光線追蹤渲染方法,從而提高了渲染速度,并且使渲染光影效果逼真。本方法采用空間位和GPU并行方法加速光線追蹤的速度,能渲染出最接近現(xiàn)實、細節(jié)最細膩逼真的畫面,且計算速度快,可以在實踐中得到很好地應(yīng)用,包括如下步驟
對文件場景中的空間劃分空間位;
計算每個物體的最小包圍立方體;
計算包圍立方體經(jīng)過的空間位;
計算經(jīng)過每個像素點的逆向光線;
計算與光線相交的空間位,從而檢索到相關(guān)的物體;
計算檢索的物體與光線是否相交;
根據(jù)相交情況,生成反射光、折射光;
最后采用著色函數(shù)計算每個像素點的顔色。本發(fā)明所述的對文件場景中的空間劃分空間位,其特征在干,將空間分割為WXNXP個長寬高相等的空間位,其中W為X軸向分段數(shù),N為y軸分段數(shù),P為z軸方向分段數(shù),并為每個空間位建立模型列表;
本發(fā)明所述的計算每個物體的最小包圍立方體,其特征在于,根據(jù)物體在世界坐標系中XYZ的坐標范圍,根據(jù)得到的坐標范圍,計算出能夠?qū)⑽矬w包圍進去的ー個最小立方體;本發(fā)明所述的計算包圍立方體經(jīng)過的空間位,其特征在于,通過包圍立方體的8個頂點坐標,找到對應(yīng)的8個空間位,再找到其包圍的其它空間位;這些空間位即為物體經(jīng)過空間位,但物體本身和最小包圍立方體之間存在空間范圍的差異,為減少工作的計算量,將此差異進行忽略;
本發(fā)明所述的計算與光線相交的空間位,從而檢索到相關(guān)的物體,其特征在于,計算光線與這些物體的相交情況,并記錄與光線相交的最近點坐標,并生成反射光、折射光,迭代計算;
本發(fā)明所述的采用著色函數(shù)計算每個像素點的顔色,其特征在于,使用最近物體和最近值T來計算著色函數(shù),以著色函數(shù)的結(jié)果填充該像素。本發(fā)明不僅能夠生成逼真細膩的渲染效果,而且采用GPU加快了渲染速度,能夠在實際中得到很好的應(yīng)用。
圖I為空間位模型列表生成流程 圖2為空間不意 圖3為像素點第一相交模型確定流程 圖4為光線跟蹤流程 圖5為陰影驗證流程 圖6為采用空間位優(yōu)化與非空間位優(yōu)化效率比較圖。
具體實施例方式下面結(jié)合附圖及具體實施例對本發(fā)明做進ー步詳細說明。圖I給出了空間位列表的生成流程,具體過程如下
(I)用S代表空間位,空間邊長為K。首先將三維空間分割為WXNXP個,W、N、P必須
的取值必須要保證容納空間內(nèi)所有模型,結(jié)果如圖2所示,則S = iSp SンSi…Swxnx5J。每個空間位所占的體積為K X K X K,每ー個空間位對應(yīng)ー個坐標( S- sZ )。在空間坐標系中,每ー個空間位1對應(yīng)ー個正方體。假設(shè)Sn = (sx,s7,sz),則其對應(yīng)的空間正方體的對角線
兩個頂點的坐標分別為i'sx X K,s,. X Ki sz X K), ( (S3J + I) X K, (Sy + l) X K, (sz 十 i〕X K)。(2)建立起所有的空間位之后需要為每ー個空間位建立模型列表,需要建立ー個由空間位到模型的一對多關(guān)系。將所有空間位放入鏈表SIiSt,鏈表中內(nèi)容包括ー個指向另一個鏈表Mlist的指針,Mlist用于存放所有經(jīng)過該空間的模型ID。( 3)為了填充MliSt中的數(shù)據(jù),需要對所有模型進行遍歷,每遍歷到ー個模型,得
到模型在空間坐標系中的坐標范圍,即。根據(jù)前面得到的
坐標范圍,得到一個對角線頂點分別是I Xmmf 1Oiinf ^min} ^max ^ ZraaJ的正方體,該正
方體即為該模型的最小包圍立方體。(4)得到了最小包圍立方體需要將最小包圍立方體轉(zhuǎn)化為空間位范圍,得到的空間位范圍為
權(quán)利要求
1.ー種GPU并行光線追蹤渲染方法,其特征在于由以下步驟完成 對文件場景中的空間劃分空間位; 計算每個物體的最小包圍立方體; 計算包圍立方體經(jīng)過的空間位; 計算經(jīng)過每個像素點的逆向光線; 計算與光線相交的空間位,從而檢索到相關(guān)的物體; 計算檢索的物體與光線是否相交; 根據(jù)相交情況,生成反射光、折射光; 最后采用著色函數(shù)計算每個像素點的顔色; 其中對文件場景中的空間劃分空間位,是將空間分割為WXNXP個長寬高相等的空間位,其中W為X軸向分段數(shù),N為y軸分段數(shù),P為z軸方向分段數(shù),并為姆個空間位建立模型列表; 計算每個物體的最小包圍立方體,是根據(jù)物體在世界坐標系中XYZ的坐標范圍,根據(jù)得到的坐標范圍,計算出能夠?qū)⑽矬w包圍進去的ー個最小立方體; 計算包圍立方體經(jīng)過的空間位,是通過包圍立方體的8個頂點坐標,找到對應(yīng)的8個空間位,再找到其包圍的其它空間位; 計算與光線相交的空間位,從而檢索到相關(guān)的物體,是計算光線與這些物體的相交情況,并記錄與光線相交的最近點坐標,并生成反射光、折射光,迭代計算; 采用著色函數(shù)計算每個像素點的顔色,是使用最近物體和最近值T來計算著色函數(shù),以著色函數(shù)的結(jié)果填充該像素。
2.根據(jù)權(quán)利要求I所述的GPU并行光線追蹤渲染方法,其特征在于用S代表空間位,空間邊長為K,首先將三維空間分割為WXNXP個,W、N、P必須的取值必須要保證容納空間內(nèi)所有模型,5 ニ (S1, S2, S3-... Swxmxp);每個空間位所占的體積為KX KX K,每一個空間位對應(yīng)一個坐標(sx;sy,sz ),在空間坐標系中,每一個空間位I對應(yīng)一個正方體,假設(shè)Sn= Ox,則其對應(yīng)的空間正方體的對角線兩個頂點的坐標分別為fs.{ K K,Sy X K, sz X K), ( (sx -f I) K K, (s -f l) K K, (sz 4* I〕X K)。
3.根據(jù)權(quán)利要求I所述的GPU并行光線追蹤渲染方法,其特征在于建立起所有的空間位之后需要為每ー個空間位建立模型列表,需要建立一個由空間位到模型的ー對多關(guān)系,將所有空間位放入鏈表Slist,鏈表中內(nèi)容包括ー個指向另ー個鏈表Mlist的指針,Mlist用于存放所有經(jīng)過該空間的模型ID。
4.根據(jù)權(quán)利要求I所述的GPU并行光線追蹤渲染方法,其特征在于對所有模型進行遍歷,每遍歷到ー個模型,得到模型在空間坐標系中的坐標范圍,,Dmax. Zmiti, Zmflx ,根據(jù)前面得到的坐標范圍,得到一個對角線頂點分別是&min, Ymia ZminX CXmai-· %nax> Zmax)的正方體,該正方體即為該模型的最小包圍立方體。
5.根據(jù)權(quán)利要求I所述的GPU并行光線追蹤渲染方法,其特征在于得到最小包圍立方體需要將最小包圍立方體轉(zhuǎn)化為空間位范圍,將該模型的ID放到范圍內(nèi)的空間位對應(yīng)的Mlist中,遍歷所有模型后,將得到每一個空間位內(nèi)包含的模型列表;找到經(jīng)過像素點的第一模型交點,然后按光線的反射和折射,迭代跟蹤過程,直到找到光源,或者達到最大迭代次數(shù);從視點出發(fā),經(jīng)過每一個視點得到一條光線,得到光線方程,利用GPU中大量的處理核心,將每一束光線方程分配給一個GPU運算核心進行運算; 得到像素點所在空間位Sp,定義一個相交距離T,令T等于最大值; 遍歷經(jīng)過該空間位內(nèi)所有模型; 遍歷每個模型內(nèi)所有多邊形; 如果光線與模型相交,計算相交距離t,將t與T進行比較如果t〈T則T=t;如果在第一個空間位內(nèi)沒有找到交點,則從像素點出發(fā)沿光線方向延伸,得到與空間位邊界的交點,根據(jù)所在面關(guān)系,得到光線經(jīng)過的下一個空間位,直到找到交點,或者光線射出空間位最大范圍。
6.根據(jù)權(quán)利要求I所述的GPU并行光線追蹤渲染方法,其特征在于當找到與光線相交的第一個模型后,確定第一個相交點后,進行反射和折射運算,確定模型該位置的光線來源;確定新的光線,尋找下一個相交模型及相交點;整個過程為遞歸操作,在找到最終的光線來源后,從后向前順序取得交點顏色,進行明暗衰減處理,陰影驗證操作。
7.根據(jù)權(quán)利要求6所述的GPU并行光線追蹤渲染方法,其特征在于從驗證點出發(fā),向所有光源進行連線,得出陰影線,驗證是否在陰影中,首先得到陰影線經(jīng)過的第一個空間位;將隱形線與經(jīng)過該空間位的模型進行相交測試;如果沒有相交,則進入第二個空間位,以此類推,直到找到相交點,或者抵達光源位置,最后得到所有光源對于該驗證點的陰影驗證結(jié)果。
全文摘要
一種GPU并行光線追蹤渲染方法,屬于動畫制作領(lǐng)域,包括對文件場景中的空間劃分空間位;計算每個物體的最小包圍立方體;計算包圍立方體經(jīng)過的空間位;計算經(jīng)過每個像素點的逆向光線;計算與光線相交的空間位,從而檢索到相關(guān)的物體;計算檢索的物體與光線是否相交;根據(jù)相交情況,生成反射光、折射光;最后采用著色函數(shù)計算每個像素點的顏色。本發(fā)明不僅能夠生成逼真細膩的渲染效果,而且采用GPU加快了渲染速度,能夠在實際中得到很好的應(yīng)用。
文檔編號G06T15/06GK102855655SQ20121027421
公開日2013年1月2日 申請日期2012年8月3日 優(yōu)先權(quán)日2012年8月3日
發(fā)明者鄭立國, 門慧勇, 詹亞坤 申請人:吉林禹碩動漫游戲科技股份有限公司