[發明專利]基于空間復用的真實感虛擬3D場景光場投影圖像繪制方法有效
| 申請號: | 201711175280.X | 申請日: | 2017-11-22 |
| 公開(公告)號: | CN107909647B | 公開(公告)日: | 2020-09-15 |
| 發明(設計)人: | 陳純毅;楊華民;蔣振剛;姜會林 | 申請(專利權)人: | 長春理工大學 |
| 主分類號: | G06T17/00 | 分類號: | G06T17/00 |
| 代理公司: | 吉林長春新紀元專利代理有限責任公司 22100 | 代理人: | 王薇 |
| 地址: | 130022 *** | 國省代碼: | 吉林;22 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 基于 空間 真實感 虛擬 場景 投影 圖像 繪制 方法 | ||
1.基于空間復用的真實感虛擬3D場景光場投影圖像繪制方法,其特征在于:首先使用光子跟蹤技術創建光子圖,接著計算虛擬相機陣列中的所有虛擬相機對應的可視場景點,并把所有可視場景點保存在一個列表中,然后計算列表中的所有可視場景點的全局光照值,具體實現步驟如下:
提供一種數據結構TVSPT,用于存儲與可視場景點相關的數據;數據結構TVSPT包含可視場景點所在位置vsPos、可視場景點所在位置的幾何對象表面的法向量vsNrm、可視場景點對應的虛擬相機編號nCam、可視場景點對應的虛擬相機的虛擬像素平面上的像素的行號vnRow、可視場景點對應的虛擬相機的虛擬像素平面上的像素的列號vnCol、從可視場景點散射進入對應虛擬相機的光線的光亮度vsL、可視場景點對應的光源采樣點位置vsQ、可視場景點對應的光源可見性vsV共八個成員變量;
提供一種數據結構TALSPT,用于存儲光源采樣點相關數據;數據結構TALSPT包含光源采樣點位置lsPos、光源可見性lsV共兩個成員變量;
1)使用光子跟蹤技術創建光子圖,具體方法如下:
首先在計算機的存儲器中創建一個不包含任何光子記錄的光子圖PMap;使用光子跟蹤技術從面光源向三維場景發射Npt個光子,跟蹤這Npt個光子在3D場景中傳播時與幾何對象發生碰撞而被散射的過程;對于每個光子A002,在跟蹤光子A002在3D場景中傳播時與幾何對象發生碰撞而被散射的過程中,從光子A002第二次與3D場景幾何對象發生碰撞開始,每發生一次碰撞就向光子圖PMap中添加一個光子記錄,每個光子記錄包括光子與3D場景幾何對象的碰撞位置PPos、光子在碰撞位置PPos處的歸一化入射方向向量PVi,光子在碰撞位置PPos處的入射功率PW共三個分量;
2)計算包含Ncamr×Ncamc個虛擬相機的虛擬相機陣列中的每個虛擬相機的虛擬像素平面上的每個像素對應的可視場景點,具體方法如下:
步驟Step201:在計算機的存儲器中創建一個列表Ltvspt,列表Ltvspt的每個元素用于存儲一個數據結構TVSPT類型的變量,令列表Ltvspt為空;
步驟Step202:對于包含Ncamr×Ncamc個虛擬相機的虛擬相機陣列中的每個虛擬相機A003,做如下操作:
根據虛擬相機A003的視點位置、視口朝向、視場角和相機分辨率參數,利用光線投射技術,從虛擬相機A003的視點位置發射穿過虛擬相機A003的虛擬像素平面上的每個像素中心點的光線A004,光線A004與虛擬相機A003的虛擬像素平面上的像素一一對應;對虛擬相機A003的虛擬像素平面上的每個像素對應的光線A004,執行如下操作:
判斷光線A004與3D場景的幾何對象是否相交,如果光線A004與3D場景的幾何對象相交,則進一步執行如下兩個子步驟:
步驟Step202-1:計算光線A004與3D場景的幾何對象的離虛擬相機A003的視點位置最近的交點A005,交點A005是一個可視場景點,創建一個數據結構TVSPT類型的變量A006,變量A006對應了一條唯一的光線A004,把變量A006的可視場景點所在位置vsPos成員變量賦值為交點A005的位置,把變量A006的可視場景點所在位置的幾何對象表面的法向量vsNrm成員變量賦值為交點A005處的幾何對象表面法向量,把變量A006的可視場景點對應的虛擬相機編號nCam成員變量賦值為虛擬相機A003在虛擬相機陣列中的編號,把變量A006的可視場景點對應的虛擬相機的虛擬像素平面上的像素的行號vnRow成員變量賦值為變量A006對應的光線A004對應的虛擬相機A003的虛擬像素平面上的像素的行號,把變量A006的可視場景點對應的虛擬相機的虛擬像素平面上的像素的列號vnCol成員變量賦值為變量A006對應的光線A004對應的虛擬相機A003的虛擬像素平面上的像素的列號,把變量A006的從可視場景點散射進入對應虛擬相機的光線的光亮度vsL成員變量賦值為0;
步驟Step202-2:把變量A006添加到列表Ltvspt中;
3)計算經每個可視場景點散射進入對應的虛擬相機的光線的光亮度,具體方法如下:
步驟Step301:對列表Ltvspt中的每個元素B001,執行如下操作:
按均勻分布在面光源上產生一個隨機光源采樣點B002;把元素B001存儲的數據結構TVSPT類型的變量的可視場景點對應的光源采樣點位置vsQ成員變量賦值為光源采樣點B002所在位置;判斷從光源采樣點B002所在位置到元素B001存儲的數據結構TVSPT類型的變量的可視場景點所在位置vsPos成員變量表示的位置的線段B003與3D場景的幾何對象是否相交,如果相交,則把元素B001存儲的數據結構TVSPT類型的變量的可視場景點對應的光源可見性vsV成員變量賦值為0,否則把元素B001存儲的數據結構TVSPT類型的變量的可視場景點對應的光源可見性vsV成員變量賦值為1;
步驟Step302:以數據結構TVSPT類型的變量的可視場景點所在位置vsPos成員變量的值作為主鍵值,把列表Ltvspt中的所有元素存儲的數據結構TVSPT類型的變量保存在一個kd樹空間數據結構C001中;
步驟Step303:對列表Ltvspt中的每個元素B001,執行如下子步驟:
步驟Step303-1:在計算機存儲器中創建一個列表C002,列表C002的每個元素存儲一個數據結構TVSPT類型的變量,令列表C002為空;從kd樹空間數據結構C001中找出滿足條件COND1的所有數據結構TVSPT類型的變量,并把這些被找出的數據結構TVSPT類型的變量添加到列表C002中;條件COND1為:kd樹空間數據結構C001中存儲的數據結構TVSPT類型的變量的可視場景點所在位置vsPos成員變量表示的位置到元素B001存儲的數據結構TVSPT類型的變量的可視場景點所在位置vsPos成員變量表示的位置的距離小于Td;
步驟Step303-2:對列表C002中的每個元素C003,執行如下操作:
步驟Step303-2-1:令Vs代表元素C003存儲的數據結構TVSPT類型的變量的可視場景點所在位置的幾何對象表面的法向量vsNrm成員變量表示的向量,令Vr代表元素B001存儲的數據結構TVSPT類型的變量的可視場景點所在位置的幾何對象表面的法向量vsNrm成員變量表示的向量;如果(Vs·Vr)/(|Vs|·|Vr|)小于Tv,則從列表C002中刪除元素C003,并轉步驟Step303-2-2,|Vs|表示Vs的長度,|Vr|表示Vr的長度;令P1代表元素C003存儲的數據結構TVSPT類型的變量的可視場景點所在位置vsPos成員變量表示的位置,令P2代表元素B001存儲的數據結構TVSPT類型的變量的可視場景點所在位置vsPos成員變量表示的位置,令Ql代表元素C003存儲的數據結構TVSPT類型的變量的可視場景點對應的光源采樣點位置vsQ成員變量表示的位置,令Vl1代表從Ql指向P1的向量,令Vl2代表從Ql指向P2的向量;如果(Vl1·Vl2)/(|Vl1|·|Vl2|)小于Tl,則從列表C002中刪除元素C003,|Vl1|表示Vl1的長度,|Vl2|表示Vl2的長度;
步驟Step303-2-2:針對元素C003的操作結束;
步驟Step303-3:在計算機的存儲器中創建一個列表C004,列表C004的每個元素存儲一個數據結構TALSPT類型的變量,令列表C004為空;對列表C002中的每個元素C005,執行如下操作:
創建一個數據結構TALSPT類型的變量C006,把元素C005存儲的數據結構TVSPT類型的變量的可視場景點對應的光源采樣點位置vsQ成員變量的值賦給變量C006的光源采樣點位置lsPos成員變量,把元素C005存儲的數據結構TVSPT類型的變量的可視場景點對應的光源可見性vsV成員變量的值賦給變量C006的光源可見性lsV成員變量;把變量C006添加到列表C004中;
步驟Step303-4:令NC004表示列表C004的元素個數;如果NC004小于Nals,則按均勻分布在面光源上產生Nals-NC004個隨機光源采樣點C007,同時在計算機的存儲器中創建Nals-NC004個數據結構TALSPT類型的變量C008,Nals-NC004個隨機光源采樣點C007和Nals-NC004個數據結構TALSPT類型的變量C008一一對應,把每個隨機光源采樣點C007所在位置賦值給與之對應的變量C008的光源采樣點位置lsPos成員變量;判斷從每個隨機光源采樣點C007到元素B001存儲的數據結構TVSPT類型的變量的可視場景點所在位置vsPos成員變量表示的位置的線段與3D場景的幾何對象是否相交,如果相交,把隨機光源采樣點C007對應的變量C008的光源可見性lsV成員變量賦值為0,否則把隨機光源采樣點C007對應的變量C008的光源可見性lsV成員變量賦值為1;
步驟Step303-5:令VSPOINT代表元素B001存儲的數據結構TVSPT類型的變量的可視場景點所在位置vsPos成員變量表示的位置,令NCam代表元素B001存儲的數據結構TVSPT類型的變量的可視場景點對應的虛擬相機編號nCam成員變量表示的編號;根據光子圖PMap和元素B001存儲的數據結構TVSPT類型的變量的可視場景點所在位置vsPos成員變量的值、可視場景點所在位置的幾何對象表面的法向量vsNrm成員變量的值,使用最終聚集技術計算面光源發出的光照先經其他3D場景點散射到VSPOINT位置后,再經VSPOINT位置散射進入第NCam個虛擬相機的光亮度D001;根據列表C004中存儲的所有數據結構TALSPT類型的變量的光源采樣點位置lsPos成員變量的值來確定蒙特卡羅直接光照亮度值估計所需的光源采樣點,用列表C004中存儲的所有數據結構TALSPT類型的變量的光源可見性lsV成員變量的值作為對應光源采樣點對VSPOINT位置的可見性近似值,使用蒙特卡羅直接光照亮度值估計技術來計算面光源發出的光照直接經VSPOINT位置散射進入第NCam個虛擬相機的光亮度D002;把光亮度D001與光亮度D002之和賦值給元素B001存儲的數據結構TVSPT類型的變量的從可視場景點散射進入對應虛擬相機的光線的光亮度vsL成員變量;
4)根據列表Ltvspt中的元素,生成光場投影圖像,具體方法如下:
對于包含Ncamr×Ncamc個虛擬相機的虛擬相機陣列中的每個虛擬相機A003,做如下操作:
步驟Step401:在計算機的存儲器中創建一個包含Npixr行、Npixc列元素的二維數組ILLUMIN,Npixr為虛擬相機A003的虛擬像素平面上的像素行數,Npixc為虛擬相機A003的虛擬像素平面上的像素列數;數組ILLUMIN的元素與虛擬相機A003的虛擬像素平面上的像素一一對應;數組ILLUMIN用于存儲經虛擬相機A003的虛擬像素平面上的像素對應的可視場景點散射進入虛擬相機A003的光亮度;把數組ILLUMIN的每個元素賦值為0;計算虛擬相機A003在虛擬相機陣列中的編號IDCam;在計算機的存儲器中創建一個列表D003,令列表D003為空;把列表Ltvspt中的滿足條件COND2的所有元素D004放到列表D003中;條件COND2為:元素D004存儲的數據結構TVSPT類型的變量的可視場景點對應的虛擬相機編號nCam等于編號IDCam;對列表D003的每個元素D005,做如下操作:
令IdR代表元素D005存儲的數據結構TVSPT類型的變量的可視場景點對應的虛擬相機的虛擬像素平面上的像素的行號vnRow成員變量表示的行號,令IdC代表元素D005存儲的數據結構TVSPT類型的變量的可視場景點對應的虛擬相機的虛擬像素平面上的像素的列號vnCol成員變量表示的列號,把元素D005存儲的數據結構TVSPT類型的變量的從可視場景點散射進入對應虛擬相機的光線的光亮度vsL成員變量的值賦給數組ILLUMIN的第IdR行、第IdC列元素;
步驟Step402:把數組ILLUMIN的每個元素保存的光亮度值轉換成虛擬相機A003拍攝3D場景得到的畫面圖像像素顏色值,并把畫面圖像像素顏色值保存到與虛擬相機A003相對應的圖像文件中,該圖像文件存儲的就是一幅光場投影圖像。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于長春理工大學,未經長春理工大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201711175280.X/1.html,轉載請聲明來源鉆瓜專利網。





