亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種在MultiGen-Vega中對場景圖進行實時圖像處理的方法

文檔序號:6430688閱讀:275來源:國知局
專利名稱:一種在MultiGen-Vega中對場景圖進行實時圖像處理的方法
技術(shù)領(lǐng)域
本發(fā)明屬于虛擬現(xiàn)實和視景仿真領(lǐng)域,涉及在基于三維視景仿真軟件 MultiGen-Vega的視景系統(tǒng)中對場景圖進行實時圖像處理的方法。
背景技術(shù)
MultiGen-Vega是美國MultiGen-Paradigm公司專門針對可視化仿真行業(yè)應(yīng)用特點開發(fā)的實時可視化三維視景仿真軟件系統(tǒng)(本發(fā)明中稱=MultiGen-Vega)。它最基本的功能是驅(qū)動、控制、管理虛擬場景并支持快速復(fù)雜的視覺仿真系統(tǒng),快速創(chuàng)建各種實時交互的三維環(huán)境和虛擬現(xiàn)實系統(tǒng)。目前,Vega已經(jīng)應(yīng)用于城市規(guī)劃仿真、建筑設(shè)計漫游、飛行仿真、海洋仿真、地面戰(zhàn)爭模擬、車輛駕駛仿真、三維游戲開發(fā)等方面并不斷向新的領(lǐng)域擴展。隨著Vega的應(yīng)用日趨廣泛,在許多復(fù)雜的視景仿真應(yīng)用中,出現(xiàn)了一些新的仿真需求,對場景圖進行一些簡單的圖像處理就是其中一種。比如在CCD成像仿真系統(tǒng)中,為模擬出調(diào)焦的過程需要對場景圖進行模糊化;在目標(biāo)跟蹤仿真系統(tǒng)中,需要對場景圖進行邊緣檢測。然而Vega本身自帶的功能模塊和API (Application Program hterface,應(yīng)用程序接口 )中并沒有包含對場景圖進行圖像處理的支持,同時由于實時性的要求,將場景圖保存為圖像數(shù)據(jù)然后按常規(guī)的方法進行圖像處理也變得不可行。因此,對Vega進行二次開發(fā)以實現(xiàn)對場景圖的實時圖像處理成為一種需要。Vega本身是基于OpenGL的場景圖系統(tǒng),利用OpenGL圖像處理子集(OpenGL Imaging Subset)中的卷積濾波功能,可以實現(xiàn)對場景圖的一些圖像處理,包括模糊、銳化和邊緣檢測等。但卷積濾波所能進行的處理只能以卷積的形式進行處理,所能進行的圖像處理種類有限,而且速度慢無法應(yīng)用在實時視景仿真中。

發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題是針對Vega自帶的功能模塊和API在對場景進行圖像處理方面的不足,對Vega進行二次開發(fā)。提出一種在MultiGen-Vega中實時對場景圖進行圖像處理的方法,該方法基于Vega系統(tǒng)的結(jié)構(gòu)、Vega的通道回調(diào)機制以及現(xiàn)代圖形硬件強大的圖形能力和可編程性,在Vega系統(tǒng)中利用GLSL編寫的片元著色器代替OpenGL的固定紋理映射功能,在進行紋理映射的同時完成對紋理的圖像處理操作,最終產(chǎn)生經(jīng)過處理的場景圖。從而實現(xiàn)對Vega系統(tǒng)場景圖的實時圖像處理。本發(fā)明的技術(shù)方案是一種在MultiGen-Vega中對場景圖進行實時圖像處理的方法,其特征在于包括以下步驟,其流程圖如圖1所示(1)利用三維實景仿真系統(tǒng)Vega提供的API函數(shù)vgAddFunc,對場景所屬通道創(chuàng)建標(biāo)識為VGCHAN_POSTDRAW的通道回調(diào)函數(shù);(2)利用OpenGL著色語言GLSL編寫片元著色器,所述片元著色器能對傳入的紋理進行像素操作實現(xiàn)對紋理的圖像處理;
(3)在場景圖的渲染過程中,每當(dāng)場景圖在幀緩存中繪制好后,步驟(1)中創(chuàng)建的回調(diào)函數(shù)將被調(diào)用,此時場景圖還未顯示出來,因此可以在此回調(diào)函數(shù)中對場景圖進行圖像處理,當(dāng)調(diào)用結(jié)束后就可以顯示經(jīng)過了圖像處理的場景圖;(4)在回調(diào)函數(shù)中將場景圖通過相關(guān)OpenGL函數(shù)保存為二維紋理,通過GLSL中的 uniform變量機制將此紋理傳遞給步驟O)的片元著色器;(5)在回調(diào)函數(shù)中啟用步驟O)的片元著色器,通過OpenGL相關(guān)函數(shù)畫與場景相同大小的矩形覆蓋整個場景,也即替換了場景,并將場景圖紋理映射到此矩形上;(6)在步驟(5)中,啟用的片元著色器代替了 OpenGL的固定紋理映射功能,因此將場景圖紋理映射到矩形上實際上是由著色器完成的,而著色器中又添加了對紋理的像素操作,此像素操作也就是對紋理的圖像處理,因而映射完成后得到的矩形就是經(jīng)過了圖像處理的場景圖;(7)完成映射后,需要禁用片元著色器,經(jīng)過圖像處理的場景被顯示出來,當(dāng)前幀的處理完成;(8)重復(fù)進行步驟C3)至(7),完成后續(xù)幀的渲染。所述步驟O)中片元著色器對紋理進行的像素操作是著色器所能夠?qū)崿F(xiàn)的所有像素操作,包括高通濾波、低通濾波、傅里葉變換等,所實現(xiàn)的圖像處理效果包括銳化、模糊、邊緣檢測、腐蝕和膨脹等。本發(fā)明與現(xiàn)有技術(shù)相比具有如下優(yōu)點1、充分利用了現(xiàn)代圖形硬件強大的圖形能力和可編程性,通過其編程語言GLSL 編寫片元著色器讓圖形硬件完成圖像處理操作,處理速度極快滿足實時性的要求;2、具有極大的靈活性,在片元著色器中可以根據(jù)需要進行不同的像素處理以實現(xiàn)不同的圖像處理操作,還可以結(jié)合頂點著色器實現(xiàn)更為復(fù)雜的效果;3、本方法還可以用在其它的基于OpenGL的場景圖系統(tǒng)。


