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

基于光線跟蹤的焦散模擬生成算法

2017-03-30 08:11:37許申益蔣聰
關鍵詞:效果

許申益,蔣聰

(長春理工大學計算機科學技術學院,長春 130022)

基于光線跟蹤的焦散模擬生成算法

許申益,蔣聰

(長春理工大學計算機科學技術學院,長春 130022)

針對普通光線跟蹤無法繪制出焦散效果的情況,提出了基于光線跟蹤的焦散模擬生成算法。該算法首先從光源位置對場景進行繪制跟蹤并獲得焦散數據,接著將焦散數據通過坐標變換投射到正常視點的屏幕中,并與正常視平面上原有的亮度值進行疊加,從而生成具有焦散效果的圖像,最后使用高斯濾波方法對圖形進行濾波處理獲得最終圖像。通過對比,焦散模擬生成算法比普通的光子映射方法在效果差別不大的情況下幀速率有了明顯的提高。實驗表明,基于光線跟蹤的焦散模擬生成算法可以逼真地繪制圖像,同時能達到較高的幀數率。

光線跟蹤;焦散;真實感;幀速率

焦散是在生活中常見的一種光學現象,它廣泛地存在于具有透明物體的場景中,在游泳池的水底和四周清澈的溪流水底散布的石頭上均能看到焦散現象。光線經透明物體進行傳播時會發生折射,當這個透明物體的表面不平整時,光線經二次折射后最終會在部分區域發生匯聚,這些匯聚區域由于接受的光能比周圍區域多,具有較高的亮度,從而形成了焦散效果。

焦散繪制在虛擬場景繪制、電影特效繪制、場景模擬、虛擬裝配等各種仿真領域有著廣泛的應用需求。作為一種經典的全局光照效果,焦散的逼真繪制對提升虛擬場景的真實性具有非常重要的意義。全局光照技術雖然可以實現焦散的逼真繪制,但由于全局光照算法所需的開銷非常大,因此傳統的全局光照算法往往只能用于離線的圖像渲染。

光子映射算法問世于20世紀90年代,是一種常用的全局光照算法,可以較好的模擬焦散、輝映(Bleeding)、間接光照等多種全局光照效果。光子映射方法是一種需要兩遍繪制的算法,第一遍從光源位置發射光子并跟蹤和記錄光子在場景中數次反射或折射的數據,第二遍從視點位置進行繪制。在繪制某一個像素時,首先收集這個像素周圍某一范圍內的所有光子,并對它們的值進行累加,得到這個像素點的顏色值。光子映射算法誕生后受到了廣泛的關注,很快成為一種主流的全局光照算法。

近年來,實時真實感圖形繪制是計算機圖形學研究的焦點。為了使繪制的圖像具有較高的真實性,可以采用光子映射的方法進行繪制,但由于光子映射需要發射大量的光子,這使得計算機的開銷大大增加,嚴重影響了圖像生成的速率。相比之下,光線跟蹤具有較高的速率,但由于光線跟蹤的光線是從相機位置出發,向屏幕中的每個像素發出一條光線,接著對每條光線進行跟蹤并最終統計亮度,而焦散是光經過折射或反射導致光線的集中某些區域而形成的亮斑,因此在正常的光線跟蹤的情況下無法形成焦散的效果。本文通過焦散模擬生成算法跟蹤經過折射或者反射的光線,并記錄最終光線與場景最終交點的位置和該點的亮度值。然后將得到的結果經過坐標變換后兩次遍歷所得數據對應相同的場景位置,將這兩個結果組合后產生了具有焦散效果的圖像,同時具有較高的幀速率,最后通過濾波將圖像中存在的噪聲去除得到與光子映射下幾乎相同的效果。

1 相關工作

對于焦散繪制效果的研究已經有近30年的歷史了,由于計算機硬件計算能力的限制,早期的焦散繪制只能離線進行。其中較為經典的焦散繪制算法主要有光束跟蹤和粒子跟蹤兩類。

