[發明專利]一種基于GPU的光線跟蹤方法在審
| 申請號: | 201611190750.5 | 申請日: | 2016-12-21 |
| 公開(公告)號: | CN106776028A | 公開(公告)日: | 2017-05-31 |
| 發明(設計)人: | 高天寒;張一大 | 申請(專利權)人: | 東北大學 |
| 主分類號: | G06F9/50 | 分類號: | G06F9/50;G06T15/06 |
| 代理公司: | 沈陽東大知識產權代理有限公司21109 | 代理人: | 胡曉男 |
| 地址: | 110819 遼寧*** | 國省代碼: | 遼寧;21 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 gpu 光線 跟蹤 方法 | ||
1.一種基于GPU的光線跟蹤方法,其特征在于,包括:
步驟1:CPU端加載場景模型,解析得到三角片元信息、材質信息、光源信息后打包發送給GPU端;
步驟2:GPU端得到三角片元信息、材質信息、光源信息,分別存儲到對應的全局存儲器和常量存儲器;
步驟3:GPU端建立以整個3D場景的場景模型為根節點的Kd-Tree;
步驟4:GPU端進行光線跟蹤操作;
步驟5:CPU端進行后期圖像處理:CPU端讀取圖像緩存區的像素信息,顯示到屏幕,完成渲染。
2.根據權利要求1所述的基于GPU的光線跟蹤方法,其特征在于,所述步驟1,包括:
步驟1.1:CPU端開辟內存或顯存空間,將場景模型加載到內存或顯存空間中;
步驟1.2:CPU端對場景模型進行解析,得到三角片元信息、材質信息、光源信息;
步驟1.3:將解析好的三角片元信息、材質信息、光源信息分別打包發送到GPU端。
3.根據權利要求1所述的基于GPU的光線跟蹤方法,其特征在于,所述步驟3,包括:
步驟3.1:建立3D場景中的各個場景模型的包圍盒及整個3D場景模型的包圍盒;
步驟3.2:以整個3D場景模型的包圍盒為根節點,自上而下進行分割,建立以Kd-Tree。
4.根據權利要求3所述的基于GPU的光線跟蹤方法,其特征在于,所述步驟3.2,包括:
步驟3.2.1:分別將整個3D場景模型的包圍盒沿著不同軸向分割成兩個子空間即得到左孩子節點、右孩子節點,分別劃入左子樹、右子樹;
步驟3.2.2:計算不同軸向的分割成本C(V)≈Kt+Ki(PL Nl+ PR Nr),Nl,Nr為左孩子節點、右孩子節點中的場景模型包圍盒數量,Kt、Ki為常數,PL、PR為光線進入左子樹、右子樹的概率,PL=SA(VL)/SA(V),SA(VL)表示左孩子節點中的場景模型包圍盒的表面積和,SA(V) 表示3D場景中的所有場景模型包圍盒的表面積和,PR=SA(VR)/SA(V),SA(VR)表示右孩子節點中的場景模型包圍盒的表面積和;
步驟3.2.3:選擇最小的分割成本對應的軸向分割平面,將整個3D場景模型的包圍盒分割為左孩子節點、右孩子節點;
步驟3.2.4:對步驟3.2.3中分割得到的左孩子節點、右孩子節點均執行步驟3.2.1~3.2.3;
步驟3.2.5:判斷是否到達最大分割深度或左孩子節點、右孩子節點內部三角片元數均小于指定閾值,是則停止繼續分割,當前的分割結果即建立的Kd-Tree;否則執行步驟3.2.1。
5.根據權利要求1所述的基于GPU的光線跟蹤方法,其特征在于,所述步驟4,包括:
步驟4.1:初始化光線簇:根據3D場景中的相機位置生成光線,作為光線簇,存儲在光線簇緩存區;
步驟4.2:判定當前光線是否與Kd-Tree的包圍盒相交:如果相交,則進行包圍盒內部的場景模型與當前光線的相交測試,執行步驟4.3;否則當前光線不與Kd-Tree的包圍盒內部的場景模型相交,將該場景模型作為背景信息填充到圖像緩存區;
步驟4.3:如果當前光線與包圍盒內部的場景模型相交,則根據光源位置判斷交點的可見性:如果光源被遮擋,則交點不可見,如果光源未被遮擋,則記錄該交點處為光照處,并將該交點填充到圖像緩存區;如果當前光線與包圍盒內部的場景模型不相交,則將該場景模型作為背景信息填充到圖像緩存區;
步驟4.4:根據交點處場景模型的光線信息計算反射光線,并將反射光線設為當前光線,繼續跟蹤;
步驟4.5:當前光線簇緩存區非空且未到達最大遍歷深度,返回步驟4.2,對光線簇緩存區中的下一條光線進行跟蹤;否則停止跟蹤。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于東北大學,未經東北大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201611190750.5/1.html,轉載請聲明來源鉆瓜專利網。





