[發明專利]一種包含模糊反射效果的3D虛擬場景的左右眼立體畫面繪制方法無效
| 申請號: | 201110225275.1 | 申請日: | 2011-08-08 |
| 公開(公告)號: | CN102306401A | 公開(公告)日: | 2012-01-04 |
| 發明(設計)人: | 陳純毅;楊華民;范靜濤;蔣振剛;李巖芳;馮欣;權巍;張育力;薛耀紅;宋小龍;曲福恒;從立鋼 | 申請(專利權)人: | 長春理工大學 |
| 主分類號: | G06T19/00 | 分類號: | G06T19/00;G06T15/00 |
| 代理公司: | 暫無信息 | 代理人: | 暫無信息 |
| 地址: | 130022 *** | 國省代碼: | 吉林;22 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 包含 模糊 反射 效果 虛擬 場景 右眼 立體 畫面 繪制 方法 | ||
1.一種包含模糊反射效果的3D虛擬場景的左右眼立體畫面繪制方法,其特征在于,所需的設備、數據結構以及實現步驟如下:
本發明的目的在于提供一種包含模糊反射效果的3D虛擬場景的左右眼立體畫面繪制方法;本發明方法需要的設備包括:帶有雙核CPU和共享內存的計算機系統;當左眼虛擬相機(101)和右眼虛擬相機(102)能同時拍攝到3D虛擬場景中的物體(105)的表面上的點p1、點p2和點p3時,點p1、點p2和點p3的光照值將分別保存在左眼虛擬相機(101)的像平面(103)和右眼虛擬相機(102)的像平面(104)上的像素中;首先將3D虛擬場景中的漫反射和模糊反射表面的雙向反射分布函數(Bi-directional?Reflectance?Distribution?Function,縮寫為BRDF)展開成低階半球諧和基函數(Hemispherical?Harmonics?Basis?Function,縮寫為HSHBF)的累加和的形式,把各階HSHBF的系數保存在共享內存中并與該表面的BRDF相關聯;然后在雙核CPU上同時繪制左眼虛擬相機(101)的圖像畫面和右眼虛擬相機(102)的圖像畫面,將漫反射和模糊反射表面點的入射輻射亮度展開成低階HSHBF的累加和的形式,并保存在入射輻射亮度緩存中,通過基于梯度的入射輻射亮度插值計算,實現入射輻射亮度計算結果的重用,從而提高3D虛擬場景的左右眼立體畫面的繪制速度;
本發明方法提供一種入射輻射亮度記錄項數據結構,其包括位置分量、局部坐標系分量、HSHBF展開系數分量、HSHBF展開系數平移梯度分量等成員變量;
本發明方法將入射輻射亮度記錄項保存在位于共享內存中的入射輻射亮度緩存中;為了便于根據空間位置檢索入射輻射亮度緩存中的入射輻射亮度記錄項和向入射輻射亮度緩存中添加新的入射輻射亮度記錄項,入射輻射亮度緩存使用三維空間均勻網格數據結構;根據給定的三維空間位置,可以直接檢索出對應網格中的所有入射輻射亮度記錄項,以及向網格中添加新的入射輻射亮度記錄項;
本發明方法的第一部分計算3D虛擬場景中的所有漫反射和模糊反射表面的BRDF的低階HSHBF展開系數,具體步驟如下:
步驟S101:設置最低HSHBF階數nl、最高HSHBF階數nh和HSHBF展開的誤差閾值Et;
步驟S102:將漫反射看作是模糊反射的特例,對于3D虛擬場景中的各漫反射和模糊反射表面的BRDF(A101),標記BRDF(A101)能表示成低階HSHBF的累加和的形式,令nv=nl,做如下計算:
①按余弦分布對正半球空間進行空間角度采樣,在每個角度采樣處計算(其中θo為極角分量,為方位角分量):
l=0,1,...,nv,m=-l,...,l,其中為BRDF(A101)在出射角為入射角為時的值,為一個半球諧和基函數,為BRDF(A101)在角度采樣上與相關聯的HSHBF展開系數;
②計算如果且nv<nh,則nv=nv+1,轉①;如果且nv=nh,則標記BRDF(A101)不能表示成低階HSHBF的累加和的形式;如果則在共享內存中保存所有HSHBF展開系數并將其與BRDF(A101)及角度采樣相關聯;
本發明方法的第二部分在帶有雙核CPU和共享內存的計算機系統上并行地繪制左右眼虛擬相機的圖像畫面,通過對已經計算出的入射輻射亮度值進行緩存并利用基于梯度的插值方法,實現入射輻射亮度計算結果的復用,以提高左右眼虛擬相機的圖像畫面的繪制速度,具體步驟如下:
步驟S201:清空共享內存中的入射輻射亮度緩存;
步驟S202:在第一個CPU計算內核上運行左眼虛擬相機的圖像畫面的繪制程序,同時在第二個CPU計算內核上運行右眼虛擬相機的圖像畫面的繪制程序;左眼虛擬相機的圖像畫面的繪制程序執行步驟S203,右眼虛擬相機的圖像畫面的繪制程序執行步驟S204;
步驟S203:令I=1,J=1,執行如下計算:
①從左眼虛擬相機光心位置向左眼虛擬相機的像平面上的第I行、J列像素發射主光線(B01),測試主光線(B01)與3D虛擬場景的表面是否相交;如果不相交,則將主光線(B01)對應的像素的顏色設置為背景光照值,轉⑦,否則計算最近的交點位置pi,利用蒙特卡洛方法對光源進行采樣,計算交點pi處的直接光照值;
②如果交點pi所在表面的反射類型為鏡面反射,則遞歸跟蹤鏡面反射二次光線,計算鏡面反射間接光照值;如果交點pi所在表面的反射類型為漫反射,則轉③;如果交點pi所在表面的反射類型為模糊反射,則在共享內存中查詢交點pi所在表面的BRDF是否能表示成低階HSHBF的累加和的形式,若能,則轉③,否則使用蒙特卡洛方法對交點pi的局部坐標系(Ui,Vi,Ni)的正Ni半球空間進行重要性采樣(Ni與交點pi的法線方向同向),直接計算模糊反射間接光照值,轉⑥;
③對入射輻射亮度緩存進行訪存加鎖操作;從入射輻射亮度緩存中查找滿足如下條件的入射輻射亮度記錄項(B02):
條件A:其中p為入射輻射亮度記錄項(B02)中的位置分量成員變量,n為入射輻射亮度記錄項(B02)的位置分量成員變量所表示的表面點處的法線向量,ni為交點pi的單位法線向量,Ri為交點pi到所有可見對象的諧和函數平均距離,a為預先給定的精度閾值;對入射輻射亮度緩存進行訪存解鎖操作;
④將查找到的所有滿足條件A的入射輻射亮度記錄項(B02)放入一個集合S中,如果S非空,則轉⑤,否則利用蒙特卡洛方法對交點pi的局部坐標系(Ui,Vi,Ni)的正Ni半球空間進行空間角度采樣,計算各角度采樣方向上的入射輻射亮度值k表示角度采樣編號,根據它們計算入射輻射亮度的HSHBF展開系數及其平移梯度其中l=0,1,...,nv,m=-l,...,l,N為角度采樣數;創建一個新的入射輻射亮度記錄項,其位置分量成員變量賦值為pi,局部坐標系分量成員變量賦值為(Ui,Vi,Ni),HSHBF展開系數分量成員變量賦值為HSHBF展開系數平移梯度分量成員變量賦值為對入射輻射亮度緩存進行訪存加鎖操作;將該入射輻射亮度記錄項添加到入射輻射亮度緩存中的與位置pi相對應的網格單元中,同時將其加入集合S中;對入射輻射亮度緩存進行訪存解鎖操作;
⑤根據集合S中的各元素的局部坐標系分量成員變量,旋轉各元素的局部坐標系以便與交點pi的局部坐標系對齊,利用基于梯度的插值方法,根據集合S中的入射輻射亮度記錄項插值計算交點pi的入射輻射亮度的HSHBF展開系數計算主光線(B01)在交點pi的局部坐標系(Ui,Vi,Ni)的正Ni半球空間中所對應的角度將的值作為交點pi的模糊反射間接光照值,其中為交點pi所在表面的BRDF的HSHBF展開系數;
⑥將交點pi處的直接光照值和反射間接光照值相加作為交點pi的最終光照值計算結果;
⑦J=J+1,如果J>Npix,則J=1,I=I+1,其中Npix表示左眼虛擬相機的圖像畫面的像素列數;
⑧如果I<=Mpix,其中Mpix表示左眼虛擬相機的圖像畫面的像素行數,則轉①,否則轉步驟S205;
步驟S204:令I′=Mpix,J′=Npix,其中Mpix表示右眼虛擬相機的圖像畫面的像素行數,Npix表示右眼虛擬相機的圖像畫面的像素列數,執行如下計算:
①從右眼虛擬相機光心位置向右眼虛擬相機的像平面上的第I′行、J′列像素發射主光線(B03),測試主光線(B03)與3D虛擬場景的表面是否相交;如果不相交,則將主光線(B03)對應的像素的顏色設置為背景光照值,轉⑦,否則計算最近的交點位置p′i,利用蒙特卡洛方法對光源進行采樣,計算交點p′i處的直接光照值;
②如果交點p′i所在表面的反射類型為鏡面反射,則遞歸跟蹤鏡面反射二次光線,計算鏡面反射間接光照值;如果交點p′i所在表面的反射類型為漫反射,則轉③;如果交點p′i所在表面的反射類型為模糊反射,則在共享內存中查詢交點p′i所在表面的BRDF是否能表示成低階HSHBF的累加和的形式,若能,則轉③,否則使用蒙特卡洛方法對交點p′i的局部坐標系(U′i,V′i,N′i)的正N′i半球空間進行重要性采樣(N′i與交點p′i的法線方向同向),直接計算模糊反射間接光照值,轉⑥;
③對入射輻射亮度緩存進行訪存加鎖操作;從入射輻射亮度緩存中查找滿足如下條件的入射輻射亮度記錄項(B04):
條件A′:p′為入射輻射亮度記錄項(B04)中的位置分量成員變量,n′為入射輻射亮度記錄項(B04)的位置分量成員變量所表示的表面點處的法線向量,n′i為交點p′i的單位法線向量,Ri為交點p′i到所有可見對象的諧和函數平均距離,a為預先給定的精度閾值;對入射輻射亮度緩存進行訪存解鎖操作;
④將查找到的所有滿足條件A′的入射輻射亮度記錄項(B04)放入一個集合S′中,如果S′非空,則轉⑤,否則利用蒙特卡洛方法對交點p′i的局部坐標系(U′i,V′i,N′i)的正N′i半球空間進行空間角度采樣,計算各角度采樣方向上的入射輻射亮度值k表示角度采樣編號,根據它們計算入射輻射亮度的HSHBF展開系數及其平移梯度其中l=0,1,...,nv,m=-l,...,l,N為角度采樣數;創建一個新的入射輻射亮度記錄項,其位置分量成員變量賦值為p′i,局部坐標系分量成員變量賦值為(U′i,V′i,N′i),HSHBF展開系數分量成員變量賦值為HSHBF展開系數平移梯度分量成員變量賦值為對入射輻射亮度緩存進行訪存加鎖操作;將該入射輻射亮度記錄項添加到入射輻射亮度緩存中的與位置p′i相對應的網格單元中,同時將其加入集合S′中;對入射輻射亮度緩存進行訪存解鎖操作;
⑤根據集合S′中的各元素的局部坐標系分量成員變量,旋轉各元素的局部坐標系以便與交點p′i的局部坐標系對齊,利用基于梯度的插值方法,根據集合S′中的入射輻射亮度記錄項插值計算交點p′i的入射輻射亮度的HSHBF展開系數計算主光線(B03)在交點p′i的局部坐標系(U′i,V′i,N′i)的正N′i半球空間中所對應的角度將的值作為交點p′i的模糊反射間接光照值,其中為交點p′i所在表面的BRDF的HSHBF展開系數;
⑥將交點p′i處的直接光照值和反射間接光照值相加作為交點p′i的最終光照值計算結果;
⑦J′=J′-1,如果J′<1,則J′=Npix,I′=I′-1;
⑧如果I′≥1,則轉①,否則轉步驟S205;
步驟S205:左右眼虛擬相機的圖像畫面繪制完畢。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于長春理工大學,未經長春理工大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201110225275.1/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種腐皮肉制品的制作方法
- 下一篇:無線通信系統中的方法和設備





