999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

透明物體渲染算法在火星環(huán)繞器在軌可視化中的應(yīng)用

2017-11-30 02:53:00吳振中
無線互聯(lián)科技 2017年21期
關(guān)鍵詞:可視化深度

吳振中

(南京航空航天大學 電子信息工程學院,江蘇 南京 211106)

透明物體渲染算法在火星環(huán)繞器在軌可視化中的應(yīng)用

吳振中

(南京航空航天大學 電子信息工程學院,江蘇 南京 211106)

針對火星環(huán)繞器的在軌可視化,需要考慮軌道與透明火星發(fā)射天線范圍之間的復(fù)雜交互情況,采用普通的單一處理透明物體的油畫家算法和深度緩存算法已經(jīng)不能滿足實際可視化功能的需要,并且不能利用好性能日益強勁的GPU。文章通過對無序場景下的半透明物體的渲染算法研究,針對火星環(huán)繞器在軌可視化實現(xiàn)中的實際需求,分別使用了深度緩存算法、油畫家算法、加權(quán)平均值算法和深度剝離算法,實現(xiàn)了火星環(huán)繞器在軌可視化功能。通過工程實踐結(jié)果的比較和各個算法原理的優(yōu)缺點分析比對,確定了深度剝離算法在透明物體和非透明物體同一場景下聯(lián)合渲染中的效果,最終實現(xiàn)了火星環(huán)繞器在軌可視化功能。

OpenGL;透明;渲染;α混合;深度剝離

深空探測已經(jīng)成為21世紀人類的三大航天活動之一。對于任何一個國家或者民族來說,掌握航空航天領(lǐng)域的尖端技術(shù)有助于增強民族的自豪感和凝聚力,使整個民族都迸發(fā)出科學探索的熱情[1]。在火星深空探測任務(wù)中,如何實時模擬出火星環(huán)繞器在軌情況,對于火星深空探測任務(wù)來說,也具有非常重要的實際意義。

然而在火星環(huán)繞器在軌可視化功能的實現(xiàn)中,如何實時處理好火星地面站發(fā)射天線范圍與環(huán)繞器發(fā)射天線交互范圍,成了一大難題。因為這里面涉及非透明物體和透明物體聯(lián)合渲染的問題。

透明是一種非常重要的渲染實現(xiàn)效果,普通場景中應(yīng)用了透明效果后,可以非常明顯地提高普通場景的真實體驗和整個可視化功能的效率。

傳統(tǒng)上解決透明物體和非透明物體渲染的算法主要有深度緩存[2]和油畫家算法[3],但由于各種各樣的原因,這并不是解決這一難題的最佳手段。最近幾年流行的加權(quán)平均值算法和深度剝離算法[4]可以比較有效地解決這一難題。

本文在分析對比這4種不同的渲染算法的基礎(chǔ)上,實際將算法應(yīng)用在了火星環(huán)繞器在軌可視化的工程中,并在實踐中得出結(jié)論,深度剝離算法在解決透明物體和非透明物體渲染方面,有著獨到的優(yōu)勢。

1 透明物體渲染算法分析

開放圖形庫(Open Graphics Library,OpenGL)初學者總會面臨一個現(xiàn)象,那就是進行透明物體渲染時,得到的并不是自己想要的效果。這是因為渲染三維場景時,會根據(jù)距離攝像頭的遠近,有選擇地在屏幕上展現(xiàn)三維場景。最主流的處理透明物體和非透明物體渲染的幾種算法如下所示。

1.1 深度緩存

在計算機的圖形學中,可見性問題主要是決定了在渲染場景中,究竟是哪一部分可見的具體情況。而深度緩存是可見性問題的一個解決方法。

深度緩存是在三維圖形中處理圖像深度坐標的過程,這個過程可以在硬件中,也可以在軟件中完成。其中深度就是三維圖形距離攝像機的距離,深度緩存就負責存儲三維圖形中每個像素點的深度大小。而我們在實際渲染的過程中,就根據(jù)物體緩存的深度大小來決定是否需要繪制該物體。

然而,深度緩存也有自己無法解決的問題,那就是本文在火星環(huán)繞器在軌可視化過程中實際面臨的問題,即半透明物體如何正確的渲染。深度緩存在本質(zhì)上是無法解決這一難題。

1.2 油畫家算法