在焦散效果的繪制方面,Jenson[1]首先提出并利用光子映射對焦散進行繪制,該方法首先從光源位置向場景中發射大量的光子,然后從視點位置對光子進行收集。但該方法如果想產生較逼真的焦散效果,就需要從光源發射數百萬個光子,而這些大量光子的跟蹤和收集需要大量的計算機資源,因此該方法明顯的缺陷是計算量太大。隨后,又有學者提出了基于CPU集群的路徑跟蹤繪制算法[2],該算法將經典的路徑跟蹤算法做出了一定的改進,這雖然在某種程度上減輕了焦散效果繪制計算量較大的問題,但仍然很難實現焦散效果的實時交互式繪制,其中最主要受限的因素仍然是該方法在繪制時間和系統資源上開銷過大。后來Wand和Strafer[3]提出了基于接受體表面采樣的焦散繪制方法,該方法首先在可能形成焦散效果的漫反射物體表面采集一系列的點,然后對這些采樣點及其周圍的點進行繪制,最終模擬出焦散效果。該方法有一個明顯的缺點:隨著采樣點的不斷增加,算法的計算量也會隨之急劇增加,該方法任然不能實時地繪制出較真實的焦散效果。隨后Wyman等人[4]提出了基于預計算的焦散繪制方法,該方法首先將場景中初始的亮度值計算出來并存儲在一個容量較大的共享存儲器中,在繪制每一幀的過程中,直接從共享存儲器中獲取焦散信息,而不需要重復的計算焦散數據。該方法實現了實時地繪制出焦散效果,但它并不適用于動態場景下的焦散效果繪制,而且只支持可以采用預計算策略的三維場景繪制。最近Musawir A.Shah等人[5]提出了一種基于焦散圖映射的焦散繪制方法,該方法類似于陰影映射算法:需要先生成一個焦散圖,然后把焦散圖直接貼到相應的三維場景中。該方法的優點是繪制速度快,計算量少,但它是基于OpenGL圖形繪制流水線繪制的,并不能運用到光線跟蹤的算法中。

在國內,李帥等人[6]基于圖像空間的焦散實時逼真繪制算法研究。該算法將焦散的計算過程進行了分解并采用動態組織浮點紋理的方式將計算所需的幾何數據從幾何空間轉換到了圖像空間,可完全通過GPU編程實現實時逼真繪制。算法的主要優點是適用于可變形物體,可模擬由物體雙面折射形成的焦散現象,算法效率受場景規模影響小并可方便地與陰影等繪制效果相結合。

2 算法綜述

2.1 算法原理

通過研究光線跟蹤算法的執行過程可以發現:在普通的光線跟蹤算法下是無法繪制出焦散效果的。這是由于光線是從視點位置發出的,當檢測到入射光線與漫反射面相交時,在交點處與光源所在的點用一條光線進行連接,如果光線穿過玻璃體,就直接把該點按處在陰影區處理,根本不會產生焦散效果[7]。

圖1 基于光線跟蹤的焦散效果生成原理圖

為了產生焦散效果,本文提出了基于光線跟蹤的焦散模擬生成算法,該算法總共分為四步:

第一步:在光源位置處對場景進行跟蹤繪制,以完成與焦散相關的數據收集。

首先對場景進行兩遍跟蹤繪制,第一遍時將相機放在光源位置,把光線透過透明物體最終與漫反射表面相交的亮度值記錄下來,形成只有焦散效果沒有場景焦斑圖;第二遍從正常視點進行跟蹤并得到在正常光線跟蹤繪制時的沒有焦散的圖像[8]。繪制場景的原理如圖1所示。

第二步:坐標系變換與透視投影

借助圖像我們可以分析出將上一步中產生的兩遍繪制的圖像進行合并后即可得到具有焦散效果的圖像,但是在繪制中收集到的圖像是在不同的坐標系下形成的,因此不能直接將它們合并。為了解決此問題,對第一遍形成的焦斑圖全部投射到正常視點屏幕上(透視變換),與正常視平面上原有的像素值進行疊加,從而產生焦散效果。由于這一步需要確定焦斑投射正常視平面后,焦斑到底位于哪一個像素上,因此,需要知道正常視平面每一個像素中心的坐標值。正常視點的相機位于世界坐標系中,正常視平面的朝向是任意的,在世界坐標系下,很難確定視平面上每個像素中心的坐標值。而透視投影是同一個坐標系下進行的,有必要把光線透過玻璃與漫反射表面的交點的空間位置坐標從世界坐標系下變換到正常視點的相機坐標系下。將兩遍繪制的圖像都處于一個世界坐標系之后,就可以實施透視變換。透視投影原理如圖2所示。而最終生成的焦斑圖如圖3所示。

圖2 透視原理圖

圖3 焦斑圖

第三步:圖像合成

在上一步中,從世界坐標系轉化到相機坐標系,然后根據相機在視點位置的一些參數進行了變換,使圖像對應的位置相同。因此兩次遍歷生成的圖像的位置將會一一對應,直接將顏色值相加即可得到初始焦散圖像。

第四步:圖像濾波

