新四季網

一種加速被面光源照射的3d虛擬場景的光線跟蹤的方法

2023-07-17 19:20:01 1

專利名稱:一種加速被面光源照射的3d虛擬場景的光線跟蹤的方法
技術領域:
本發明屬於真實感3D虛擬場景繪製技術領域,涉及一種加速被面光源照射的3D 虛擬場景的光線跟蹤的方法。
背景技術:
真實感3D虛擬場景繪製技術在數字娛樂、影視特效、建築CAD、廣告動畫等領域受 到人們的廣泛關注。目前3D虛擬場景繪製技術雖然已經得到深入的研究,但是如何快速繪 制具有高度真實感的3D虛擬場景畫面仍然是一個有待進一步解決的難題。傳統的光柵化 技術不支持全局光照計算,使用其繪製的3D虛擬場景畫面往往缺乏真實感。光線跟蹤方法 能夠繪製出反射、折射、陰影等效果,是一種全局光照算法。使用光線跟蹤繪製得到的3D虛 擬場景畫面比使用光柵化技術繪製得到的3D虛擬場景畫面的真實感更強。因此光線跟蹤 方法在真實感3D虛擬場景繪製中得到了廣泛應用。當要求高度的真實感時,3D虛擬場景通常使用面光源而非理想的點光源進行照 射。通常使用蒙特卡洛光線跟蹤方法繪製被面光源照射的3D虛擬場景。蒙特卡洛光線跟蹤 方法通過對面光源進行重要性採樣實現全局光照計算。對每個需要計算光照值的場景點, 該方法都需要計算大量的光源採樣點的可見性,即判斷場景點與光源採樣點之間是否存在 遮擋。在計算每個光源採樣點的可見性時,需要產生一條從場景點出發,射向該光源採樣點 的可見性測試光線,並用此可見性測試光線遍歷場景加速結構,以便確定是否有幾何圖元 與此可見性測試光線相交,進而判斷場景點與光源採樣點之間是否存在遮擋。由於光線跟 蹤需要跟蹤大量光線的多次反射(或折射)過程,並且需要計算每個反射(或折射)點的 光照值,因此上述光源採樣點的可見性計算量非常大。這使得蒙特卡洛光線跟蹤的計算效 率並不高,導致繪製一幅3D虛擬場景畫面的時間很長。所以人們迫切需要一種能夠加速被 面光源照射的3D虛擬場景的光線跟蹤的方法。