油畫家算法本質(zhì)上非常簡單明了,就是針對場景中的所有透明物體和不透明物體,按照離攝像機的遠近,也就是深度排序,先畫遠處再畫近處,從而達到了正確渲染的效果。這樣確實可以解決深度緩存中的無法按照正確排序渲染物體的情況。但是油畫家算法也存在著本質(zhì)性的難題。

火星環(huán)繞器在軌可視化過程中,也面臨著透明物體與不透明物體同時渲染的難題。目前傳統(tǒng)的兩種處理算法并不能有效的幫助到我們。這時候,我們可以考慮兩種更為有效精確的算法。

1.3 加權(quán)平均值算法

加權(quán)平均值算法是NVIDIA公司的Bavoil等[5]提出來的關(guān)于無序透明物體渲染的新算法。該算法的核心思想在于,對于某個位置上的像素點而言,如果所有物體在該像素點上的顏色都是相同的話,那么渲染結(jié)果和渲染的順序無關(guān),直接渲染就可以了。如果各個物體的顏色不相同的話,我們使用各個物體在該像素點上不同顏色的不透明度作為權(quán)重,將它們的平均值計算出來。

針對各個顏色平均值的計算問題,加權(quán)平均值算法通常的做法是先使用16位精度的浮點數(shù)來存儲同一像素點上各個顏色的疊加值,并保存不同顏色的總個數(shù)。在最后全屏處理的過程中,利用不透明度的權(quán)重,對之前存儲的結(jié)果進行計算。最后算出顏色平均值C:

平均不透明度A則是通過對不透明度的總和求平均值的方法求得的:

最終顏色Cdst就可以根據(jù)C,A,n以及背景顏色Cbg求出:

加權(quán)平均值算法雖然效率很高,并且速度不慢,但是卻有著本質(zhì)上的不足,那就是算法僅僅只是一個渲染的近似結(jié)果,而不是一個精確的值。所以在不是特別追求精確效果的游戲開發(fā)中,該算法應(yīng)用較為廣泛。

1.4 深度剝離算法

深度剝離算法是由NVIDIA公司的Everitt[6]提出的一種用來對深度值進行排序的技術(shù),其可以很好地解決不透明物體與透明物體之間的渲染問題。

深度剝離算法的基本原理是通過使用標準的深度檢測使場景中的距離攝像頭最近的點,也就是深度最小的像素點先被渲染出來。然后進行第2輪的渲染,將離攝像頭第二近距離的所有像素點都緩存下來,就這樣以此類推,通過多輪渲染的手段,將場景的深度值一層一層的剝離,緩存下來。最后對緩存下來的一層一層的顏色值,按照從后往前的次序來進渲染,從而可以得到正確的透明物體和非透明物體在同一場景的渲染效果。具體剝離的過程如圖1所示。

圖1 深度剝離算法過程顯示

在渲染過程中,深度剝離算法是通過NVIDIA公司開發(fā)的陰影映射技術(shù)來實現(xiàn)對像素點的剝離的目的[7]。陰影映射的原理是這樣的,首先要去判斷一個像素點是否在陰影之中。如果一個像素點和光源之間沒有任何物體遮擋的話,就默認該像素點沒有處于陰影之中,反之則處于陰影狀態(tài)。陰影映射就是用來存儲每個像素點是否存在于陰影狀態(tài)的信息[8]。

1.5 算法優(yōu)缺點對比分析

上述分析了4種不同算法的優(yōu)劣性,其中深度緩存和油畫家算法是最不可取的。根據(jù)不同算法的時間復(fù)雜度和空間復(fù)雜度,對算法進行列表評估如表1所示。

表1 渲染算法性能對比表

結(jié)合上表,容易得出深度緩存缺點在于不能精確渲染場景,油畫家算法缺點在于算法復(fù)雜度過大,加權(quán)平均值算法只能做到近似模擬,只有深度剝離算法可以保證效率的同時,做到精確渲染所需場景。

2 工程應(yīng)用結(jié)果比較

最后關(guān)于非透明物體和透明物體之間的聯(lián)合渲染算法的選擇上。由于一直被業(yè)界使用的深度緩存算法和油畫家算法都存在著自身無法避免的缺點。本工程主要選擇了上述的加權(quán)平均值算法和深度剝離算法分別進行實現(xiàn),并展示最后火星環(huán)繞器在軌可視化的最后效果圖。

2.1 加權(quán)平均值算法實現(xiàn)