由于光線跟蹤過程中生成的點都是離散的,這會使最終的可能圖像在圖像的邊緣部分存在銳化和走樣的情況,因此需要對最終的圖像進行高斯平滑濾波處理,主要原理是在計算某一點亮度值時將附近的亮度值進行加權求平均。

2.2 算法實現

本文的三維場景是通過OptiX光線跟蹤引擎繪制的[9]。OptiX是NVIDIA公司開發的一個基于CUDA架構的、面向對象的、通用的可編程并行渲染框架,其內核是對光線跟蹤算法的抽象[9]。OptiX程序有兩部分組成:主機API(host-based API)和CUDA C程序系統(CUDA C-based programming system)。開發語言是C、C++。

焦散效果生成算法如下:

第一步:在光源位置處對場景進行跟蹤繪制,以完成與焦散相關的數據收集。

完成這一步需要對主機端和設備端代碼進行如下處理:

(1)新建一個OptiX項目程序。在程序中創建的場景類,并繪制程序切入點(EntryPoint)的個數和光線類型均設定為3。為每個程序切入點綁定相應的光線產生程序(或觸發程序)。例如第一個切入點綁定正常繪制場景所需要的光線產生程序;第二個切入點綁定在光源位置處采集焦散數據所需要的光線產生程序;第三個切入點綁定一個自定義的程序,用于坐標系變換、透視變換(用于確定漫反射表面上的焦斑投射到視平面后,交點在相機坐標系下的坐標值)、數據收集和平滑濾波。第一個切入點主要實現了對焦散數據進行采集;接著第二個切入點主要對焦散數據進行處理(坐標變換和濾波);最后一個切入點實現顏色疊加。而它們的光線類型分別為正常著色程序(Closest_Hit_Program)、陰影計算程序(Any_Hit_Shadow)、以及綁定焦散數據采集程序。

(2)在場景(InitScene)中設置在光源位置處的相機參數,使相機與視平面中心的連線穿過透明物體的中心。為了減少計算量,設置適當的視場角和分辨率(本程序的分辨率為300×300),使該相機的視平面正好包括住透明物體。

(3)在程序中創建三個緩存,第一個用于存儲光源位置處相機對場景進行跟蹤繪制所返回的漫反射表面上的焦散亮度值。第二個緩存將只有透過玻璃體并入射到漫反射表面的那部分光線所返回的亮度數據寫入。第三個緩存用于存儲光線透過玻璃體與漫反射表面的交點在世界坐標系下的空間位置坐標。定義緩存的大小與最終顯示的圖像大小相同,它用來存儲從正常視點位置看到的焦斑圖。最后將相應的緩存疊加就形成了最終圖像。

第二步:坐標系變換生成焦斑圖

這一步的主要目的是把采集到的焦散數據投射到正常的視點平面上顯示出來。做法是:把漫反射表面上的焦散亮斑全部投射到正常視點屏幕上[10](透視變換),與正常視平面上原有的像素值進行疊加,從而產生焦散效果。由于這一步需要確定焦斑投射到正常視平面后,焦斑到底位于哪一個像素上,因此,需要知道正常視平面每一個像素中心的坐標值。正常視點的相機位于世界坐標系中,正常視平面的朝向是任意的,在世界坐標系下,很難確定視平面上每個像素中心的坐標值。如果在相機坐標系中確定每個像素中心的坐標值將會非常容易,因為視平面就位于垂直于W軸,距離坐標原點為-|W|的平面上,再根據相機參數的值,即可確定每個像素中心的坐標值。透視投影是同一個坐標系下進行的,有必要把光線透過玻璃與漫反射表面的交點的空間位置坐標從世界坐標系下變換到正常視點的相機坐標系下。等都處于一個世界坐標系之后,就可以實施透視變換。

第三步:顏色合成

圖4 屏幕像素點

第四步:濾波

高斯濾波器是一類根據高斯函數的形狀來選擇權值的線性平滑濾波器,它是對整幅圖像進行加權平均的過程,每一個像素點的值,都由其本身和鄰域內的其他像素值經過加權平均后得到。高斯濾波公式為:

圖5 圖像顏色合成

在具體利用高斯函數進行濾波的時候,需要對高斯函數進行離散化,如圖6所示,以離散點上的高斯函數值為權值,對采集到的灰度矩陣的每個像素點做一定范圍鄰域內的加權平均,即可有效消除焦斑圖中噪聲。

圖6 圖像濾波

圖7 焦散繪制效果對比圖

圖8 焦散濾波前后

3 實驗結果與分析