發明內容
本發明的目的在於提供一種加速被面光源照射的3D虛擬場景的光線跟蹤的方 法。本方法在光線跟蹤之前通過一個預計算過程獲得面光源照射到的幾何面片的深度數 據,在光線跟蹤過程中利用這些深度數據直接計算每個場景點處的光源採樣點可見性,避 免了可見性測試光線的創建、遍歷、求交測試等運算,提高了光線跟蹤效率。本發明的方法 所需的設備及其實現步驟如下1.所需設備主機系統(101)和GPU計算集群(102);如圖1所示,主機系統(101) 包括CPU (103)、內存(104)和磁碟(105)。2.實現步驟本方法(010)部分,得到面光源照射到的幾何面片的深度數據,具體步驟如下步驟(SOll)將3D虛擬場景模型數據(A001)從磁碟(105)加載到內存(104)中;步驟(S012)在CPU(103)上計算面光源輪廓線(201)的外切矩形(202);
步驟(S013)如圖2所示,在外切矩形(202)內均勻地選取m行、η列光源採樣點, 得到一個二維採樣點陣列(Α002),將其存放在內存(104)中;步驟(S014)在內存(104)中創建一個m行、η列的掩模矩陣Μ(Α003),掩模矩陣 Μ(Α003)中的各個元素與二維採樣點陣列(Α002)中的各個光源採樣點一一對應;掩模矩陣 Μ(Α003)的每個元素的數據結構如圖3所示,其包含一個標識變量(301)(變量名為tag)、 一個深度圖指針變量(302)(變量名為cbpthMapPtr)和一個坐標系變換矩陣變量(303) (變量名為transformMatrix);將掩模矩陣M(A003)的每個元素包含的標識變量(301)設 置為0;步驟(S015)任意選取一個與面光源平面平行的向量作為U方向向量(A004);步驟(S016)把3D虛擬場景模型數據(A001)送入GPU計算集群(102)的Global Memory 中;步驟(S017)對二維採樣點陣列(A002)中的每個光源採樣點Su(下標i為光源 採樣點Su在二維採樣點陣列(A002)中的行號,下標j為光源採樣點Su在二維採樣點陣列 (A002)中的列號),判斷光源採樣ASu是否在面光源輪廓線(201)之內,如果光源採樣點 Sij在面光源輪廓線(201)之內,則①將掩模矩陣M(A003)的第i行、j列的元素的標識變量(301)設置為1 ;②以光源採樣點Su為虛擬相機視點,以面光源平面法向量為虛擬相機視軸正方 向(面光源平面法向量與面光源的朝向相同),以U方向向量(A004)為虛擬相機向上方向 向量,根據3D虛擬場景與面光源的位置關係設置合適的虛擬相機視場角(A005),根據3D 虛擬場景的複雜程度設置合適的虛擬相機解析度(A006),讀取存儲於GPU計算集群(102) 的GlobalMemory中的3D虛擬場景模型數據(A001),調用光柵化圖形API在GPU計算集群 (102)上繪製3D虛擬場景,記錄每個像素的深度值,從而得到以光源採樣點Sij為虛擬相機 視點的深度圖(A007);③把深度圖(A007)傳回內存(104),並將深度圖(A007)的內存首地址賦值給掩模 矩陣M(A003)的第i行、j列的元素的深度圖指針變量(302)。本方法的(020)部分,根據二維採樣點陣列(A002)中的每個光源採樣點的位置 及面光源平面法向量,計算從世界坐標繫到以各光源採樣點為原點的光源採樣點坐標系 (B001)的變換矩陣,具體步驟如下步驟(S021):選取面光源平面法向量作為N方向向量(B002),定義V方向向量 (B003)為N方向向量(B002)與U方向向量(A004)的叉乘;步驟(S022)將U方向向量(A004)、N方向向量(B002)和V方向向量(B003)進 行歸一化,得到歸一化的U方向向量(B004)、歸一化的N方向向量(B005)和歸一化的V方 向向量(B006);步驟(S023)對於掩模矩陣M(A003)中的每個元素(B007),判斷元素(B007)的標 識變量(301)是否為1,如果為1,則先計算元素(B007)所在的行號i和列號j,再計算二維 採樣點陣列(A002)中第i行、j列光源採樣點Sij在世界坐標系下的坐標Wij(BOOS),然後 按如下公式計算變換矩陣Tij
T,,=
其中Ux、Uy、Uz分別為歸一化的U方向向量
(B004)的三個分量,Vx、\、Vz分別為歸一化的N萬向向量(B005)的三個分量,Nx, Ny, Nz分 別為歸一化的V方向向量(B006)的三個分量,最後將Tij賦值給元素(B007)的坐標系變換 矩陣變量(303)。本方法的(030)部分,在光線跟蹤中利用本方法(010)部分計算出的深度圖 (A007)來加速繪製被面光源照射的3D虛擬場景,具體步驟如下步驟(S031)將掩模矩陣M(A003)及其各元素的深度圖指針變量(302)指向的所 有深度圖(A007)送入GPU計算集群(102)的Global Memory中;步驟(S032)按照正常的光線跟蹤流程,從虛擬相機視點發射穿過屏幕像素 (C001)的光線(C002),並判斷光線(C002)與3D虛擬場景的幾何面片(C003)是否相交,如 果相交,則計算出交點坐標P(C004),並轉步驟(S033),否則屏幕像素(C001)的顏色設置為 背景色(C005),並結束對光線(C002)的跟蹤;步驟(S033)對掩模矩陣M(A003)中的每個元素(C006),判斷元素(C006)的標 識變量(301)是否為1,如果為1,則首先將元素(C006)的坐標系變換矩陣變量(303)賦 值給變量T(C007),再計算元素(C006)所在的行號i和列號j,然後讀取二維採樣點陣列 (A002)的第i行、j列光源採樣點Su(COOS),並計算光源採樣點Su(COOS)在世界坐標系 下的坐標Wij(COOg),最後將光源採樣點Sij(COOS)的行號i與列號j、交點坐標P(C004)、坐 標Wij(COOg)和變量T(C007)打包成一個結構體變量(C010)送入GPU計算集群(102)的 Global Memory中;統計掩模矩陣M(A003)中標識變量(301)為1的元素個數(COll),將元 素個數(COll)賦值給變量Ns;步驟(S034)在GPU計算集群(102)上創建Ns個並行線程,各線程分別從GPU計 算集群(102)的Global Memory中讀取一個結構體變量(C010),並行地做以下計算 ①
UV=τ.PyηPz11
,其中PX、PV、Pz分別為存儲於結構體變量(C010)中的交點坐標
,其中d為步驟(S017)中調用光柵化圖形API在GPU計算
P(C004)的x、y、ζ坐標分量,T為存儲於結構體變量(C010)中的變量T(C007)
/^NUV② w — ^ -
η! αη!a
集群(102)上繪製3D虛擬場景時的投影面到虛擬相機視點的距離;
N1 -③ I =
d ■ tan(6>v /2)
2
k =
I-
d ■ tan(<9v / 2)
N2-.
2
其中θ v為步驟
(S017)中調用光柵化圖形API在GPU計算集群(102)上繪製3D虛擬場景時設置的虛擬相 機視場角(A005),N1為步驟(S017)中調用光柵化圖形API在GPU計算集群(102)上繪製 3D虛擬場景時設置的虛擬相機垂直解析度,N2為步驟(S017)中調用光柵化圖形API在GPU 計算集群(102)上繪製3D虛擬場景時設置的虛擬相機水平解析度;
④根據結構體變量(C010)中保存的行號i與列號j,讀取存儲於GPU計算集群
UxUyUz0 \0 0-Wlix
VxVvVz0 010-Wiiy
NxNyNzQ 00 \- Wijz
000100 0 1
7(102)的Global Memory中的掩模矩陣M(A003)的第i行、j列元素(C012)的深度圖指 針變量(302)指向的深度圖的第1行、k列像素的深度值(C013);計算存儲於結構體變量 (C010)中的交點坐標P(C004)與存儲於結構體變量(C010)中的坐標Wij(COOg)之間的距 離D(C014);如果深度值(C013)比距離D(C014)小,則表明存儲於結構體變量(C010)中的 交點坐標P(C004)處的場景點(C015)不能直接被光源採樣點Sij照射,光源採樣點Sij對場 景點(C015)的直接光照貢獻Ld(COie)為0,否則計算光源採樣點Sij對場景點(C015)的直 接光照貢獻Ld(COie);最後將直接光照貢獻Ld(COie)傳回內存(104);步驟(S035)在CPU(103)上將步驟(S034)中的各線程傳回內存(104)的所有直 接光照貢獻Ld(COie)相加,以得到面光源對交點坐標P(C004)處的場景點的直接光照值;步驟(S036)按照正常的光線跟蹤流程遞歸地跟蹤交點坐標P(C004)處的反射光 線(或者折射光線),以便計算交點坐標P(C004)處的場景點的間接光照值;在遞歸過程 中,所有場景點處的直接光照值也按上述過程進行計算;最後根據交點坐標P(C004)處的 場景點的直接光照值、間接光照值以及材質數據計算出屏幕像素(C001)的顏色。有益效果本發明提供了一種加速被面光源照射的3D虛擬場景的光線跟蹤的方法。本發明 方法與蒙特卡洛光線跟蹤方法相比,避免了可見性測試光線的創建、遍歷、求交測試等運 算,提高了光線跟蹤效率。由於使用了掩模矩陣,本發明方法適用於任何輪廓形狀的平面面 光源。另外,本發明方法利用GPU計算集群並行地計算不同光源採樣點對場景點的直接光 照值,大大地提高了光線跟蹤過程中的光照計算速度。相對於蒙特卡洛光線跟蹤方法,本發 明方法可使光線跟蹤的速度提高3 4倍。