圖1為本發(fā)明方法的步驟流程框圖;圖2為本發(fā)明的具體實現(xiàn)流程圖;圖3為本發(fā)明實現(xiàn)的幾種圖像處理效果的實驗仿真圖,其中圖3(a)的圖像處理處理效果為模糊,圖3(b)為銳化、圖3 (c)為邊緣檢測,圖3(d)為膨脹,圖3(e)為侵蝕,圖 3(f)則是沒有進行任何圖像處理的原始場景。
具體實施例方式本發(fā)明基于Vega系統(tǒng)的結(jié)構(gòu)、Vega的通道回調(diào)機制以及現(xiàn)代圖形硬件強大的圖形能力和可編程性,在Vega系統(tǒng)中利用GLSL編寫的片元著色器代替OpenGL的固定紋理映射功能,在進行紋理映射的同時完成對紋理的圖像處理操作,最終產(chǎn)生經(jīng)過處理的場景圖。 其具體流程圖如圖2所示,具體步驟如下(1)初始化Vega系統(tǒng);(2)用GLSL編寫片元著色器,此著色器對傳入的紋理進行像素操作,完成對傳入紋理的圖像處理操,在Vega系統(tǒng)中對此片元著色器進行創(chuàng)建、編譯和鏈接,等需要使用的時候就可以啟用;(3)對場景所屬的通道注冊標(biāo)識為“VGCHAN_POSTDRAW”的回調(diào)函數(shù),具體語句為vgAddFunc (channel, VGCHAN_POSTDRAff, MyCalIbackFunc,MyData);其中,channel 就是需要進行圖像處理的場景所屬的通道,MyCallbackFunc就是注冊的回調(diào)函數(shù),MyData 是用戶可能需要用到的一些自定義數(shù)據(jù);(4)在Vega系統(tǒng)進行場景渲染的過程中,當(dāng)前幀場景在幀緩存中繪制完成之后, 步驟(3)中的MyCalIkickFimc回調(diào)函數(shù)將被調(diào)用,此時當(dāng)前幀場景還沒有顯示在屏幕上; 之后的處理將在此函數(shù)中進行;(5)使用OpenGL函數(shù)glCopyTexImage2D (僅在第一幀使用這個函數(shù))或者函數(shù) glCopyTexSublmagdD(第一幀之后使用)將存儲在幀緩存中的場景圖保存為二維紋理;(6)在程序中啟用步驟O)的片元著色器,并通過GLSL的內(nèi)置變量將步驟(5)保存的場景紋理傳遞給著色器;(7)通過OpenGL相關(guān)函數(shù)畫與場景相同大小的矩形覆蓋場景,并將場景紋理映射到此矩形上;紋理大小與矩形大小一樣,映射將是一個紋素對應(yīng)一個像素;(8)在映射的過程中,啟用的片元著色器代替了 OpenGL的固定紋理映射功能,將場景圖紋理映射到矩形上實際上是由著色器完成的;而著色器中又添加了對紋理的像素操作,此像素操作也就是對紋理的圖像處理,因此映射完成后得到的矩形就是經(jīng)過了圖像處理的場景圖;要完成何種樣的圖像處理則取決于編寫的片元著色器中像素操作的內(nèi)容;(9)映射完成后,禁用片元著色器,否則會影響到下一幀Vega自身的一些紋理映射;回調(diào)函數(shù)調(diào)用結(jié)束,經(jīng)過了圖像處理的場景圖顯示出來,當(dāng)前幀的處理完成;(10)重復(fù)完成步驟(4)至步驟(9),實現(xiàn)一后續(xù)幀的場景渲染。利用本方法對Vega系統(tǒng)場景圖進行幾種圖像處理的實驗仿真圖如圖2所示,圖 2(a)至(f)依次為模糊、銳化、邊緣檢測、膨脹、侵蝕和原始場景。圖2中每種效果的場景圖的分辨率為10MX1024,整個場景都進行了圖像處理,每一幀的繪制時間都不超過5ms,有的甚至少于ans,完全滿足實時性的要求。于本領(lǐng)域的普通技術(shù)人員來說可顯而易見的得出其他優(yōu)點和修改。因此,具有更廣方面的本發(fā)明并不局限于這里所示出的并且所描述的具體說明及示例性實施例。因此, 在不脫離由隨后權(quán)利要求及其等價體所定義的一般發(fā)明構(gòu)思的精神和范圍的情況下,可對其作出各種修改。
權(quán)利要求
1.一種在MultiGen-Vega中對場景圖進行實時圖像處理的方法,其特征在于包括以下步驟(1)利用三維實景仿真系統(tǒng)Vega提供的API函數(shù)vgAddFimc,對場景所屬通道創(chuàng)建標(biāo)識為VGCHAN_POSTDRAW的通道回調(diào)函數(shù);(2)利用OpenGL著色語言GLSL編寫片元著色器,所述片元著色器能對傳入的紋理進行像素操作實現(xiàn)對紋理的圖像處理;(3)在場景圖的渲染過程中,每當(dāng)場景圖在幀緩存中繪制好后,步驟(1)中創(chuàng)建的回調(diào)函數(shù)將被調(diào)用,此時場景圖還未顯示出來,因此可以在此回調(diào)函數(shù)中對場景圖進行圖像處理,當(dāng)調(diào)用結(jié)束后就可以顯示經(jīng)過了圖像處理的場景圖;(4)在回調(diào)函數(shù)中將場景圖通過相關(guān)OpenGL函數(shù)保存為二維紋理,通過GLSL中的 uniform變量機制將此紋理傳遞給步驟O)的片元著色器;(5)在回調(diào)函數(shù)中啟用步驟O)的片元著色器,通過OpenGL相關(guān)函數(shù)畫與場景相同大小的矩形覆蓋整個場景,也即替換了場景,并將場景圖紋理映射到此矩形上;(6)在步驟(5)中,啟用的片元著色器代替了OpenGL的固定紋理映射功能,因此將場景圖紋理映射到矩形上實際上是由著色器完成的,而著色器中又添加了對紋理的像素操作, 此像素操作也就是對紋理的圖像處理,因而映射完成后得到的矩形就是經(jīng)過了圖像處理的場景圖;(7)完成映射后,需要禁用片元著色器,經(jīng)過圖像處理的場景被顯示出來,當(dāng)前幀的處理完成;(8)重復(fù)進行步驟C3)至(7),完成后續(xù)幀的渲染。
2.根據(jù)權(quán)利要求1所述的對場景圖進行實時圖像處理的方法,其特征在于所述步驟 (2)中片元著色器對紋理進行的像素操作是著色器所能夠?qū)崿F(xiàn)的所有像素操作,包括高通濾波、低通濾波、傅里葉變換等,所實現(xiàn)的對紋理圖像處理包括銳化、模糊、邊緣檢測、腐蝕和膨脹等。
全文摘要
一種在MultiGen-Vega中對場景圖進行實時圖像處理的方法在Vega中,對場景所屬通道創(chuàng)建回調(diào)函數(shù);通過OpenGL著色語言GLSL編寫片元著色器,其功能是對傳入的紋理進行像素操作;在回調(diào)函數(shù)中將場景圖保存為紋理;啟用片元著色器,通過紋理映射用場景圖紋理覆蓋場景圖;片元著色器將代替OpenGL的固定紋理映射功能,在映射的同時完成對紋理的圖像處理,覆蓋后的場景圖就是經(jīng)過圖像處理的。本發(fā)明利用了現(xiàn)代圖形硬件強大的圖形能力實時的完成對Vega場景圖的圖像處理;具有靈活性,在片元著色器中可進行各種像素操作實現(xiàn)各種圖像處理效果,結(jié)合頂點著色器還能實現(xiàn)更為復(fù)雜的效果;同時也可以用在其它的基于OpenGL的場景圖系統(tǒng)。
文檔編號G06F9/44GK102306097SQ20111023047
公開日2012年1月4日 申請日期2011年8月12日 優(yōu)先權(quán)日2011年8月12日
發(fā)明者付承毓, 劉興法, 熊帥 申請人:中國科學(xué)院光電技術(shù)研究所
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1