為了更好的對比分析,在本實驗中將光子映射算法和本文提出的焦散模擬生成算法進行了對比,分別對四個不同的場景進行了繪制,如圖7所示,表1是相關的實驗結果數據。

從圖7中可以看出,使用光子映射繪制出來的四個不同場景的圖像與本文算法繪制的圖像的效果非常接近,都能繪制出非常逼真的焦散效果。而從表1的數據分析中我們可以看出本文的算法在速度是相對光子映射有了較大的提高,例如在佛像中定點數約50多萬,三角形數一百多萬的場景中光子映射中只有兩點多幀,而本文算法的速度達到了將近每秒7幀比光子映射快了兩倍,在頂點數和三角形數較少的魚和兔子模型中本文算法在速度上提高的更加明顯本文提出的焦散模擬生成算法相比普通光線跟蹤算法,也只是增加了焦散數據采樣階段。另外,采樣相機在跟蹤繪制的過程中,還忽略一些對焦散數據沒有影響的多次反射光線。

表1 焦散算法繪制效率分析

但將幾百萬條光子縮減成1024×768個像素會造成算法所生成的原始焦散圖中有很多噪聲和銳化邊緣。因此由采樣不足導致的圖像噪聲和銳化邊緣問題,需要用到濾波處理,本文使用了高斯平滑濾波來解決該問題[11]。濾波前后的焦散效果對比,如圖8所示。由圖可知,采取濾波前,焦散圖像中存在著很多噪點和銳化邊界[12],這造成生成的焦散圖像與實際的真實效果有很大的不同。而經過濾波處理之后,原焦斑圖中由焦散亮斑形成的細條紋和噪點被薄紗似的條帶狀亮度區域所取代[13],焦散圖像也會變得更加平滑而柔和,效果看起來也更加逼真。

4 結論

本文給出了一種基于光線跟蹤的焦散模擬生成算法,算法通過對焦散繪制過程進行合理分解,并通過矩陣變換實現數據投射的動態轉換,可充分借助GPU的性能,實現焦散效果的快速繪制。該算法可以在光線跟蹤下繪制出效果逼真的圖像,與光子映射算法相比具有顯著的效率優勢。

本文算法的繪制效果的真實性有所欠缺,例如在具有鏡面的場景中,無法在鏡面中觀察到焦散效果的影像。我們將在下一步工作中進一步深入研究這些問題。

[1]Ernst M,Akenine-Moller T,Jensen H W.Interactive rendering of caustics using interpolated warped volumes[C].Graphics Interface,2005.Ontario,Canada:Canadian Human-Computer Communications Society,2009:87-96.

[2]Biagio Cosenza,Carsten Dachsbacher,Ugo Erra.CPU costestimationforloadbalancinginparallelray tracing[C].In 8th International Conference on Computer Graphics Theory and Applications,Barcelona,2013:112-134.

[3]Wand E,Strafer N,Jensen H W.Interactive renderingofcausticsusingfastparallelconstructionof high-quality bounding[J].Computer Graphics Forum,2011,7(19):62-75.

[4]Chris Wyman,Scott Davis.Interactive image-space techniques for approximating caustics[C].Symposium on Interactive 3D Graphics and Games,2006.New York,USA:ACM Press,2006,9(21):153-160.

[5]Musawir Shah,Jaakko Konttinen,Sumanta Pattanaik. Caustics mapping:an image-space technique for real-time caustics[J].2012,7(29):63-74.

[6]李帥,郝愛民,朱磊.基于圖像空間的焦散實時逼真繪制算法研究[J].系統仿真學報,2009,6(21):37-44.

[7]李瑞瑞,秦開懷,張一天.包含反射、折射和焦散效果的全局光照快速繪制算法[J].計算機輔助設計與圖像學學報,2013,8(4):8-25.