加權(quán)平均值算法本質(zhì)上是根據(jù)顏色的不透明度計算各個物體在同一像素點的平均值?;鹦黔h(huán)繞器在軌可視化使用OpenGL的時候,同時使用了OpenGL著色語言(OpenGL Shading Language,GLSL)。GLSL在圖形卡的地面動力裝置(Ground Power Unit,GPU)上面執(zhí)行,取代了OpenGL流水線中固定渲染管線的一部分[9]。

首先為了渲染出不同的透明級別,需要開啟OpenGL的混合功能[10-11]。除此之外,還需要讓OpenGL通過GLSL著色器語言,按照源顏色向量、目標顏色向量、源因子和目標因子的Alpha值來進行計算,最終輸出結(jié)果。OpenGL恰好也提供了相應(yīng)的接口函數(shù),來供我們使用。

需要注意到的是,glBlendFunc函數(shù)接受兩個參數(shù),來分別設(shè)置源和目標因子[12]。OpenGL已經(jīng)通過C語言宏定義的方式,為我們定義了很多選項。而我們需要半透明物體的渲染效果,直接選用對應(yīng)的宏定義,就可以實現(xiàn)了,火星環(huán)繞器在軌可視化功能效果如圖2所示。

2.2 深度剝離算法實現(xiàn)

相比較加權(quán)平均值算法而言,深度剝離算法的原理更為復(fù)雜。但是相應(yīng)工程上的實現(xiàn)卻不是那么難以做到。

圖2 加權(quán)平均值算法在工程中應(yīng)用

OpenGL EXT擴展又可以被稱為是OpenGL結(jié)構(gòu)評審委員會(Architecture Review Board,ARB)擴展[13],而我們需要的深度剝離算法就在ARB擴展中實現(xiàn)了。

3 結(jié)語

通過不同透明物體渲染算法實現(xiàn)效果圖的對比,可以很明顯地看出加權(quán)平均值算法在透明物體和非透明物體渲染中并不是完全精確的渲染效果。雖然深度剝離算法實現(xiàn)的消耗更大一些,但是在火星環(huán)繞器在軌可視化的工程中,相比于消耗來說,正確的渲染出火星地面站發(fā)射天線范圍與環(huán)繞器發(fā)射天線發(fā)射范圍才是關(guān)鍵。

通過火星環(huán)繞器在軌可視化的工程實現(xiàn)運用,可以看出深度剝離算法在非透明物體和透明物體場景渲染上的優(yōu)勢,是一種實現(xiàn)簡單、效果極佳的算法。

[1]葉培健,彭兢.深空探測與我國深空探測展望[J].中國工程科學,2006(10):13-18.

[2]Wikipedia.Z-buffering[EB/OL].(2017-09-27)[2017-10-25].https://en.wikipedia.org/wiki/Z-buffering.

[3]Wikipedia.Painter’s algorithm[EB/OL].(2017-11-20)[2017-10-25].https://en.wikipedia.org/wiki/Painter%27s_algorithm.

[4]羅月童,薛曄,孫靜.基于深度剝離的透明渲染技術(shù)及其應(yīng)用[J].中國儀器儀表學會第九屆青年學術(shù)會議論文集,2007(1):593-597.

[5]BAVOIL L,MYERS K.Order independent transparency with dual depth peeling[J].Nvidia Opengl Sdk,2008(8):1036-1047.

[6]EVERITT C.Interactive Order-Independent Transparency[J].White Paper,2001(8):491-503.

[7]WILLIAMS L.Cating curved shadows on curved surfaces[D].New York:New York Institute of Technology,2000.

[8]GitHub.GLFW[EB/OL].(2016-08-18)[2017-10-25].http://www.glfw.org.

[9]李蕊,周名.基于OpenGL圖形引擎的設(shè)計與實現(xiàn)[J].電腦知識與技術(shù),2014(25):34-35.

[10]邱偉,李心鵬,王曉斌.基于OpenGL的三維模型渲染新方法[J].遙測遙控,2016(5):12-16.

[11]葉帥,游有鵬,邢永彥.基于OpenGL的三維模型交互控制研究[J].機械設(shè)計與制造工程,2015(44):15-16.

[12]GitHub.歡迎來到OpenGL的世界[EB/OL].(2016-08-18)[2017-10-25].https://learnopengl-cn.github.io.

[13]Wikipedia.OpenGL Architecture Review Board[EB/OL].(2017-09-27)[2017-10-25].https://en.wikipedia.org/wiki/OpenGL_Architecture_Re view_Board.

Application of transparent object rendering algorithm in visualization of Mars satellite track

