午夜毛片免费看,老师老少妇黄色网站,久久本道综合久久伊人,伊人黄片子

基于掃描射線的3d場(chǎng)景裁剪方法

文檔序號(hào):6365344閱讀:191來源:國(guó)知局
專利名稱:基于掃描射線的3d場(chǎng)景裁剪方法
基于掃描射線的3D場(chǎng)景裁剪方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種3D場(chǎng)景實(shí)時(shí)渲染時(shí)的裁剪方法,主要通過對(duì)場(chǎng)景中的模型進(jìn)行快速射線掃描檢測(cè),解決3D場(chǎng)景模型的可見性判斷問題。
背景技術(shù)
3D場(chǎng)景是由一定數(shù)量的場(chǎng)景模型構(gòu)成,如何很好地表示出包含著成千上萬物體的復(fù)雜場(chǎng)景,因此需要場(chǎng)景管理,給場(chǎng)景提供良好的層次關(guān)系,以便更好地進(jìn)行篩選(Culling)和隱藏面消除(Hidden surface removal)。場(chǎng)景管理涉及到可視性處理(Visibility processing)和碰撞檢測(cè)(Collision detection),系統(tǒng)需要判斷場(chǎng)景的哪些部分在視見約束體之內(nèi)。目前對(duì)3D場(chǎng)景組織管理的成熟技術(shù)方案主要包括BSP (BinarySpace Partioning trees)、Portal、四叉樹、八叉樹等。這些技術(shù)要求在場(chǎng)景制作期對(duì)場(chǎng)景進(jìn)行空間分割,過程復(fù)雜。除Portal技術(shù)外,其他技術(shù)無法有效地處理空間遮擋關(guān)系,但Portal技術(shù)在開放式室外3D場(chǎng)景管理領(lǐng)域并不適用。對(duì)復(fù)雜的大型3D場(chǎng)景進(jìn)行實(shí)時(shí)渲染,要求有一個(gè)高效的3D場(chǎng)景裁剪單元,裁減的目的是盡可能減少需要渲染的場(chǎng)景模型數(shù)量,來降低圖形渲染壓力,提高程序的運(yùn)行效率。