[8]Havra V,Heraon R,Scidel H-p.Fast final gatheringviareversephotonmapping[C].Computer Graphics Forum(Proceedings of the IEEE Symposium on Interactive Ray Tracing,2007:1-10.

[9]Parker S,Bigler J,Dietrich A,et al.Optix:a general purpose ray tracing engine[J].ACM Transactions on Graphics,2010:231-254.

[10]Chunyi Chen,Huamin Yang,Hui Wang et al.Use of variance shadow map to accelerate ray tracing[C].Springer-VerlagBerlinHeidelBerg,2012:447-463.

[11]Zhang L,Wu X.An edge-guided image interpolation algorithm via directional filtering and data fusion[J].Image Processing,IEEE Transactions on,2011,15(8):2226-2238.

[12]梁鮮,曲福恒,楊勇,等.基于加權處罰的K-均值優化算法[J].長春理工大學學報:自然科學版,2015,38(4):132-137.

[13]秦雪,王歡,嚴曄,等.基于圖像邊緣檢測的圖像識別算法[J].長春理工大學學報:自然科學版,2015,38(4):127-131.

Caustics Simulation Algorithm Based on Ray Tracing

XU Shenyi,JIANG Cong
(School of Computer Science and Technology,Changchun University of Science and Technology,ChangChun 130022)

As general ray tracing cannot draw the caustics,we put forward simulation of caustics algorithm based on ray tracing algorithm.first we tracking caustics data from the position of the light source to the scene for rendering,then the data is projected to the normal view or screen,and with the normal plane of the original pixel values are superimposed,so generate images with caustics,finally using Gauss filtering method for graphics filter processing to obtain the final image.By contrast with the photon mapping method,this method can improve the frame rate significantly and the effect is almost the same.Experiments show that this method can achieve a higher frame rate,while the image effect is real.

ray tracing;caustics;authenticity;the frame rate

TP391

A

1672-9870(2017)01-0127-06

2016-05-04

許申益(1992-),男,碩士研究生,E-mail:1303230987@qq.com

猜你喜歡
效果
按摩效果確有理論依據
保濕噴霧大測評!效果最驚艷的才20塊!
好日子(2021年8期)2021-11-04 09:02:46
笑吧
迅速制造慢門虛化效果
創造逼真的長曝光虛化效果
四種去色效果超越傳統黑白照
抓住“瞬間性”效果
中華詩詞(2018年11期)2018-03-26 06:41:34
期末怎樣復習效果好
模擬百種唇妝效果
Coco薇(2016年8期)2016-10-09 02:11:50
3D—DSA與3D—CTA成像在顱內動脈瘤早期診斷中的應用效果比較
主站蜘蛛池模板: 四虎影视无码永久免费观看| 日韩无码黄色网站| 中文字幕 91| 伊人色天堂| 亚洲欧洲日产国产无码AV| 黄片在线永久| 亚洲V日韩V无码一区二区| 国产高清免费午夜在线视频| 无码中文AⅤ在线观看| 国产精品偷伦在线观看| аv天堂最新中文在线| 国产精品一老牛影视频| 国国产a国产片免费麻豆| 伊人成人在线| 好紧太爽了视频免费无码| 欧美激情,国产精品| 久久精品日日躁夜夜躁欧美| 亚洲色无码专线精品观看| 国产一二视频| 精品无码一区二区三区在线视频| 97se亚洲综合在线天天| 欧美性精品不卡在线观看| 亚洲欧美成人综合| 亚洲永久视频| 日韩乱码免费一区二区三区| 欧美不卡视频在线| 亚洲视频免费播放| 亚洲成在人线av品善网好看| 青青青国产视频手机| 久操中文在线| 国产成人做受免费视频| 99精品视频在线观看免费播放| 免费毛片视频| 久久伊人操| 4虎影视国产在线观看精品| 国产美女无遮挡免费视频| 成年A级毛片| 任我操在线视频| 欧美人在线一区二区三区| 国产欧美日韩精品第二区| 经典三级久久| 亚洲欧美另类专区| 欧美A级V片在线观看| 91综合色区亚洲熟妇p| 日韩无码视频网站| 综合色在线| 国产jizzjizz视频| 欧美成人h精品网站| 国产综合色在线视频播放线视| 尤物在线观看乱码| 精品久久久久成人码免费动漫| 丁香婷婷久久| 天堂亚洲网| 久久九九热视频| 1024你懂的国产精品| 四虎精品免费久久| 亚洲日产2021三区在线| 欧美成人影院亚洲综合图| 国产黄色爱视频| 无码免费试看| 亚洲精品无码不卡在线播放| 国内精品自在自线视频香蕉| 亚洲女同一区二区| 中国一级特黄大片在线观看| 国产小视频在线高清播放| 亚洲天堂福利视频| 国产精品微拍| 国产91透明丝袜美腿在线| 国产精品九九视频| 亚洲国产精品国自产拍A| 青青草一区| 久久综合九九亚洲一区| 色综合日本| 精品自窥自偷在线看| 午夜爽爽视频| 99在线观看视频免费| 亚洲h视频在线| 狠狠综合久久| 凹凸国产分类在线观看| a毛片基地免费大全| 色亚洲成人| 无遮挡一级毛片呦女视频|