專利名稱:一種在圖形處理器上拾取三維幾何圖元的方法
技術(shù)領(lǐng)域:
本發(fā)明是關(guān)于海量圖元的快速選擇和拾取方法,具體涉及一種圖形處理器GPU上的三 維幾何圖元的拾取方法。
背景技術(shù):
圖形拾取是實現(xiàn)一個圖形編輯系統(tǒng)的關(guān)鍵技術(shù)之一,所謂圖形拾取就是從紛繁的圖中 選擇某一圖形的過程,其目的是只對該選中的圖形進行平移、修改、放縮、旋轉(zhuǎn)和刪除等交 互操作。圖形拾取方式包括:單體拾取和塊拾取兩種方式。單體拾取是用鼠標直接點取單個 圖形的過程,而塊拾取則是用矩形框把要拾取的圖形對象包圍起來的方式,是一種范圍拾 取。塊選取方法往往通過判斷框內(nèi)各圖形的矩形邊界包圍盒(Boundingbox)是否包含在矩 形框中,如包含在其中,則被拾取;否則便不被拾取,屬于一種粗糙的拾取方式。圖形的拾取現(xiàn) 有的方法有兩類, 一類是三維圖形繪制標準OpenGL提供的拾取機制,另一類是基于屏幕 射線求交的拾取方法。
1、 OpenGL選擇機制(字體修改了)
OpenGL為了解決拾取問題,提供了一種基于名稱堆棧的命中記錄的選擇機制。主要 步驟為定義選擇物體和清空名字堆棧,定義記錄存儲數(shù)組,進入選擇模式,進行選擇。在 OpenGL中,拾取物體是利用拾取矩陣和投影變換,將拾取的范圍限制在鼠標熱點的有效 區(qū)中, 一旦觸發(fā)鼠標事件就進入選擇模式并將有效區(qū)初始化,最后利用拾取矩陣拾取有效 區(qū)內(nèi)的物體。有效區(qū)的定義由glPickMatrix()函數(shù)來完成。 一旦拾取成功,就以記錄的形式 返回與拾取物體相關(guān)的信息,并生成一個記錄表示一個物體被命中。
但是這種機制使用限制較多,尤其是對于圖元數(shù)據(jù)量較大的幾何形體或者場景,往往 會因為名字堆棧的溢出而無法成功實現(xiàn)。而頻繁的名稱堆棧的壓入與彈出操作會嚴重影響 拾取的效率。此外,OpenGL的選擇拾取機制使用較為麻煩,需要在正常繪制模式和選擇 繪制模式之間進行切換。
2、 屏幕射線求交拾取法
射線求交拾取法是通過獲取鼠標在屏幕上的點擊點,經(jīng)屏幕坐標轉(zhuǎn)換得到投影點,以 視點為起點,經(jīng)投影點構(gòu)造一條垂直指向屏幕的射線。由于所有顯示在屏幕上的三維物體都位于視域體之內(nèi),因而只需要判斷這條射線與場景中的哪個物體相交。經(jīng)過相交檢測算 法即可選擇得到與該射線相交的幾何圖元。屏幕射線拾取算法的過程如下得到鼠標點擊處的屏幕坐標,并將其轉(zhuǎn)換為客戶區(qū)坐標, 實現(xiàn)視區(qū)反變換;然后,通過投影矩陣和觀察矩陣把該坐標轉(zhuǎn)換為通過視點和鼠標點擊點的 一條射入場景的射線,該射線如果與三維場景模型的圖元相交,則獲取該相交圖元的信息。 因此從數(shù)學(xué)角度來看,只要得到射線的方向矢量和射線的出射點就確定了射線方程,最后就 可以利用射線判斷其與空間一個圖元是否相交,從而實現(xiàn)圖元的選取。這種方法應(yīng)用于幾何體的塊拾取時,則需要將屏幕上的n個點擊點所對應(yīng)的n條射線 構(gòu)成一個選擇體。然后通過算法來對每個點進行判斷處理,在選擇體內(nèi)部的點為所要拾取 的幾何圖元。該方法對于復(fù)雜的待選擇幾何圖元,判斷三維空間中圖元是否位于三維的選 擇體內(nèi)部的算法極其復(fù)雜,需耗費大量的計算資源,耗時也非常巨大,其塊拾取算法在實 際系統(tǒng)中幾乎沒有應(yīng)用價值。隨著2000年以后可編程圖形硬件的引入,基于GPU(Graphics Process Unit)的通用計算 已經(jīng)成為當前許多研究人員關(guān)注的熱點??删幊绦允沟萌藗兛梢猿浞掷肎PU上提供的 頂點處理器、片元處理器或者幾何處理器,設(shè)計一些算法通過整個圖形流水線來完成特定 的任務(wù)?;贕PU的通用計算已經(jīng)廣泛應(yīng)用在代數(shù)計算、流體模擬、數(shù)據(jù)庫操作、圖像 處理和幾何計算中。當前主流的顯卡芯片制造廠商nVIDIA和AMD(ATI)也不斷推出新的 圖形硬件架構(gòu),為GPU通用計算提供有力的支持。2006年底,AMD (ATI)公司發(fā)布了 新一代圖形硬件流處理器(Stream Processor),專門針對金融分析、地質(zhì)分析、生命科學(xué)等 應(yīng)用領(lǐng)域。nVIDIA則在G80芯片上使用了 CUDA(Compute Unified Device Architecture, 統(tǒng)一計算設(shè)備構(gòu)架),以勝任復(fù)雜的通用計算的要求。當前圖形硬件設(shè)計的趨勢是在圖形處理器中提供更多的可編程性。在傳統(tǒng)的圖形流水 線中,幾何光照處理和像素渲染過程僅僅能完成非常有限的一些渲染效果,而且一旦完成 后如果需要改變效果,需要在CPU端計算好改變后的狀態(tài),再次將圖元和像素調(diào)入流水線 進行處理。當圖形硬件有了可編程結(jié)構(gòu),可以隨時改變頂點的坐標,重量,法線,顏色, 紋理坐標,霧和點大小等數(shù)據(jù),而且不需要CPU介入,完全由圖形芯片執(zhí)行。可編程性最 大的好處是靈活性,設(shè)計人員可以根據(jù)需求制定不同的指令操作,將各種特效組合使用, 從而產(chǎn)生千變?nèi)f化的逼真效果。因此,針對目前大量包含幾何圖元的網(wǎng)格實時交互需求,如何基于現(xiàn)代圖形處理器GPU實現(xiàn)快速拾取圖元,是當前研究的難點和熱點。 發(fā)明內(nèi)容本發(fā)明針對現(xiàn)有技術(shù)中的問題,提供了一種可快速在大量幾何圖元中精確拾取目標圖 元或圖元集合的方法。本發(fā)明的技術(shù)方案是1、 一種在圖形處理器上拾取三維幾何圖元的方法,其步驟包括-1) 將附帶幾何圖元ID編碼的三維圖形繪制到圖形處理器GPU上的離屏緩沖區(qū)FBO 中,在FBO中像素位置與三維圖形經(jīng)正常模式繪制得到圖像結(jié)果中的像素位置一一對應(yīng);2) 將FBO與可讀取的RBO(Render Buffer Object)建立關(guān)聯(lián),通過讀取鼠標光標指定位 置RBO內(nèi)保存的幾何圖元ID,拾取到命中的單個圖元;3) 按照正常模式繪制三維圖形,區(qū)分顯示被選中和未被選中的幾何圖元,被選中圖元 以突出方式顯示。上述步驟l)中圖形處理器GPU進行如下處理1) 將所有圖元的ID編碼轉(zhuǎn)換為色彩信息,并將該色彩信息附著在待繪制的幾何圖元 之上;2) 在繪制流程中,幾何圖元經(jīng)過頂點處理器,進行透視或者投影變換;3) 隨后,通過光柵化和片元處理器處理,生成圖像,輸出目標到上述FBO中。 上述色彩信息保存在FBO內(nèi),經(jīng)過解碼可得到對應(yīng)幾何圖元的真實ID值。 上述繪制分別采用GPU提供的VBO圖元技術(shù),將幾何圖元組織成易于GPU高速訪問的數(shù)組形式,保存在GPU—端的顯存中。一種在圖形處理器上拾取三維幾何圖元的方法,其步驟包括1) 將附帶幾何圖元ID編碼的三維圖形繪制到圖形處理器GPU上的離屏緩沖區(qū)FBO 中,在FBO中像素位置與三維圖形經(jīng)正常模式繪制得到圖像結(jié)果中的像素位置一一對應(yīng);2) 將FBO中的圖像綁定為一幅紋理;3) 按照正常模式繪制真實圖形,在GPU的幾何處理器和片元處理器中對每個幾何圖 元進行處理,根據(jù)當前用戶鼠標框選的范圍,通過紋理査找的方式獲得當前框選區(qū)域的命 中幾何圖元,并區(qū)分顯示被選中和未被選中的幾何圖元,被選中圖元以突出方式顯示。上述圖形處理器GPU進行如下處理1)將所有圖元的ID編碼轉(zhuǎn)換為色彩信息,并將該色彩信息附著在待繪制的幾何圖元 之上;2) 在繪制流程中,幾何圖元經(jīng)過頂點處理器,進行透視或者投影變換;3) 隨后,通過光柵化和片元處理器處理,生成圖像,輸出目標到上述FBO中。 上述色彩信息保存在FBO內(nèi),當FBO中的圖像被綁定為一幅紋理后,紋理中的RGBA色彩值,經(jīng)過解碼可得到對應(yīng)幾何圖元的真實ID值。上述片元處理器中對每個幾何圖元進行處理的具體步驟為1) 輸入每個幾何圖元光柵化之后的片元和當前框選區(qū)域;2) 比較當前片元是否位于框選區(qū)域之內(nèi),若在區(qū)域之內(nèi),則表示當前片元所對應(yīng)的 幾何圖元被命中。以片元所處的二維坐標作為紋理參數(shù)查找ID紋理的值,并將得到的ID 紋理值進行解碼得到真正被選中圖元的ID值;3) 當前被選中圖元的片元突出顯示,并返回圖元的ID值。 上述色彩信息采用RGBA色彩表示模型。 與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果是本發(fā)明借助GPU提供的FBO技術(shù)支持的緩沖數(shù)據(jù)保存方式,拾取的命中通過RBO 關(guān)聯(lián)FBO讀取幾何圖元ID或者FBO綁定為紋理并進行紋理查詢兩種方式獲得。完全在繪 制模式下實現(xiàn),不需要為繪制的圖元命名,避免在繪圖模式和選擇模式之間進行切換。整 個拾取過程在GPU之中實現(xiàn),滿足了幾何模型產(chǎn)生的大量包含幾何圖元的網(wǎng)格實時交互 需求。
圖1是本發(fā)明拾取方法的流程示意圖;(a) 采用RBO關(guān)聯(lián)FBO讀取幾何圖元ID方式拾取圖元的流程示意圖;(b) 采用FBO綁定為紋理并進行紋理査詢方式拾取圖元的流程示意圖; 圖2是GPU可編程繪制圖形流水示意圖;圖3是本發(fā)明幾何圖元ID及其屬性編碼示意圖; 圖4是硬件加速的拾取框架FBO示意圖。
具體實施方式
下面結(jié)合附圖和具體實施方式
對本發(fā)明作進一步詳細描述首先,參考圖l,將附帶幾何圖元ID編碼的三維圖形繪制到圖形處理器GPU上的離 屏緩沖區(qū)FBO中,在FBO中像素位置與三維圖形經(jīng)正常模式繪制得到圖像結(jié)果中的像素位置一一對應(yīng),具體由以下器件完成(如圖2所示)可編程頂點處理器(Vertex Processor)主要完成頂點的坐標變換,處理幾何變形,以及 產(chǎn)生一些特殊的霧化效果或鏡頭效果,設(shè)計人員可以通過編寫代碼設(shè)計自己需要的坐標系 變換和光照效果??删幊唐幚砥?Fmgment Processor)功能相對更加強大。每個片元是光柵化后具有 屏幕坐標的元素,并且包含插值后的顏色值、深度值、 一個或多個紋理坐標。片元處理器 在光柵化以后進行紋理采樣、顏色混合、光照明計算等一系列操作。經(jīng)過一系列的設(shè)置和 變換,每個片元將修改幀緩存中對應(yīng)位置的像素值??删幊處缀翁幚砥?GeometryProcessor)就是專門用來處理場景中的幾何圖形。在過 去Vertex Shader每一次運行只能處理一個頂點的數(shù)據(jù),并且每次只能輸出一個頂點的結(jié) 果。在整個游戲場景中,繪制的幾何圖形的任務(wù)量是非常龐大的,如果僅僅依靠Vertex Shader來完成,處理場景的效率會很低下。并且如大爆炸,粒子效果,瀑布流水等復(fù)雜的 場景都很難逼真的表現(xiàn)出來?,F(xiàn)在DX10的設(shè)計師們在頂點與像素的處理過程中又加入了 幾何著色器(Geometry shader)。它可以根據(jù)頂點的信息來批量處理幾何圖形。幾何著色 器可以將點、線、三角形等基本的構(gòu)圖元素連接起來,創(chuàng)造出新的多邊形??焖俚膶⑦@些 處理結(jié)果傳遞給其他著色器或顯存,并且這個過程無需處理器參與。在顯卡的工作流水線 中幾何著色器工作在頂點與像素著色器之間。當顯卡中的頂點著色單元生成頂點信息之 后,就會將這些結(jié)果交給幾何著色器來構(gòu)成更為復(fù)雜的幾何圖形,最后交由像素著色器來 為這些幾何圖形添加各種材質(zhì)。該步驟中,圖形的繪制不需要附帶幾何頂點的法向,紋理坐標,材質(zhì)屬性等多余信息, 唯一需要的是色彩信息。而色彩信息只是一種載體,色彩信息包含的是所需繪制的幾何圖 元的唯一表示性ID。幾何圖元多種多樣,可以分為物體實體,體,面,線,點五類屬性。 對圖元ID需要表示成圖形繪制時圖形系統(tǒng)的標準輸入信息,因此采用通用的RGBA色彩 表示模型非常方便,圖元ID的RGBA編碼如圖3所示。采用RGBA的圖元ID編碼方式, A的低字節(jié)的k位作為幾何圖元屬性的編碼(標識實體、點、線、面、體等, 一般取2-3 位),對幾何圖元屬性的編碼作為一級編碼,而幾何圖元ID的編碼占據(jù)了32-k位,因此 可以標識的幾何圖元的數(shù)目是2(32^。當k取2時,所能表示的圖元數(shù)目就達到了百萬級, 對單個幾何圖元的編碼作為二級編碼。在編碼方式中,R字節(jié)保存ID的最低位字節(jié),G字 節(jié)保存ID的次低位,而B字節(jié)保存ID的高位,A字節(jié)的空余高位則保存ID的最高位。解碼時則依次按字節(jié)運算解出圖元的ID來。GPU提供的FBO(Frame Buffer Object)技術(shù)在opengll.5版本的擴展上實現(xiàn) (EXT—framebuffer—object),它允許將一個離屏緩沖區(qū)作為渲染運算的目標。即將幀緩沖 區(qū)中將要繪制的幾何元素(點,線,面或?qū)嶓w)的索引信息繪制到一個與屏幕一一對應(yīng)的 離屏緩沖區(qū)中(Fmme Buffer Object),當需要獲得當前鼠標熱點所選擇的幾何元素時,只需 要獲得FBO中保存的該像素所對應(yīng)的色彩信息并解碼轉(zhuǎn)換為ID索引信息,就可以快速地 得到當前鼠標所選擇的幾何元素。本發(fā)明避免了 OpenGL的選擇與拾取機制中繁雜的命名 堆棧操作,提高了應(yīng)用程序的交互效率。FBO的示意圖如圖4所示。上述繪制為虛擬繪圖,繪制目標為GPU上的FBO。 FBO對于使用者是不可見的,繪 制的結(jié)果為與真實圖形元素位置一一對應(yīng)的圖元的唯一標識ID。在FBO中保存的繪制結(jié) 果與三維圖形經(jīng)正常模式繪制得到圖像結(jié)果中的像素位置一一對應(yīng),但其色彩信息蘊含的 是圖元的ID信息。圖形拾取方式包括單體拾取和塊拾取兩種方式。讀取鼠標指定位置的FBO內(nèi)保存的 幾何圖元ID,拾取到命中的圖元后,通過RBO關(guān)聯(lián)FBO讀取幾何圖元ID或者FBO綁定 為紋理并進行紋理查詢兩種方式,就可以快速地得到當前鼠標熱點所選擇的幾何圖元,或 者鼠標選擇框內(nèi)的幾何圖元集合。接下來進行第二次繪制,該繪制采用正常繪制模式,繪制目標為幀緩存,所繪圖形為 系統(tǒng)給使用者看到的真實圖形。由于本發(fā)明采用了兩種方式拾取幾何圖元ID,故繪制真實 圖形的方法也有兩種 一、如通過FBO與可讀取的RBO建立關(guān)聯(lián),讀取鼠標光標指定位 置RBO內(nèi)保存的幾何圖元ID,拾取到命中的單個圖元,則按照正常模式繪制三維圖形, 區(qū)分顯示被選中和未被選中的幾何圖元,被選中圖元以突出方式顯示;二、如FBO中的圖 像被綁定為一幅紋理,則按照正常模式繪制真實圖形,在GPU的幾何處理器和片元處理 器中對每個幾何圖元進行處理,其中,片元處理器中對輸入每個幾何圖元光柵化之后的片 元和當前框選區(qū)域;比較當前片元是否位于框選區(qū)域之內(nèi),若在區(qū)域之內(nèi),則表示當前片 元所對應(yīng)的幾何圖元被命中,以片元所處的二維坐標作為紋理參數(shù)查找ID紋理,并將得 到的ID紋理值進行解碼得到真正被選中圖元的ID值;當前被選中圖元的片元突出顯示, 并返回圖元的ID值。即通過紋理查找的方式獲得當前框選區(qū)域的命中幾何圖元,并區(qū)分 顯示被選中和未被選中的幾何圖元,被選中圖元以突出方式顯示。從而實現(xiàn)了利用GPU(圖 形處理芯片)提供的高級特性FBO,通過有效的幾何圖元的ID多級編碼,在GPU上進行海量圖元的快速選擇和拾取。在本發(fā)明中,渲染速度是交互式3D應(yīng)用程序關(guān)注的主要問題之一。當面對大量的需 要拾取的幾何圖元時,需要采取一種快速的繪制策略,以便將快速拾取物體并將物體快速 地繪制到幀緩存和屏幕上。同時考慮到將來對模型交互形變的過程中,模型的幾何信息會 不斷改變,因此需要不斷的重新組織模型繪制到幀緩存中。為了加速重繪拾取方法的繪制過程,對于幾何圖元數(shù)據(jù),采用GPU提供的VBO技術(shù) (Vertex Buffer Object), VBO將幾何圖元組織成易于GPU高速訪問的數(shù)組形式,保存在 GPU —端的顯存中,數(shù)據(jù)保存成VBO后能較為顯著地減少由CPU到GPU的數(shù)據(jù)傳輸時 間。而色彩信息作為幾何相關(guān)的屬性信息,也可以保存為VBO形式,因此我們將幾何圖 元ID編碼之后的作為色彩屬性保存在VBO之中也提高了拾取的效率。繪制時采用的是圖 元數(shù)組批處理的繪制方式。在繪制網(wǎng)格模型時,需要針對用戶的要求繪制模型的點模式、 線框模式、面模式、體模式或者實體模式進行選擇。另外,本發(fā)明幾何圖元的ID編碼既可以表示成RGBA的色彩信息形式,也可以編碼 為法向或者紋理坐標等多種形式。此外,三維幾何圖元的拾取方法也同樣適用于二維幾何圖元。本發(fā)明可應(yīng)用到需要交互操作的各種幾何模型造型系統(tǒng)中,尤其適合基于GPU的細 分曲面特征構(gòu)造方法,能夠幫助用戶在曲面上快速交互構(gòu)造精細特征。方便的幾何圖元的 拾取和交互控制可以輔助用戶進行三維模型的交互設(shè)計和修改,提高交互的效率。能夠處 理海量幾何圖元的GPU拾取方法在包含大量精細表面特征的幾何特征造型系統(tǒng)中可以節(jié) 省交互的時間。整套方法在CAD特征造型,以及動畫造型,復(fù)雜虛擬環(huán)境的人機交互等 方面有很好的應(yīng)用前景。以上通過詳細實施例描述了本發(fā)明所提供的方法,本領(lǐng)域的技術(shù)人員應(yīng)當理解,在不 脫離本發(fā)明實質(zhì)的范圍內(nèi),可以對本發(fā)明做一定的變形或修改。
權(quán)利要求
1. 一種在圖形處理器上拾取三維幾何圖元的方法,其步驟包括1)將附帶幾何圖元ID編碼的三維圖形繪制到圖形處理器GPU上的離屏緩沖區(qū)FBO中,在FBO中像素位置與三維圖形經(jīng)正常模式繪制得到圖像結(jié)果中的像素位置一一對應(yīng);2)將FBO與可讀取的RBO建立關(guān)聯(lián),通過讀取鼠標光標指定位置RBO內(nèi)保存的幾何圖元ID,拾取到命中的單個圖元;3)按照正常模式繪制三維圖形,區(qū)分顯示被選中和未被選中的幾何圖元,被選中圖元以突出方式顯示。
2、 如權(quán)利要求1所述的在圖形處理器上拾取三維幾何圖元的方法,其特征在于,上述 步驟l)中圖形處理器GPU進行如下處理1) 將所有圖元的ID編碼轉(zhuǎn)換為色彩信息,并將該色彩信息附著在待繪制的幾何圖元 之上;2) 在繪制流程中,幾何圖元經(jīng)過頂點處理器,進行透視或者投影變換;3) 隨后,通過光柵化和片元處理器處理,生成圖像,輸出目標到上述FBO中。
3、 如權(quán)利要求2所述的在圖形處理器上拾取三維幾何圖元的方法,其特征在于,上述 色彩信息保存在FBO內(nèi),經(jīng)過解碼可得到對應(yīng)幾何圖元的真實ID值。
4、 如權(quán)利要求1或2所述的在圖形處理器上拾取三維幾何圖元的方法,其特征在于, 上述步驟1)和步驟3)中的繪制分別采用GPU提供的VBO圖元技術(shù),將幾何圖元組織 成易于GPU高速訪問的數(shù)組形式,保存在GPU —端的顯存中。
5、 一種在圖形處理器上拾取三維幾何圖元的方法,其步驟包括1) 將附帶幾何圖元ID編碼的三維圖形繪制到圖形處理器GPU上的離屏緩沖區(qū)FBO 中,在FBO中像素位置與三維圖形經(jīng)正常模式繪制得到圖像結(jié)果中的像素位置一一對應(yīng);2) 將FBO中的圖像綁定為一幅紋理;3) 按照正常模式繪制真實圖形,在GPU的幾何處理器和片元處理器中對每個幾何圖 元進行處理,根據(jù)當前用戶鼠標框選的范圍,通過紋理查找的方式獲得當前框選區(qū)域的命 中幾何圖元,并區(qū)分顯示被選中和未被選中的幾何圖元,被選中圖元以突出方式顯示。
6、 如權(quán)利要求5所述的在圖形處理器上拾取三維幾何圖元的方法,其特征在于,上述 步驟l)圖形處理器GPU進行如下處理-1) 將所有圖元的ID編碼轉(zhuǎn)換為色彩信息,并將該色彩信息附著在待繪制的幾何圖元 之上;2) 在繪制流程中,幾何圖元經(jīng)過頂點處理器,進行透視或者投影變換;3)隨后,通過光柵化和片元處理器處理,生成圖像,輸出目標到上述FBO中。
7、如權(quán)利要求6所述的在圖形處理器上拾取三維幾何圖元的方法,其特征在于,上述色彩信息保存在FBO內(nèi),當FBO中的圖像被綁定為一幅紋理后,紋理中的色彩值,經(jīng)過解碼可得到對應(yīng)幾何圖元的真實ID值。
8、 如權(quán)利要求5或6所述的在圖形處理器上拾取三維幾何圖元的方法,其特征在于, 步驟3)中,所述片元處理器中對每個幾何圖元進行處理的具體步驟為1) 輸入每個幾何圖元光柵化之后的片元和當前框選區(qū)域;2) 比較當前片元是否位于框選區(qū)域之內(nèi),若在區(qū)域之內(nèi),則表示當前片元所對應(yīng)的 幾何圖元被命中。以片元所處的二維坐標作為紋理參數(shù)查找ID紋理的值,并將得到的ID 紋理值進行解碼得到真正被選中圖元的ID值;3) 當前被選中圖元的片元突出顯示,并返回圖元的ID值。
9、 如權(quán)利要求5或6所述的在圖形處理器上拾取三維幾何圖元的方法,其特征在于, 上述步驟l)和步驟3)中的繪制分別采用GPU提供的VBO圖元技術(shù),將幾何圖元組織 成易于GPU高速訪問的數(shù)組形式,保存在GPU —端的顯存中。
10、 如權(quán)利要求2、 3、 6或7所述的在圖形處理器上拾取三維幾何圖元的方法,其特 征在于,所述色彩信息采用RGBA色彩表示模型。
全文摘要
本發(fā)明公開了一種在圖形處理器GPU上拾取三維幾何圖元的方法,屬于拾取海量圖元技術(shù)領(lǐng)域。該方法將附帶幾何圖元ID編碼的三維圖形繪制到圖形處理器GPU上的離屏緩沖區(qū)FBO中,通過RBO關(guān)聯(lián)FBO讀取幾何圖元ID或者FBO綁定為紋理并進行紋理查詢兩種方式,就可以快速地得到當前鼠標熱點所選擇的幾何圖元,或者鼠標選擇框內(nèi)的幾何圖元集合。本發(fā)明是基于圖形處理器GPU快速而精確拾取包含大量幾何圖元的復(fù)雜幾何模型的方法,可應(yīng)用到需要交互操作的各種幾何模型造型系統(tǒng)中,還可應(yīng)用到基于GPU的細分曲面特征構(gòu)造方法上,幫助用戶在曲面上快速交互構(gòu)造精細特征。本發(fā)明能夠提高拾取動作的速度和精度,從而提高涉及幾何模型交互操作的效率。
文檔編號G06T15/00GK101271585SQ20081010305
公開日2008年9月24日 申請日期2008年3月31日 優(yōu)先權(quán)日2008年3月31日
發(fā)明者勝 李, 汪國平 申請人:北京大學(xué)