發(fā)明內(nèi)容本發(fā)明要解決的技術(shù)問題,在于提供一種基于掃描射線的3D場(chǎng)景裁剪方法,在運(yùn)行期通過射線檢測(cè)體替代場(chǎng)景模型進(jìn)行快速射線掃描,有效解決了場(chǎng)景模型的可見性判斷問題,并且不受3D場(chǎng)景布局方式的限制,適用于絕大多數(shù)的室內(nèi)、室外3D場(chǎng)景管理。本發(fā)明是這樣實(shí)現(xiàn)的一種基于掃描射線的3D場(chǎng)景裁剪方法,包括如下步驟步驟10、建立原始3D場(chǎng)景,該3D場(chǎng)景由多個(gè)場(chǎng)景模型構(gòu)成;步驟20、針對(duì)每個(gè)場(chǎng)景模型建立一個(gè)射線檢測(cè)體,該射線檢測(cè)體是盡可能包裹住場(chǎng)景模型的幾何體;步驟30、建立每個(gè)射線檢測(cè)體與對(duì)應(yīng)場(chǎng)景模型的映射關(guān)系;步驟40、根據(jù)場(chǎng)景攝像機(jī)當(dāng)前的坐標(biāo)與朝向,建立一個(gè)均勻分布于場(chǎng)景攝像機(jī)視錐內(nèi)的射線簇,射線簇內(nèi)每條射線長(zhǎng)度不小于攝像機(jī)遠(yuǎn)裁剪面的長(zhǎng)度;步驟50、在當(dāng)前幀,按一定順序遍歷射線簇中的每一條射線,對(duì)射線檢測(cè)體進(jìn)行相交檢測(cè),如果某個(gè)射線檢測(cè)體被射線命中,則將該射線檢測(cè)體存放于容器中,并針對(duì)該射線檢測(cè)體標(biāo)記當(dāng)前時(shí)刻,此時(shí)當(dāng)前時(shí)刻為初始值,記為to ;同時(shí)規(guī)定這個(gè)射線檢測(cè)體在一激活周期內(nèi)都不從容器中主動(dòng)移除,該激活周期記為T,如果被命中的檢測(cè)體早已經(jīng)存在于容器中,則更新to值為最后一次命中的當(dāng)前時(shí)刻;步驟60、遍歷容器中的每一個(gè)射線檢測(cè)體,如果當(dāng)前時(shí)刻t < to+τ,則根據(jù)所述映射關(guān)系找到該射線檢測(cè)體對(duì)應(yīng)的場(chǎng)景模型,對(duì)場(chǎng)景模型進(jìn)行渲染;如果當(dāng)前時(shí)刻t > =to+T,則認(rèn)為該射線檢測(cè)體激活壽命超時(shí),將該射線檢測(cè)體從容器中移除;步驟70、在下一幀,將射線簇向一預(yù)定方向偏移一定角度進(jìn)行掃描;;
步驟80、重復(fù)步驟50到70,直到最右側(cè)的射線的達(dá)到視錐右邊界時(shí)結(jié)束。其中,所述射線檢測(cè)體形狀的復(fù)雜度是隨檢測(cè)精度、檢測(cè)效率的提高而提高。其中,所述射線檢測(cè)體的形狀可以是球形、AABB包圍盒、或OBB包圍盒。其中,所述步驟30建立每個(gè)射線檢測(cè)體與對(duì)應(yīng)場(chǎng)景模型的映射關(guān)系是使用哈希表來建立,哈希表的鍵是每個(gè)射線檢測(cè)體的內(nèi)存地址,值是場(chǎng)景模型的內(nèi)存地址或者是場(chǎng)景模型的文件路徑。其中,所述步驟70射線簇進(jìn)行掃描時(shí)是采用逐行掃描或逐列掃描的方式進(jìn)行本發(fā)明具有如下優(yōu)點(diǎn)在運(yùn) 行期通過射線檢測(cè)體替代場(chǎng)景模型進(jìn)行快速射線掃描,能夠有效的處理場(chǎng)景模型之間的遮擋關(guān)系,制作期不需對(duì)模型空間進(jìn)行分割,從而有效解決了場(chǎng)景模型的可見性判斷問題,并且不受3D場(chǎng)景布局方式的限制,適用于絕大多數(shù)的室內(nèi)、室外3D場(chǎng)景管理。

