亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        改進(jìn)的射線拾取法在地質(zhì)體可視化中的應(yīng)用

        2011-05-14 11:58:22王雪莉唐志輝
        關(guān)鍵詞:方法

        王雪莉,唐志輝

        (中國石油大學(xué),山東 東營 257061)

        在三維地質(zhì)體可視化中,不僅要繪制圖形,而且要允許操作者能夠通過輸入設(shè)備(如鼠標(biāo))來操縱屏幕上的物體,有時還需要獲取物體的空間坐標(biāo)或圖形數(shù)值,這些都需要以拾取作為實現(xiàn)的基礎(chǔ)?;诙S環(huán)境的拾取比較容易實現(xiàn),但是現(xiàn)實生活中更多接觸的是三維空間實體,應(yīng)從三維的角度來解決問題,所以在三維環(huán)境下的拾取問題也顯得更加重要。

        拾取方法有傳統(tǒng)的射線拾取法 (Ray-casting)[1-2],Depth ray方法[3]、基于視口空間的拾取法[4]、基于對象緩沖區(qū)的拾取法[5]、3D bubble cursor[6]方法等。在這些方法中,基于對象緩沖區(qū)的拾取法與三維場景的物體幾何形狀無關(guān),避免了空間求交的復(fù)雜運算,但是拾取的精度較低,且只能拾取可見物體;傳統(tǒng)Ray-casting法拾取精度高,但是只能拾取可見物體;基于視口空間的拾取方法要進(jìn)行多次空間變換,過于復(fù)雜;Depth ray和3D bubble cursor方法操作較復(fù)雜,更適用于虛擬現(xiàn)實環(huán)境中。本文結(jié)合Depth ray算法實現(xiàn)了改進(jìn)了的射線拾取法,能夠拾取被遮擋的物體。

        1 Ray-casting算法

        1.1 Ray-casting算法原理

        Ray-casting算法又稱為射線投擲法 (簡稱射線法)。拾取操作指當(dāng)用戶在屏幕上用鼠標(biāo)點擊某個圖元,應(yīng)用程序能返回到該圖元的一個標(biāo)志和某些相關(guān)信息。射線拾取算法的一般思想是:得到鼠標(biāo)點擊處的屏幕坐標(biāo),并將其轉(zhuǎn)換為客戶區(qū)坐標(biāo),實現(xiàn)視區(qū)反變換;然后,通過投影矩陣和觀察矩陣把該坐標(biāo)轉(zhuǎn)換為通過視點和鼠標(biāo)點擊點的一條射入場景的射線,該射線如果與場景模型的圖元相交,則獲取該相交圖元的信息。因此,從數(shù)學(xué)角度來看,只要得到射線的方向矢量和射線的出射點就確定了射線方程,最后就可以利用射線判斷其與空間一個圖元是否相交,從而實現(xiàn)圖元的選取。

        1.2 Ray-casting算法思路

        傳統(tǒng)射線拾取法的處理過程大致可以分為以下幾個步驟:

        (1)檢測鼠標(biāo)點擊處的屏幕坐標(biāo),并將其轉(zhuǎn)換為客戶區(qū)坐標(biāo),實現(xiàn)視區(qū)反變換。

        (2)計算射線對應(yīng)點在觀察坐標(biāo)空間內(nèi)的坐標(biāo)。根據(jù)投影原理,三維變換相當(dāng)于通過一個放置在三維世界中的攝像機來觀察當(dāng)前場景的對象。如圖1所示,設(shè)頂點O處是攝像機,那么,視野的邊界就構(gòu)成了一個視錐體。圖1中遠(yuǎn)近兩個裁剪面構(gòu)成了平截頭體,點P和點P′分別在遠(yuǎn)裁剪面 ABCD和近裁剪面 A′B′C′D′上。點擊屏幕上的點P反映到視錐中,就是選中了所有的從點P′到點P的點。對應(yīng)的情況是,用戶單擊鼠標(biāo)獲得屏幕上的某一點,即是指定了從視點指向屏幕深處的某一方向,也就確定了屏幕上某條從O點出發(fā)的射線(在圖中即為OP),這就是拾取射線。

        圖1 視錐體示意圖

        對于同一位置上重疊物體的選擇問題,解決辦法是:從屏幕坐標(biāo)得到射線之后,分別讓重疊的物體與該射線求交,得到交點,然后根據(jù)這些與視點的遠(yuǎn)近確定選擇的對象,這樣就能夠?qū)δ切簳r被其他對象遮住的物體進(jìn)行選取。

        (3)將射線點轉(zhuǎn)換到世界坐標(biāo)空間,得到其在世界坐標(biāo)系中的坐標(biāo)。最終的運算要在世界坐標(biāo)空間中進(jìn)行,所以要把矢量計算所用的點坐標(biāo)全部轉(zhuǎn)化到世界坐標(biāo)空間中,然后在世界坐標(biāo)空間中求交。

        2 Depth ray算法

        Depth ray算法[3]是在傳統(tǒng)射線法基礎(chǔ)上提出的一種新的拾取方法。該方法在射線上設(shè)置一個深度標(biāo)記(depth marker),用戶可控制深度標(biāo)記沿射線移動。拾取時,將場景中的物體與射線求交,然后求相交物體與射線深度標(biāo)記的距離,其中與深度標(biāo)記距離最近的物體即被拾取。

        圖2為Depth ray拾取法示意圖,圖中直線表示拾取射線,黑色圓點表示深度標(biāo)記,框中物體是被拾取物體。在圖2(a)中,中間的圓角矩形被拾取,在圖2(b)中,右邊的圓球被拾取。

        圖2 Depth ray拾取示意圖

        3 三維地質(zhì)體可視化系統(tǒng)中拾取算法實現(xiàn)

        首先構(gòu)建一個地層模型,地層顯示的最小圖元為三角圖元。用戶可以通過操作地層進(jìn)行旋轉(zhuǎn)平移操作,并且可以用普通鼠標(biāo)進(jìn)行拾取操作。拾取的單位可以是某個地層也可以是某個三角圖元。當(dāng)拾取某個特定的地層時,該地層用網(wǎng)格顯示,其他地層被隱藏。當(dāng)拾取三角圖元時,被拾取的圖元變?yōu)橛眉t色顯示。

        傳統(tǒng)射線法拾取精度較高,但是拾取的對象只能是所有與射線相交的對象中距離射線頂點最近的,在有些情況下要拾取被遮擋的物體,而傳統(tǒng)射線法難以實現(xiàn)。Depth-ray方法則通過一個深度標(biāo)記,可以拾取到與射線相交的所有物體,即使物體被遮擋,由于深度標(biāo)記要沿著拾取射線移動,所以當(dāng)與射線相交的物體在拾取射線方向的距離較遠(yuǎn)時會影響該方法的效率。本文根據(jù)傳統(tǒng)射線法和Depth-ray方法,實現(xiàn)了一種擴展了的射線拾取法。其拾取算法思路是:拾取時,將空間中的對象與射線求交,把與射線相交的所有對象保存起來,用戶可以在這些保存的對象中選擇一個作為拾取的對象,這樣既能保證精確度,又能比Depth-ray方法快。

        本文方法實現(xiàn)步驟如下:

        (1)鼠標(biāo)點擊觸發(fā)拾取動作,把鼠標(biāo)點的Windows窗口坐標(biāo)轉(zhuǎn)換為三維世界坐標(biāo)。實現(xiàn)的關(guān)鍵代碼為:

        其中,worldx、worldy、worldz分別為世界坐標(biāo)空間中鼠標(biāo)點的X、Y、Z坐標(biāo)。

        (2)獲取攝像機在世界坐標(biāo)系中的坐標(biāo),由攝像機所在位置向鼠標(biāo)點發(fā)射射線。

        (3)把空間中的對象分別與射線求交,并將相交對象的相關(guān)信息保存到棧中。保存的信息包括:對象ID、交點坐標(biāo)、交點與攝像機的距離。

        (4)將棧中的對象按照距離由小到大的順序排列。用戶可以根據(jù)需要在棧中切換拾取對象,切換的順序按照交點與攝像機的距離從小到大排列。

        拾取過程中,與射線相交的對象用藍(lán)色標(biāo)記,被拾取的對象用紅色標(biāo)記,拾取的點用綠色標(biāo)記。在本實驗中,單擊鼠標(biāo)左鍵拾取,點擊鍵盤“Z”鍵在棧中切換拾取對象。

        程序運行效果如圖3及圖4所示。圖4表示用戶選擇的拾取對象,拾取時,與射線相交的對象(圖中為三角面片)全部標(biāo)記,其中被拾取的對象用紅色標(biāo)記,其余的用藍(lán)色標(biāo)記。

        本文在三維地質(zhì)體可視化系統(tǒng)中,把傳統(tǒng)射線法和Depth-ray方法相結(jié)合,實現(xiàn)了一種擴展了的射線拾取法,既能夠拾取被遮擋的物體,又能夠保證精確度和速度,在系統(tǒng)應(yīng)用中取得了良好的應(yīng)用效果。

        圖3 顯示地層

        圖4 拾取與射線相交的對象

        [1]BOLT R A.“Put-that-there”: voice and gesture at thegraphics interface[J].Computer Graphics (SIGGRAPH′80 Proceedings), 1980, 14(3): 262-270.

        [2]姚繼權(quán),李曉豁.計算機圖形學(xué)人機交互中三維拾取方法的研究[J].工程設(shè)計學(xué)報,2006,13(2):116-120.

        [3]VANACKEN L, GROSSMAN T, CONINX K.Multimodal selection techniquesfordense and occluded 3D virtual environments[J].International Journal of Human-Computer Studies, 2009, 67(3): 237-255.

        [4]朱明亮,董冰,王祎,等.三維場景中基于視口空間的拾取算法[J].工程圖學(xué)學(xué)報,2008(2):94-97.

        [5]王亞平,余柯,羅堃.在OpenGL中一種新的拾取方法及其應(yīng)用——基于對象緩沖區(qū)的選擇拾取方法[J].工程圖學(xué)學(xué)報,2003(2):60-64.

        [6]VANACKEN L, GROSSMAN T, GROSSMAN T.Exploring the effects of environment density and target visibility on objectselection in 3D virtualenvironments [M].IEEE Symposium on 3D User Interfaces, 2007:116-12.

        猜你喜歡
        方法
        中醫(yī)特有的急救方法
        中老年保健(2021年9期)2021-08-24 03:52:04
        高中數(shù)學(xué)教學(xué)改革的方法
        河北畫報(2021年2期)2021-05-25 02:07:46
        化學(xué)反應(yīng)多變幻 “虛擬”方法幫大忙
        變快的方法
        兒童繪本(2020年5期)2020-04-07 17:46:30
        學(xué)習(xí)方法
        可能是方法不對
        用對方法才能瘦
        Coco薇(2016年2期)2016-03-22 02:42:52
        最有效的簡單方法
        山東青年(2016年1期)2016-02-28 14:25:23
        四大方法 教你不再“坐以待病”!
        Coco薇(2015年1期)2015-08-13 02:47:34
        賺錢方法
        中文字幕中文一区中文字幕| 日本熟妇美熟bbw| 99久久精品费精品国产一区二| 无码精品久久久久久人妻中字| 看曰本女人大战黑人视频| 日韩精品无码区免费专区| 久久波多野结衣av| 最新国产av网址大全| 宅男视频一区二区三区在线观看| 亚洲永久国产中文字幕| 超碰色偷偷男人的天堂| 久久久久久人妻一区精品| 无码aⅴ在线观看| 久久精品国产72国产精福利| 久久精品亚洲国产成人av| 国产av剧情精品麻豆| 黄色av一区二区在线观看| 欧美日韩精品久久久免费观看| 无码人妻丰满熟妇区毛片| 中文字幕欧美一区| 国产精品女同久久久久久| 粉色蜜桃视频完整版免费观看在线| 蜜桃视频在线观看网址| 国产电影无码午夜在线播放| 国产喷水1区2区3区咪咪爱av| 亲子乱aⅴ一区二区三区下载| 图图国产亚洲综合网站| 水蜜桃亚洲一二三四在线| 久久精品国产日本波多麻结衣| 在线天堂中文字幕| 一区二区久久精品66国产精品| 国产伦精品一区二区三区| 男生自撸视频在线观看| 精品女同一区二区三区| 日本大乳高潮视频在线观看| 欧美成人片一区二区三区| 国产白丝在线| 国产精品一级黄色大片| 中文字幕国产亚洲一区| 国产精品福利一区二区| 国产精成人品|