Wu Zhenzhong
(Electronic and Information Engineering College, Nanjing University of Aeronautics and Astronautics, Nanjing 211106, China)

In view of the orbit visualization of the Mars satellite, it is necessary to consider the complex interaction between the track and the transparent Mars transmit antenna range. The use of ordinary single-processing transparent objects of the Painter’s algorithm and Z Buffer algorithm has been unable to meet the needs of the actual visualization, can not take advantage of the increasingly powerful GPU performance. In this paper, based on the study of the rendering algorithm of translucent objects in the disordered scene, the Z Buffer algorithm, the Painter’s algorithm, the weighted average algorithm and the depth peeling algorithm are used to realize the actual requirement of the orbit visualization of the Mars Satellite. Through the comparison of the results of engineering practice and the analysis of the advantages and disadvantages of each algorithm, the effect of the depth peeling algorithm in the joint rendering of transparent objects and non-transparent objects in the same scene is determined, and the on-orbit visualization implementation of the Mars satellite is realized.

OpenGL; transparency; rendering; alpha-blending; depth peeling

吳振中(1993— ),男,江蘇淮安人,碩士研究生;研究方向:信道建模,可視化。

猜你喜歡
可視化深度
自然資源可視化決策系統(tǒng)
北京測繪(2022年6期)2022-08-01 09:19:06
思維可視化
師道·教研(2022年1期)2022-03-12 05:46:47
基于Power BI的油田注水運行動態(tài)分析與可視化展示
云南化工(2021年8期)2021-12-21 06:37:54
自然資源可視化決策系統(tǒng)
北京測繪(2021年7期)2021-07-28 07:01:18
深度理解一元一次方程
基于CGAL和OpenGL的海底地形三維可視化
“融評”:黨媒評論的可視化創(chuàng)新
傳媒評論(2019年4期)2019-07-13 05:49:14
深度觀察
深度觀察
深度觀察
主站蜘蛛池模板: 国产成人精彩在线视频50| 日本人真淫视频一区二区三区| 午夜国产大片免费观看| 亚洲人成影视在线观看| 久久精品丝袜| 亚洲69视频| 国产精品毛片一区| 亚洲日韩精品无码专区| 香蕉eeww99国产在线观看| 久久国产精品波多野结衣| 手机在线国产精品| 99精品免费在线| 成人国产一区二区三区| 素人激情视频福利| AV熟女乱| 在线观看免费人成视频色快速| 国产精欧美一区二区三区| 久久久久中文字幕精品视频| 青青青视频免费一区二区| 国产精品毛片一区视频播| 日韩中文欧美| 国产91透明丝袜美腿在线| 亚洲中文字幕在线观看| 午夜电影在线观看国产1区| 伊人久久婷婷五月综合97色| 久久精品人人做人人| 国产日本一区二区三区| 伊人久久综在合线亚洲2019| 日本在线国产| 国产噜噜在线视频观看| 好紧好深好大乳无码中文字幕| 高清无码手机在线观看| 亚洲国产黄色| 国产精品尤物铁牛tv| 久久这里只有精品2| 免费一级无码在线网站 | 国模视频一区二区| 欧美伦理一区| 高清不卡一区二区三区香蕉| 国产精品第一区| 毛片在线播放a| 日韩欧美国产三级| 尤物精品视频一区二区三区| 中文字幕在线不卡视频| 欧美亚洲一二三区| 中文无码精品a∨在线观看| 在线国产毛片| 成人a免费α片在线视频网站| 蝌蚪国产精品视频第一页| 国产亚洲欧美在线中文bt天堂| 麻豆国产精品一二三在线观看| 精品无码人妻一区二区| 在线播放精品一区二区啪视频| 99在线小视频| 亚洲欧美极品| 天天色天天综合| 中文字幕亚洲另类天堂| 国产导航在线| 波多野结衣中文字幕一区| Jizz国产色系免费| 欧美日韩国产高清一区二区三区| 国产综合精品日本亚洲777| 欧美精品H在线播放| 凹凸精品免费精品视频| 精品视频免费在线| 午夜福利亚洲精品| 日本道中文字幕久久一区| 国产草草影院18成年视频| 日韩小视频网站hq| 日韩二区三区| 欧美有码在线观看| 无码久看视频| 制服无码网站| 伊人精品成人久久综合| 国产黄在线观看| 国产97色在线| 亚洲欧美日韩另类| 国产精品内射视频| 天天综合网在线| 午夜视频日本| 国产精品极品美女自在线| 91久久天天躁狠狠躁夜夜|