圖1是本發明所需的設備及其連接方式示意圖;圖2是面光源輪廓線及其外切矩 形與二維光源採樣點陣列示意圖;圖3是掩模矩陣的元素的數據結構示意圖。
具體實施例方式為了使本發明的特徵和優點更加清楚明白,下面參照附圖結合具體實施例對本發 明作進一步的描述。本實施例中的CPU(103)選擇Intel Xeon CPU 3. 20GHz,內存(104)選擇金士頓 8GBDDR3 1333,磁碟(105)選擇 Buffalo HD-CE 1.5 TU2,GPU 計算集群(102)選擇 AMAX Tesla系列GPU計算集群;軟體編程工具選用VC++2008、OpenGL 2. 0和CUDA 2. 0。本方法(010)部分,得到面光源照射到的幾何面片的深度數據,具體步驟如下步驟(SOll)將3D虛擬場景模型數據(A001)從磁碟(105)加載到內存(104)中;步驟(S012)在CPU(103)上計算面光源輪廓線(201)的外切矩形(202);步驟(S013)如圖2所示,在外切矩形(202)內均勻地選取m行、η列光源採樣點, 得到一個二維採樣點陣列(Α002),將其存放在內存(104)中;步驟(S014)在內存(104)中創建一個m行、η列的掩模矩陣Μ(Α003),掩模矩陣 Μ(Α003)中的各個元素與二維採樣點陣列(Α002)中的各個光源採樣點一一對應;掩模矩陣 Μ(Α003)的每個元素的數據結構如圖3所示,其包含一個標識變量(301)(變量名為tag)、一個深度圖指針變量(302)(變量名為cbpthMapPtr)和一個坐標系變換矩陣變量(303) (變量名為transformMatrix);將掩模矩陣M(A003)的每個元素包含的標識變量(301)設 置為0;步驟(S015)任意選取一個與面光源平面平行的向量作為U方向向量(A004);步驟(S016)把3D虛擬場景模型數據(A001)送入GPU計算集群(102)的Global Memory 中;步驟(S017)對二維採樣點陣列(A002)中的每個光源採樣點Sij(下標i為光源 採樣點Su在二維採樣點陣列(A002)中的行號,下標j為光源採樣點Su在二維採樣點陣列 (A002)中的列號),判斷光源採樣ASu是否在面光源輪廓線(201)之內,如果光源採樣點 Sij在面光源輪廓線(201)之內,則①將掩模矩陣M(A003)的第i行、j列的元素的標識變量(301)設置為1 ;②以光源採樣點Sij為虛擬相機視點,以面光源平面法向量為虛擬相機視軸正方 向(面光源平面法向量與面光源的朝向相同),以U方向向量(A004)為虛擬相機向上方向 向量,根據3D虛擬場景與面光源的位置關係設置合適的虛擬相機視場角(A005),根據3D虛 擬場景的複雜程度設置合適的虛擬相機解析度(A006),讀取存儲於GPU計算集群(102)的 GlobalMemory中的3D虛擬場景模型數據(A001),調用OpenGL API在GPU計算集群(102) 上繪製3D虛擬場景,記錄每個像素的深度值,從而得到以光源採樣點Su為虛擬相機視點的 深度圖(A007);③把深度圖(A007)傳回內存(104),並將深度圖(A007)的內存首地址賦值給掩模 矩陣M(A003)的第i行、j列的元素的深度圖指針變量(302)。本方法的(020)部分,根據二維採樣點陣列(A002)中的每個光源採樣點的位置 及面光源平面法向量,計算從世界坐標繫到以各光源採樣點為原點的光源採樣點坐標系 (B001)的變換矩陣,具體步驟如下步驟(S021):選取面光源平面法向量作為N方向向量(B002),定義V方向向量 (B003)為N方向向量(B002)與U方向向量(A004)的叉乘;步驟(S022)將U方向向量(A004)、N方向向量(B002)和V方向向量(B003)進 行歸一化,得到歸一化的U方向向量(B004)、歸一化的N方向向量(B005)和歸一化的V方 向向量(B006);步驟(S023)對於掩模矩陣M(A003)中的每個元素(B007),判斷元素(B007)的標 識變量(301)是否為1,如果為1,則先計算元素(B007)所在的行號i和列號j,再計算二維 採樣點陣列(A002)中第i行、j列光源採樣點Sij在世界坐標系下的坐標Wij(BOOS),然後 按如下公式計算變換矩陣Tij
0_
UxUyUzVxVyV2NxNyNz000個分量,Vx
,其中Ux、Uv、Uz分別為歸一化的U方向向量
0 0 1
(B004)的三個分量,Vx、Vy、Vz分別為歸一化的N方向向量(B005)的三個分量,Nx, Ny, Nz分 別為歸一化的V方向向量(B006)的三個分量,最後將Tij賦值給元素(B007)的坐標系變換 矩陣變量(303)。
1 0 0 - Wm
'Ja
0 1 0 -Wliy 0 0 1- Wip 0 0 0 1
9
本方法的(030)部分,在光線跟蹤中利用本方法(010)部分計算出的深度圖 (A007)來加速繪製被面光源照射的3D虛擬場景,具體步驟如下步驟(S031)將掩模矩陣M(A003)及其各元素的深度圖指針變量(302)指向的所 有深度圖(A007)送入GPU計算集群(102)的Global Memory中;步驟(S032)按照正常的光線跟蹤流程,從虛擬相機視點發射穿過屏幕像素 (C001)的光線(C002),並判斷光線(C002)與3D虛擬場景的幾何面片(C003)是否相交,如 果相交,則計算出交點坐標P (C004),並轉步驟(S033),否則屏幕像素(C001)的顏色設置為 背景色(C005),並結束對光線(C002)的跟蹤;步驟(S033)對掩模矩陣M(A003)中的每個元素(C006),判斷元素(C006)的標 識變量(301)是否為1,如果為1,則首先將元素(C006)的坐標系變換矩陣變量(303)賦 值給變量T(C007),再計算元素(C006)所在的行號i和列號j,然後讀取二維採樣點陣列 (A002)的第i行、j列光源採樣點Su(COOS),並計算光源採樣點Su(COOS)在世界坐標系 下的坐標Wij(COOg),最後將光源採樣點Sij(COOS)的行號i與列號j、交點坐標P(C004)、坐 標Wij(COOg)和變量T(C007)打包成一個結構體變量(C010)送入GPU計算集群(102)的 Global Memory中;統計掩模矩陣M(A003)中標識變量(301)為1的元素個數(COll),將元 素個數(COll)賦值給變量Ns;步驟(S034)利用CUDA API在GPU計算集群(102)上創建Ns個並行線程,各線程 分別從GPU計算集群(102)的Global Memory中讀取一個結構體變量(C010),並行地做以 下計算 ①
權利要求
一種加速被面光源照射的3D虛擬場景的光線跟蹤的方法,其特徵在於,所需的設備及實現步驟如下所需設備主機系統(101)和GPU計算集群(102);主機系統(101)包括CPU(103)、內存(104)和磁碟(105);實現步驟本方法(010)部分,得到面光源照射到的幾何面片的深度數據,具體步驟如下步驟(S011)將3D虛擬場景模型數據(A001)從磁碟(105)加載到內存(104)中;步驟(S012)在CPU(103)上計算面光源輪廓線(201)的外切矩形(202);步驟(S013)在外切矩形(202)內均勻地選取m行、n列光源採樣點,得到一個二維採樣點陣列(A002),將其存放在內存(104)中;步驟(S014)在內存(104)中創建一個m行、n列的掩模矩陣M(A003),掩模矩陣M(A003)中的各個元素與二維採樣點陣列(A002)中的各個光源採樣點一一對應;掩模矩陣M(A003)的每個元素包含一個標識變量(301)(變量名為tag)、一個深度圖指針變量(302)(變量名為depthMapPtr)和一個坐標系變換矩陣變量(303)(變量名為transformMatrix);將掩模矩陣M(A003)的每個元素包含的標識變量(301)設置為0;步驟(S015)任意選取一個與面光源平面平行的向量作為U方向向量(A004);步驟(S016)把3D虛擬場景模型數據(A001)送入GPU計算集群(102)的Global Memory中;步驟(S017)對二維採樣點陣列(A002)中的每個光源採樣點Sij(下標i為光源採樣點Sij在二維採樣點陣列(A002)中的行號,下標j為光源採樣點Sij在二維採樣點陣列(A002)中的列號),判斷光源採樣點Sij是否在面光源輪廓線(201)之內,如果光源採樣點Sij在面光源輪廓線(201)之內,則第一,將掩模矩陣M(A003)的第i行、j列的元素的標識變量(301)設置為1;第二,以光源採樣點Sij為虛擬相機視點,以面光源平面法向量為虛擬相機視軸正方向(面光源平面法向量與面光源的朝向相同),以U方向向量(A004)為虛擬相機向上方向向量,根據3D虛擬場景與面光源的位置關係設置合適的虛擬相機視場角(A005),根據3D虛擬場景的複雜程度設置合適的虛擬相機解析度(A006),讀取存儲於GPU計算集群(102)的Global Memory中的3D虛擬場景模型數據(A001),調用光柵化圖形API在GPU計算集群(102)上繪製3D虛擬場景,記錄每個像素的深度值,從而得到以光源採樣點Sij為虛擬相機視點的深度圖(A007);第三,把深度圖(A007)傳回內存(104),並將深度圖(A007)的內存首地址賦值給掩模矩陣M(A003)的第i行、j列的元素的深度圖指針變量(302);本方法的(020)部分,根據二維採樣點陣列(A002)中的每個光源採樣點的位置及面光源平面法向量,計算從世界坐標繫到以各光源採樣點為原點的光源採樣點坐標系(B001)的變換矩陣,具體步驟如下步驟(S021)選取面光源平面法向量作為N方向向量(B002),定義V方向向量(B003)為N方向向量(B002)與U方向向量(A004)的叉乘;步驟(S022)將U方向向量(A004)、N方向向量(B002)和V方向向量(B003)進行歸一化,得到歸一化的U方向向量(B004)、歸一化的N方向向量(B005)和歸一化的V方向向量(B006);步驟(S023)對於掩模矩陣M(A003)中的每個元素(B007),判斷元素(B007)的標識變量(301)是否為1,如果為1,則先計算元素(B007)所在的行號i和列號j,再計算二維採樣點陣列(A002)中第i行、j列光源採樣點Sij在世界坐標系下的坐標Wij(B008),然後按如下公式計算變換矩陣Tij其中Ux、Uy、Uz分別為歸一化的U方向向量(B004)的三個分量,Vx、Vy、Vz分別為歸一化的N方向向量(B005)的三個分量,Nx、Ny、Nz分別為歸一化的V方向向量(B006)的三個分量,最後將Tij賦值給元素(B007)的坐標系變換矩陣變量(303);本方法的(030)部分,在光線跟蹤中利用本方法(010)部分計算出的深度圖(A007)來加速繪製被面光源照射的3D虛擬場景,具體步驟如下步驟(S031)將掩模矩陣M(A003)及其各元素的深度圖指針變量(302)指向的所有深度圖(A007)送入GPU計算集群(102)的Global Memory中;步驟(S032)按照正常的光線跟蹤流程,從虛擬相機視點發射穿過屏幕像素(C001)的光線(C002),並判斷光線(C002)與3D虛擬場景的幾何面片(C003)是否相交,如果相交,則計算出交點坐標P(C004),並轉步驟(S033),否則屏幕像素(C001)的顏色設置為背景色(C005),並結束對光線(C002)的跟蹤;步驟(S033)對掩模矩陣M(A003)中的每個元素(C006),判斷元索(C006)的標識變量(301)是否為1,如果為1,則首先將元素(C006)的坐標系變換矩陣變量(303)賦值給變量T(C007),再計算元素(C006)所在的行號i和列號j,然後讀取二維採樣點陣列(A002)的第i行、j列光源採樣點Sij(C008),並計算光源採樣點Sij(C008)在世界坐標系下的坐標Wij(C009),最後將光源採樣點Sij(C008)的行號i與列號j、交點坐標P(C004)、坐標Wij(C009)和變量T(C007)打包成一個結構體變量(C010)送入GPU計算集群(102)的Global Memory中;統計掩模矩陣M(A003)中標識變量(301)為1的元素個數(C011),將元素個數(C011)賦值給變量Ns;步驟(S034)在GPU計算集群(102)上創建Ns個並行線程,各線程分別從GPU計算集群(102)的Global Memory中讀取一個結構體變量(C010),並行地做以下計算第一,其中Px、Py、Pz分別為存儲於結構體變量(C010)中的交點坐標P(C004)的x、y、z坐標分量,T為存儲於結構體變量(C010)中的變量T(C007);第二,其中d為步驟(S017)中調用光柵化圖形API在GPU計算集群(102)上繪製3D虛擬場景時的投影面到虛擬相機視點的距離;第三,其中θv為步驟(S017)中調用光柵化圖形API在GPU計算集群(102)上繪製3D虛擬場景時設置的虛擬相機視場角(A005),N1為步驟(S017)中調用光柵化圖形API在GPU計算集群(102)上繪製3D虛擬場景時設置的虛擬相機垂直解析度,N2為步驟(S017)中調用光柵化圖形API在GPU計算集群(102)上繪製3D虛擬場景時設置的虛擬相機水平解析度;第四,根據結構體變量(C010)中保存的行號i與列號j,讀取存儲於GPU計算集群(102)的Global Memory中的掩模矩陣M(A003)的第i行、j列元素(C012)的深度圖指針變量(302)指向的深度圖的第l行、k列像素的深度值(C013);計算存儲於結構體變量(C010)中的交點坐標P(C004)與存儲於結構體變量(C010)中的坐標Wij(C009)之間的距離D(C014);如果深度值(C013)比距離D(C014)小,則表明存儲於結構體變量(C010)中的交點坐標P(C004)處的場景點(C015)不能直接被光源採樣點Sij照射,光源採樣點Sij對場景點(C015)的直接光照貢獻Ld(C016)為0,否則計算光源採樣點Sij對場景點(C015)的直接光照貢獻Ld(C016);最後將直接光照貢獻Ld(C016)傳回內存(104);步驟(S035)在CPU(103)上將步驟(S034)中的各線程傳回內存(104)的所有直接光照貢獻Ld(C016)相加,以得到面光源對交點坐標P(C004)處的場景點的直接光照值;步驟(S036)按照正常的光線跟蹤流程遞歸地跟蹤交點坐標P(C004)處的反射光線(或者折射光線),以便計算交點坐標P(C004)處的場景點的間接光照值;在遞歸過程中,所有場景點處的直接光照值也按上述過程進行計算;最後根據交點坐標P(C004)處的場景點的直接光照值、間接光照值以及材質數據計算出屏幕像素(C001)的顏色。FSA00000327708300021.tif,FSA00000327708300031.tif,FSA00000327708300032.tif,FSA00000327708300033.tif
全文摘要
本發明公開一種加速被面光源照射的3D虛擬場景的光線跟蹤的方法,屬於真實感3D虛擬場景繪製技術領域。當前常用蒙特卡洛光線跟蹤方法繪製被面光源照射的3D虛擬場景。由於蒙特卡洛光線跟蹤方法需要執行大量的光源採樣點可見性計算,因此其計算效率不高。本發明通過一個預計算過程獲得面光源照射到的幾何面片的深度數據,在光線跟蹤過程中利用這些深度數據直接計算每個場景點處的光源採樣點可見性,避免了可見性測試光線的創建、遍歷、求交測試等運算,提高了光線跟蹤效率。相對於蒙特卡洛光線跟蹤方法,本發明方法可使光線跟蹤的速度提高3~4倍。
文檔編號G06T15/50GK101982838SQ20101052774
公開日2011年3月2日 申請日期2010年11月2日 優先權日2010年11月2日
發明者丁瑩, 從立鋼, 馮欣, 底曉強, 張育力, 曲福恆, 權巍, 楊華民, 範靜濤, 陳佔芳, 陳純毅, 韓成 申請人:長春理工大學

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