下面參照附圖結(jié)合實(shí)施例對(duì)本發(fā)明作進(jìn)一步的說明。圖I為本發(fā)明方法的流程框圖。圖2為本發(fā)明方法建立的一原始3D場(chǎng)景示意圖。圖3為本發(fā)明針對(duì)圖I中原始3D場(chǎng)景的每個(gè)場(chǎng)景模型建立一個(gè)射線檢測(cè)體示意圖。圖4為本發(fā)明射線簇掃描狀態(tài)示意圖。圖5為本發(fā)明射線簇逐行掃描過程原理示意圖。
具體實(shí)施方式請(qǐng)參閱圖I至圖5所示,本發(fā)明提供一種基于掃描射線的3D場(chǎng)景裁剪方法,包括如下步驟步驟10、建立原始3D場(chǎng)景,如圖2所示,該3D場(chǎng)景由多個(gè)場(chǎng)景模型構(gòu)成。步驟20、針對(duì)每個(gè)場(chǎng)景模型建立一個(gè)射線檢測(cè)體,如圖3所示,該射線檢測(cè)體是盡可能包裹住場(chǎng)景模型的幾何體,但應(yīng)盡可能簡(jiǎn)單;所述射線檢測(cè)體形狀的復(fù)雜度是隨檢測(cè)精度、檢測(cè)效率的提高而提高。在實(shí)際使用過程中,根據(jù)應(yīng)用需求和程序運(yùn)行環(huán)境不同,該幾何體的形狀可以是球形、AABB包圍盒、或OBB包圍盒,在程序中可使用數(shù)學(xué)模型表述,如球方程、橢球方程或由多個(gè)平面方程描述的多面體;也可使用一簇頂點(diǎn),借助DirectX (Direct extension,簡(jiǎn)稱 DX)或 OpenGL (Open Graphics Library)等圖形庫(kù)構(gòu)造成為一個(gè)模型。其中DirectX是由微軟公司創(chuàng)建的多媒體編程接口,旨在使基于windows的計(jì)算機(jī)成為運(yùn)行和顯示具有豐富多媒體元素(例如全色圖形、視頻、3D動(dòng)畫和豐富音頻)的應(yīng)用程序的理想平臺(tái)。應(yīng)用程序可以通過使用DirectX API來訪問這些功能。OpenGL是一個(gè)專業(yè)的圖形程序接口,是一個(gè)功能強(qiáng)大,調(diào)用方便的底層圖形庫(kù),是一個(gè)與硬件無關(guān)的軟件接口,可以在不同的平臺(tái)如Windows、Unix、Linux、Mac0S、0S/2之間進(jìn)行移植。應(yīng)用程序可使用DirectX和OpenGL的API來進(jìn)行圖形的繪制和模型的渲染。步驟30、建立每個(gè)射線檢測(cè)體與對(duì)應(yīng)場(chǎng)景模型的映射關(guān)系,其映射關(guān)系可使用哈希表來建立,哈希表的鍵是每個(gè)射線檢測(cè)體的內(nèi)存地址,哈希表的值是場(chǎng)景模型的內(nèi)存地址或者是場(chǎng)景模型的文件路徑。步驟40、如圖4所示,根據(jù)場(chǎng)景攝像機(jī)當(dāng)前的坐標(biāo)與朝向,建立一個(gè)均勻分布于場(chǎng)景攝像機(jī)視錐內(nèi)的射線簇,射線簇內(nèi)每條射線長(zhǎng)度不小于攝像機(jī)遠(yuǎn)裁剪面的長(zhǎng)度;所述場(chǎng)景攝像機(jī)是在3D場(chǎng)景中用于拍攝場(chǎng)景的虛擬攝像機(jī)。對(duì)同一個(gè)3D場(chǎng)景來說,通過調(diào)整攝像機(jī)的坐標(biāo),拍攝角度,最大拍攝距離等參數(shù),可拍攝3D場(chǎng)景的不同部分,并得到不同的3D畫面。DirectX和OpenGL均有對(duì)應(yīng)的API來獲得及設(shè)定虛擬攝像機(jī)。視錐是場(chǎng)景攝像機(jī)當(dāng)前能拍攝的錐體范圍。步驟50、在當(dāng)前幀,按一定順序遍歷射線簇中的每一條射線,對(duì)射線檢測(cè)體進(jìn)行相交檢測(cè),如果某個(gè)射線檢測(cè)體被射線命中,則將該射線檢測(cè)體存放于容器中,并針對(duì)該射線 檢測(cè)體標(biāo)記當(dāng)前時(shí)刻,此時(shí)當(dāng)前時(shí)刻為初始值,記為to ;同時(shí)規(guī)定這個(gè)射線檢測(cè)體在一激活周期內(nèi)都不從容器中主動(dòng)移除,該激活周期記為T,如果被命中的檢測(cè)體早已經(jīng)存在于容器中,則更新to值為最后一次命中的當(dāng)前時(shí)刻;本發(fā)明的容器是程序設(shè)計(jì)中用于存儲(chǔ)多個(gè)程序?qū)ο蟮拇鎯?chǔ)結(jié)構(gòu),不同的編程語(yǔ)言提供不同的容器。例如在C/C++語(yǔ)言中,可使用一個(gè)數(shù)組來存放多個(gè)同類型的對(duì)象或基礎(chǔ)類型變量,這個(gè)數(shù)組即稱為容器;也可使用STL (標(biāo)準(zhǔn)模板庫(kù))中的諸如vector、Iist、hash_map等多種存儲(chǔ)結(jié)構(gòu)來存放同類型的程序?qū)ο?這些也稱為容器。步驟60、遍歷容器中的每一個(gè)射線檢測(cè)體,如果當(dāng)前時(shí)刻t < tO+T,則根據(jù)所述映射關(guān)系找到該射線檢測(cè)體對(duì)應(yīng)的場(chǎng)景模型,調(diào)用圖形繪制引擎的API,對(duì)場(chǎng)景模型進(jìn)行渲染;未在容器中的模型,不參加渲染。如果當(dāng)前時(shí)刻t>=tO+T,則認(rèn)為該射線檢測(cè)體激活壽命超時(shí),將該射線檢測(cè)體從容器中移除;步驟70、在下一巾貞,將射線簇向一預(yù)定方向偏移一定角度進(jìn)行掃描;掃描時(shí)可按照CRT顯像管電子槍的發(fā)射原理,CRT顯像管的電子槍的發(fā)射原理顯像管是一個(gè)真空管,內(nèi)部有一個(gè)(或多個(gè))電子槍,電子槍發(fā)射出電子束,電子束射到真空管前屏幕表面的內(nèi)側(cè)時(shí),屏幕內(nèi)側(cè)的發(fā)光涂料受到電子束的擊打而發(fā)光產(chǎn)生圖像。步驟80、重復(fù)步驟50到70,直到最右側(cè)的射線的達(dá)到視錐右邊界時(shí)結(jié)束。其中,掃描時(shí)可采用逐行掃描或逐列掃描,電子槍發(fā)射的電子束順序地一行接著一行連續(xù)掃描或一列接著一列的連續(xù)進(jìn)行,方向可以不限,這種掃描方式稱為逐行掃描或逐列掃描。如圖5所示,本發(fā)明射線簇逐行掃描過程原理示意圖,掃描時(shí),射線簇中每條射線均逐行掃描一個(gè)小方框的范圍,每個(gè)小方框內(nèi)可以從左上角的位置開始,從左向右進(jìn)行掃描,一行結(jié)束后,另起一行,直到小方框的最右下角的位置結(jié)束。綜上所述,本發(fā)明是在運(yùn)行期通過射線檢測(cè)體替代場(chǎng)景模型進(jìn)行快速射線掃描,能夠有效的處理場(chǎng)景模型之間的遮擋關(guān)系,制作期不需對(duì)模型空間進(jìn)行分割,從而有效解決了場(chǎng)景模型的可見性判斷問題,并且不受3D場(chǎng)景布局方式的限制,適用于絕大多數(shù)的室內(nèi)、室外3D場(chǎng)景管理。雖然以上描述了本發(fā)明的具體實(shí)施方式
,但是熟悉本技術(shù)領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,我們所描述的具體的實(shí)施例只是說明性的,而不是用于對(duì)本發(fā)明的范圍的限定,熟悉本領(lǐng)域的技術(shù)人員在依照本發(fā)明的精神所作的等效的修飾以及變化,都應(yīng)當(dāng)涵蓋在本發(fā)明的權(quán)利要求所保護(hù)的范圍內(nèi)。
權(quán)利要求
1.ー種基于掃描射線的3D場(chǎng)景裁剪方法,其特征在于包括如下步驟 步驟10、建立原始3D場(chǎng)景,該3D場(chǎng)景由多個(gè)場(chǎng)景模型構(gòu)成; 步驟20、針對(duì)每個(gè)場(chǎng)景模型建立ー個(gè)射線檢測(cè)體,該射線檢測(cè)體是盡可能包裹住場(chǎng)景模型的幾何體; 步驟30、建立每個(gè)射線檢測(cè)體與對(duì)應(yīng)場(chǎng)景模型的映射關(guān)系; 步驟40、根據(jù)場(chǎng)景攝像機(jī)當(dāng)前的坐標(biāo)與朝向,建立一個(gè)均勻分布于場(chǎng)景攝像機(jī)視錐內(nèi)的射線簇,射線簇內(nèi)每條射線長(zhǎng)度不小于攝像機(jī)遠(yuǎn)裁剪面的長(zhǎng)度; 步驟50、在當(dāng)前幀,按一定順序遍歷射線簇中的每一條射線,對(duì)射線檢測(cè)體進(jìn)行相交檢測(cè),如果某個(gè)射線檢測(cè)體被射線命中,則將該射線檢測(cè)體存放于容器中,并針對(duì)該射線檢測(cè)體標(biāo)記當(dāng)前時(shí)刻,此時(shí)當(dāng)前時(shí)刻為初始值,記為to ;同時(shí)規(guī)定這個(gè)射線檢測(cè)體在ー激活周期內(nèi)都不從容器中主動(dòng)移除,該激活周期記為T,如果被命中的檢測(cè)體早已經(jīng)存在于容器中,則更新to值為最后一次命中的當(dāng)前時(shí)刻; 步驟60、遍歷容器中的每ー個(gè)射線檢測(cè)體,如果當(dāng)前時(shí)刻t < tO+T,則根據(jù)所述映射關(guān)系找到該射線檢測(cè)體對(duì)應(yīng)的場(chǎng)景模型,對(duì)場(chǎng)景模型進(jìn)行渲染;如果當(dāng)前時(shí)刻t > = tO+T,則認(rèn)為該射線檢測(cè)體激活壽命超時(shí),將該射線檢測(cè)體從容器中移除; 步驟70、在下ー幀,將射線簇向ー預(yù)定方向偏移一定角度進(jìn)行掃描; 步驟80、重復(fù)步驟50到70,直到最右側(cè)的射線的達(dá)到視錐右邊界時(shí)結(jié)束。
2.根據(jù)權(quán)利要求I所述的基于掃描射線的3D場(chǎng)景裁剪方法,其特征在于所述射線檢測(cè)體形狀的復(fù)雜度是隨檢測(cè)精度、檢測(cè)效率的提聞而提聞。
3.根據(jù)權(quán)利要求I所述的基于掃描射線的3D場(chǎng)景裁剪方法,其特征在于所述射線檢測(cè)體的形狀是球形、AABB包圍盒、或OBB包圍盒。
4.根據(jù)權(quán)利要求I所述的基于掃描射線的3D場(chǎng)景裁剪方法,其特征在于所述步驟30建立每個(gè)射線檢測(cè)體與對(duì)應(yīng)場(chǎng)景模型的映射關(guān)系是使用哈希表來建立,哈希表的鍵是每個(gè)射線檢測(cè)體的內(nèi)存地址,值是場(chǎng)景模型的內(nèi)存地址或者是場(chǎng)景模型的文件路徑。
5.根據(jù)權(quán)利要求I所述的基于掃描射線的3D場(chǎng)景裁剪方法,其特征在于所述步驟70射線簇進(jìn)行掃描時(shí)是采用逐行掃描或逐列掃描的方式進(jìn)行。
全文摘要
本發(fā)明提供一種基于掃描射線的3D場(chǎng)景裁剪方法,其是針對(duì)3D場(chǎng)景中場(chǎng)景模型建立一個(gè)射線檢測(cè)體,該射線檢測(cè)體盡可能包裹住場(chǎng)景模型;建立每個(gè)射線檢測(cè)體與對(duì)應(yīng)場(chǎng)景模型的映射關(guān)系;根據(jù)場(chǎng)景攝像機(jī)當(dāng)前的坐標(biāo)與朝向,建立一個(gè)均勻分布于場(chǎng)景攝像機(jī)視錐內(nèi)的射線簇,射線簇內(nèi)每條射線長(zhǎng)度不小于攝像機(jī)遠(yuǎn)裁剪面的長(zhǎng)度;在當(dāng)前幀,按一定順序遍歷射線簇中的每一條射線,對(duì)射線檢測(cè)體進(jìn)行相交檢測(cè),如果某個(gè)射線檢測(cè)體被射線命中,則將該射線檢測(cè)體存放于容器中,遍歷容器中的每一個(gè)射線檢測(cè)體,則根據(jù)所述映射關(guān)系找到該射線檢測(cè)體對(duì)應(yīng)的場(chǎng)景模型,對(duì)場(chǎng)景模型進(jìn)行渲染。本發(fā)明在運(yùn)行期通過射線檢測(cè)體替代場(chǎng)景模型進(jìn)行快速射線掃描,適用于各種3D場(chǎng)景管理。
文檔編號(hào)G06T15/30GK102629389SQ201210044448
公開日2012年8月8日 申請(qǐng)日期2012年2月24日 優(yōu)先權(quán)日2012年2月24日
發(fā)明者羅丁 申請(qǐng)人:福建天趣網(wǎng)絡(luò)科技有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1