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

        ?

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

        2017-11-30 02:53:00吳振中
        無線互聯(lián)科技 2017年21期
        關(guān)鍵詞:油畫家像素點(diǎn)平均值

        吳振中

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

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

        吳振中

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

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

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

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

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

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

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

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

        1 透明物體渲染算法分析

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

        1.1 深度緩存

        在計(jì)算機(jī)的圖形學(xué)中,可見性問題主要是決定了在渲染場(chǎng)景中,究竟是哪一部分可見的具體情況。而深度緩存是可見性問題的一個(gè)解決方法。

        深度緩存是在三維圖形中處理圖像深度坐標(biāo)的過程,這個(gè)過程可以在硬件中,也可以在軟件中完成。其中深度就是三維圖形距離攝像機(jī)的距離,深度緩存就負(fù)責(zé)存儲(chǔ)三維圖形中每個(gè)像素點(diǎn)的深度大小。而我們?cè)趯?shí)際渲染的過程中,就根據(jù)物體緩存的深度大小來決定是否需要繪制該物體。

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

        1.2 油畫家算法

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

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

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

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

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

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

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

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

        1.4 深度剝離算法

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

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

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

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

        1.5 算法優(yōu)缺點(diǎn)對(duì)比分析

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

        表1 渲染算法性能對(duì)比表

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

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

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

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

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

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

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

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

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

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

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

        3 結(jié)語

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

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

        [1]葉培健,彭兢.深空探測(cè)與我國深空探測(cè)展望[J].中國工程科學(xué),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].中國儀器儀表學(xué)會(huì)第九屆青年學(xué)術(shù)會(huì)議論文集,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è)計(jì)與實(shí)現(xiàn)[J].電腦知識(shí)與技術(shù),2014(25):34-35.

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

        [11]葉帥,游有鵬,邢永彥.基于OpenGL的三維模型交互控制研究[J].機(jī)械設(shè)計(jì)與制造工程,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— ),男,江蘇淮安人,碩士研究生;研究方向:信道建模,可視化。

        猜你喜歡
        油畫家像素點(diǎn)平均值
        “平均值代換”法在數(shù)學(xué)解題中的應(yīng)用
        油畫家之死
        基于canvas的前端數(shù)據(jù)加密
        著名油畫家——孔凡平
        流行色(2017年12期)2017-10-26 03:07:58
        著名油畫家——王沂光
        流行色(2017年12期)2017-10-26 03:07:54
        雋永的悲涼——追憶油畫家趙開坤
        基于逐像素點(diǎn)深度卷積網(wǎng)絡(luò)分割模型的上皮和間質(zhì)組織分割
        基于Node-Cell結(jié)構(gòu)的HEVC幀內(nèi)編碼
        平面圖形中構(gòu)造調(diào)和平均值幾例
        基于電流平均值的改進(jìn)無功檢測(cè)法
        久久久调教亚洲| 国产精品_国产精品_k频道w | 国产一区二区三区色哟哟| 日韩精品专区av无码| 无码人妻少妇色欲av一区二区| 欧洲一区在线观看| 偷拍熟女露出喷水在线91| 免费毛儿一区二区十八岁| 亚洲一线二线三线写真| 国产艳妇av在线出轨| 中文字幕人妻在线少妇完整版| 色翁荡熄又大又硬又粗又动态图| 欧美性猛交xxxx乱大交3| 国产免费久久精品99re丫y| 丝袜美腿亚洲综合久久| 久久精品免费一区二区喷潮| 亚洲av无码av制服另类专区| 国产精品流白浆喷水| 精品中文字幕久久久人妻| 曰韩少妇内射免费播放| 中文字幕亚洲欧美日韩2019| 骚片av蜜桃精品一区| 久久黄色精品内射胖女人| 国产精品久免费的黄网站| 蜜桃av噜噜一区二区三区| 天堂Av无码Av一区二区三区| 99久久精品一区二区国产| 天天躁日日躁狠狠躁| 91免费在线| 一区二区三区在线日本| 国产免费又色又爽粗视频| 国产高清乱理伦片| 亚洲国产精品综合福利专区| 日韩人妻免费视频一专区| 国产aⅴ无码专区亚洲av麻豆| 亚洲综合免费| 风间由美中文字幕在线| 国产成人精品无码一区二区三区| 人妻无码中文字幕免费视频蜜桃| 成人午夜视频在线观看高清| 久久精品色福利熟妇丰满人妻91|