許申益,蔣聰
(長(zhǎng)春理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院,長(zhǎng)春 130022)
基于光線跟蹤的焦散模擬生成算法
許申益,蔣聰
(長(zhǎng)春理工大學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)院,長(zhǎng)春 130022)
針對(duì)普通光線跟蹤無(wú)法繪制出焦散效果的情況,提出了基于光線跟蹤的焦散模擬生成算法。該算法首先從光源位置對(duì)場(chǎng)景進(jìn)行繪制跟蹤并獲得焦散數(shù)據(jù),接著將焦散數(shù)據(jù)通過(guò)坐標(biāo)變換投射到正常視點(diǎn)的屏幕中,并與正常視平面上原有的亮度值進(jìn)行疊加,從而生成具有焦散效果的圖像,最后使用高斯濾波方法對(duì)圖形進(jìn)行濾波處理獲得最終圖像。通過(guò)對(duì)比,焦散模擬生成算法比普通的光子映射方法在效果差別不大的情況下幀速率有了明顯的提高。實(shí)驗(yàn)表明,基于光線跟蹤的焦散模擬生成算法可以逼真地繪制圖像,同時(shí)能達(dá)到較高的幀數(shù)率。
光線跟蹤;焦散;真實(shí)感;幀速率
焦散是在生活中常見(jiàn)的一種光學(xué)現(xiàn)象,它廣泛地存在于具有透明物體的場(chǎng)景中,在游泳池的水底和四周清澈的溪流水底散布的石頭上均能看到焦散現(xiàn)象。光線經(jīng)透明物體進(jìn)行傳播時(shí)會(huì)發(fā)生折射,當(dāng)這個(gè)透明物體的表面不平整時(shí),光線經(jīng)二次折射后最終會(huì)在部分區(qū)域發(fā)生匯聚,這些匯聚區(qū)域由于接受的光能比周圍區(qū)域多,具有較高的亮度,從而形成了焦散效果。
焦散繪制在虛擬場(chǎng)景繪制、電影特效繪制、場(chǎng)景模擬、虛擬裝配等各種仿真領(lǐng)域有著廣泛的應(yīng)用需求。作為一種經(jīng)典的全局光照效果,焦散的逼真繪制對(duì)提升虛擬場(chǎng)景的真實(shí)性具有非常重要的意義。全局光照技術(shù)雖然可以實(shí)現(xiàn)焦散的逼真繪制,但由于全局光照算法所需的開銷非常大,因此傳統(tǒng)的全局光照算法往往只能用于離線的圖像渲染。
光子映射算法問(wèn)世于20世紀(jì)90年代,是一種常用的全局光照算法,可以較好的模擬焦散、輝映(Bleeding)、間接光照等多種全局光照效果。光子映射方法是一種需要兩遍繪制的算法,第一遍從光源位置發(fā)射光子并跟蹤和記錄光子在場(chǎng)景中數(shù)次反射或折射的數(shù)據(jù),第二遍從視點(diǎn)位置進(jìn)行繪制。在繪制某一個(gè)像素時(shí),首先收集這個(gè)像素周圍某一范圍內(nèi)的所有光子,并對(duì)它們的值進(jìn)行累加,得到這個(gè)像素點(diǎn)的顏色值。光子映射算法誕生后受到了廣泛的關(guān)注,很快成為一種主流的全局光照算法。
近年來(lái),實(shí)時(shí)真實(shí)感圖形繪制是計(jì)算機(jī)圖形學(xué)研究的焦點(diǎn)。為了使繪制的圖像具有較高的真實(shí)性,可以采用光子映射的方法進(jìn)行繪制,但由于光子映射需要發(fā)射大量的光子,這使得計(jì)算機(jī)的開銷大大增加,嚴(yán)重影響了圖像生成的速率。相比之下,光線跟蹤具有較高的速率,但由于光線跟蹤的光線是從相機(jī)位置出發(fā),向屏幕中的每個(gè)像素發(fā)出一條光線,接著對(duì)每條光線進(jìn)行跟蹤并最終統(tǒng)計(jì)亮度,而焦散是光經(jīng)過(guò)折射或反射導(dǎo)致光線的集中某些區(qū)域而形成的亮斑,因此在正常的光線跟蹤的情況下無(wú)法形成焦散的效果。本文通過(guò)焦散模擬生成算法跟蹤經(jīng)過(guò)折射或者反射的光線,并記錄最終光線與場(chǎng)景最終交點(diǎn)的位置和該點(diǎn)的亮度值。然后將得到的結(jié)果經(jīng)過(guò)坐標(biāo)變換后兩次遍歷所得數(shù)據(jù)對(duì)應(yīng)相同的場(chǎng)景位置,將這兩個(gè)結(jié)果組合后產(chǎn)生了具有焦散效果的圖像,同時(shí)具有較高的幀速率,最后通過(guò)濾波將圖像中存在的噪聲去除得到與光子映射下幾乎相同的效果。
對(duì)于焦散繪制效果的研究已經(jīng)有近30年的歷史了,由于計(jì)算機(jī)硬件計(jì)算能力的限制,早期的焦散繪制只能離線進(jìn)行。其中較為經(jīng)典的焦散繪制算法主要有光束跟蹤和粒子跟蹤兩類。
在焦散效果的繪制方面,Jenson[1]首先提出并利用光子映射對(duì)焦散進(jìn)行繪制,該方法首先從光源位置向場(chǎng)景中發(fā)射大量的光子,然后從視點(diǎn)位置對(duì)光子進(jìn)行收集。但該方法如果想產(chǎn)生較逼真的焦散效果,就需要從光源發(fā)射數(shù)百萬(wàn)個(gè)光子,而這些大量光子的跟蹤和收集需要大量的計(jì)算機(jī)資源,因此該方法明顯的缺陷是計(jì)算量太大。隨后,又有學(xué)者提出了基于CPU集群的路徑跟蹤繪制算法[2],該算法將經(jīng)典的路徑跟蹤算法做出了一定的改進(jìn),這雖然在某種程度上減輕了焦散效果繪制計(jì)算量較大的問(wèn)題,但仍然很難實(shí)現(xiàn)焦散效果的實(shí)時(shí)交互式繪制,其中最主要受限的因素仍然是該方法在繪制時(shí)間和系統(tǒng)資源上開銷過(guò)大。后來(lái)Wand和Strafer[3]提出了基于接受體表面采樣的焦散繪制方法,該方法首先在可能形成焦散效果的漫反射物體表面采集一系列的點(diǎn),然后對(duì)這些采樣點(diǎn)及其周圍的點(diǎn)進(jìn)行繪制,最終模擬出焦散效果。該方法有一個(gè)明顯的缺點(diǎn):隨著采樣點(diǎn)的不斷增加,算法的計(jì)算量也會(huì)隨之急劇增加,該方法任然不能實(shí)時(shí)地繪制出較真實(shí)的焦散效果。隨后Wyman等人[4]提出了基于預(yù)計(jì)算的焦散繪制方法,該方法首先將場(chǎng)景中初始的亮度值計(jì)算出來(lái)并存儲(chǔ)在一個(gè)容量較大的共享存儲(chǔ)器中,在繪制每一幀的過(guò)程中,直接從共享存儲(chǔ)器中獲取焦散信息,而不需要重復(fù)的計(jì)算焦散數(shù)據(jù)。該方法實(shí)現(xiàn)了實(shí)時(shí)地繪制出焦散效果,但它并不適用于動(dòng)態(tài)場(chǎng)景下的焦散效果繪制,而且只支持可以采用預(yù)計(jì)算策略的三維場(chǎng)景繪制。最近Musawir A.Shah等人[5]提出了一種基于焦散圖映射的焦散繪制方法,該方法類似于陰影映射算法:需要先生成一個(gè)焦散圖,然后把焦散圖直接貼到相應(yīng)的三維場(chǎng)景中。該方法的優(yōu)點(diǎn)是繪制速度快,計(jì)算量少,但它是基于OpenGL圖形繪制流水線繪制的,并不能運(yùn)用到光線跟蹤的算法中。
在國(guó)內(nèi),李帥等人[6]基于圖像空間的焦散實(shí)時(shí)逼真繪制算法研究。該算法將焦散的計(jì)算過(guò)程進(jìn)行了分解并采用動(dòng)態(tài)組織浮點(diǎn)紋理的方式將計(jì)算所需的幾何數(shù)據(jù)從幾何空間轉(zhuǎn)換到了圖像空間,可完全通過(guò)GPU編程實(shí)現(xiàn)實(shí)時(shí)逼真繪制。算法的主要優(yōu)點(diǎn)是適用于可變形物體,可模擬由物體雙面折射形成的焦散現(xiàn)象,算法效率受場(chǎng)景規(guī)模影響小并可方便地與陰影等繪制效果相結(jié)合。
2.1 算法原理
通過(guò)研究光線跟蹤算法的執(zhí)行過(guò)程可以發(fā)現(xiàn):在普通的光線跟蹤算法下是無(wú)法繪制出焦散效果的。這是由于光線是從視點(diǎn)位置發(fā)出的,當(dāng)檢測(cè)到入射光線與漫反射面相交時(shí),在交點(diǎn)處與光源所在的點(diǎn)用一條光線進(jìn)行連接,如果光線穿過(guò)玻璃體,就直接把該點(diǎn)按處在陰影區(qū)處理,根本不會(huì)產(chǎn)生焦散效果[7]。
圖1 基于光線跟蹤的焦散效果生成原理圖
為了產(chǎn)生焦散效果,本文提出了基于光線跟蹤的焦散模擬生成算法,該算法總共分為四步:
第一步:在光源位置處對(duì)場(chǎng)景進(jìn)行跟蹤繪制,以完成與焦散相關(guān)的數(shù)據(jù)收集。
首先對(duì)場(chǎng)景進(jìn)行兩遍跟蹤繪制,第一遍時(shí)將相機(jī)放在光源位置,把光線透過(guò)透明物體最終與漫反射表面相交的亮度值記錄下來(lái),形成只有焦散效果沒(méi)有場(chǎng)景焦斑圖;第二遍從正常視點(diǎn)進(jìn)行跟蹤并得到在正常光線跟蹤繪制時(shí)的沒(méi)有焦散的圖像[8]。繪制場(chǎng)景的原理如圖1所示。
第二步:坐標(biāo)系變換與透視投影
借助圖像我們可以分析出將上一步中產(chǎn)生的兩遍繪制的圖像進(jìn)行合并后即可得到具有焦散效果的圖像,但是在繪制中收集到的圖像是在不同的坐標(biāo)系下形成的,因此不能直接將它們合并。為了解決此問(wèn)題,對(duì)第一遍形成的焦斑圖全部投射到正常視點(diǎn)屏幕上(透視變換),與正常視平面上原有的像素值進(jìn)行疊加,從而產(chǎn)生焦散效果。由于這一步需要確定焦斑投射正常視平面后,焦斑到底位于哪一個(gè)像素上,因此,需要知道正常視平面每一個(gè)像素中心的坐標(biāo)值。正常視點(diǎn)的相機(jī)位于世界坐標(biāo)系中,正常視平面的朝向是任意的,在世界坐標(biāo)系下,很難確定視平面上每個(gè)像素中心的坐標(biāo)值。而透視投影是同一個(gè)坐標(biāo)系下進(jìn)行的,有必要把光線透過(guò)玻璃與漫反射表面的交點(diǎn)的空間位置坐標(biāo)從世界坐標(biāo)系下變換到正常視點(diǎn)的相機(jī)坐標(biāo)系下。將兩遍繪制的圖像都處于一個(gè)世界坐標(biāo)系之后,就可以實(shí)施透視變換。透視投影原理如圖2所示。而最終生成的焦斑圖如圖3所示。
圖2 透視原理圖
圖3 焦斑圖
第三步:圖像合成
在上一步中,從世界坐標(biāo)系轉(zhuǎn)化到相機(jī)坐標(biāo)系,然后根據(jù)相機(jī)在視點(diǎn)位置的一些參數(shù)進(jìn)行了變換,使圖像對(duì)應(yīng)的位置相同。因此兩次遍歷生成的圖像的位置將會(huì)一一對(duì)應(yīng),直接將顏色值相加即可得到初始焦散圖像。
第四步:圖像濾波
由于光線跟蹤過(guò)程中生成的點(diǎn)都是離散的,這會(huì)使最終的可能圖像在圖像的邊緣部分存在銳化和走樣的情況,因此需要對(duì)最終的圖像進(jìn)行高斯平滑濾波處理,主要原理是在計(jì)算某一點(diǎn)亮度值時(shí)將附近的亮度值進(jìn)行加權(quán)求平均。
2.2 算法實(shí)現(xiàn)
本文的三維場(chǎng)景是通過(guò)OptiX光線跟蹤引擎繪制的[9]。OptiX是NVIDIA公司開發(fā)的一個(gè)基于CUDA架構(gòu)的、面向?qū)ο蟮?、通用的可編程并行渲染框架,其?nèi)核是對(duì)光線跟蹤算法的抽象[9]。OptiX程序有兩部分組成:主機(jī)API(host-based API)和CUDA C程序系統(tǒng)(CUDA C-based programming system)。開發(fā)語(yǔ)言是C、C++。
焦散效果生成算法如下:
第一步:在光源位置處對(duì)場(chǎng)景進(jìn)行跟蹤繪制,以完成與焦散相關(guān)的數(shù)據(jù)收集。
完成這一步需要對(duì)主機(jī)端和設(shè)備端代碼進(jìn)行如下處理:
(1)新建一個(gè)OptiX項(xiàng)目程序。在程序中創(chuàng)建的場(chǎng)景類,并繪制程序切入點(diǎn)(EntryPoint)的個(gè)數(shù)和光線類型均設(shè)定為3。為每個(gè)程序切入點(diǎn)綁定相應(yīng)的光線產(chǎn)生程序(或觸發(fā)程序)。例如第一個(gè)切入點(diǎn)綁定正常繪制場(chǎng)景所需要的光線產(chǎn)生程序;第二個(gè)切入點(diǎn)綁定在光源位置處采集焦散數(shù)據(jù)所需要的光線產(chǎn)生程序;第三個(gè)切入點(diǎn)綁定一個(gè)自定義的程序,用于坐標(biāo)系變換、透視變換(用于確定漫反射表面上的焦斑投射到視平面后,交點(diǎn)在相機(jī)坐標(biāo)系下的坐標(biāo)值)、數(shù)據(jù)收集和平滑濾波。第一個(gè)切入點(diǎn)主要實(shí)現(xiàn)了對(duì)焦散數(shù)據(jù)進(jìn)行采集;接著第二個(gè)切入點(diǎn)主要對(duì)焦散數(shù)據(jù)進(jìn)行處理(坐標(biāo)變換和濾波);最后一個(gè)切入點(diǎn)實(shí)現(xiàn)顏色疊加。而它們的光線類型分別為正常著色程序(Closest_Hit_Program)、陰影計(jì)算程序(Any_Hit_Shadow)、以及綁定焦散數(shù)據(jù)采集程序。
(2)在場(chǎng)景(InitScene)中設(shè)置在光源位置處的相機(jī)參數(shù),使相機(jī)與視平面中心的連線穿過(guò)透明物體的中心。為了減少計(jì)算量,設(shè)置適當(dāng)?shù)囊晥?chǎng)角和分辨率(本程序的分辨率為300×300),使該相機(jī)的視平面正好包括住透明物體。
(3)在程序中創(chuàng)建三個(gè)緩存,第一個(gè)用于存儲(chǔ)光源位置處相機(jī)對(duì)場(chǎng)景進(jìn)行跟蹤繪制所返回的漫反射表面上的焦散亮度值。第二個(gè)緩存將只有透過(guò)玻璃體并入射到漫反射表面的那部分光線所返回的亮度數(shù)據(jù)寫入。第三個(gè)緩存用于存儲(chǔ)光線透過(guò)玻璃體與漫反射表面的交點(diǎn)在世界坐標(biāo)系下的空間位置坐標(biāo)。定義緩存的大小與最終顯示的圖像大小相同,它用來(lái)存儲(chǔ)從正常視點(diǎn)位置看到的焦斑圖。最后將相應(yīng)的緩存疊加就形成了最終圖像。
第二步:坐標(biāo)系變換生成焦斑圖
這一步的主要目的是把采集到的焦散數(shù)據(jù)投射到正常的視點(diǎn)平面上顯示出來(lái)。做法是:把漫反射表面上的焦散亮斑全部投射到正常視點(diǎn)屏幕上[10](透視變換),與正常視平面上原有的像素值進(jìn)行疊加,從而產(chǎn)生焦散效果。由于這一步需要確定焦斑投射到正常視平面后,焦斑到底位于哪一個(gè)像素上,因此,需要知道正常視平面每一個(gè)像素中心的坐標(biāo)值。正常視點(diǎn)的相機(jī)位于世界坐標(biāo)系中,正常視平面的朝向是任意的,在世界坐標(biāo)系下,很難確定視平面上每個(gè)像素中心的坐標(biāo)值。如果在相機(jī)坐標(biāo)系中確定每個(gè)像素中心的坐標(biāo)值將會(huì)非常容易,因?yàn)橐暺矫婢臀挥诖怪庇赪軸,距離坐標(biāo)原點(diǎn)為-|W|的平面上,再根據(jù)相機(jī)參數(shù)的值,即可確定每個(gè)像素中心的坐標(biāo)值。透視投影是同一個(gè)坐標(biāo)系下進(jìn)行的,有必要把光線透過(guò)玻璃與漫反射表面的交點(diǎn)的空間位置坐標(biāo)從世界坐標(biāo)系下變換到正常視點(diǎn)的相機(jī)坐標(biāo)系下。等都處于一個(gè)世界坐標(biāo)系之后,就可以實(shí)施透視變換。
第三步:顏色合成
圖4 屏幕像素點(diǎn)
第四步:濾波
高斯濾波器是一類根據(jù)高斯函數(shù)的形狀來(lái)選擇權(quán)值的線性平滑濾波器,它是對(duì)整幅圖像進(jìn)行加權(quán)平均的過(guò)程,每一個(gè)像素點(diǎn)的值,都由其本身和鄰域內(nèi)的其他像素值經(jīng)過(guò)加權(quán)平均后得到。高斯濾波公式為:
圖5 圖像顏色合成
在具體利用高斯函數(shù)進(jìn)行濾波的時(shí)候,需要對(duì)高斯函數(shù)進(jìn)行離散化,如圖6所示,以離散點(diǎn)上的高斯函數(shù)值為權(quán)值,對(duì)采集到的灰度矩陣的每個(gè)像素點(diǎn)做一定范圍鄰域內(nèi)的加權(quán)平均,即可有效消除焦斑圖中噪聲。
圖6 圖像濾波
圖7 焦散繪制效果對(duì)比圖
圖8 焦散濾波前后
為了更好的對(duì)比分析,在本實(shí)驗(yàn)中將光子映射算法和本文提出的焦散模擬生成算法進(jìn)行了對(duì)比,分別對(duì)四個(gè)不同的場(chǎng)景進(jìn)行了繪制,如圖7所示,表1是相關(guān)的實(shí)驗(yàn)結(jié)果數(shù)據(jù)。
從圖7中可以看出,使用光子映射繪制出來(lái)的四個(gè)不同場(chǎng)景的圖像與本文算法繪制的圖像的效果非常接近,都能繪制出非常逼真的焦散效果。而從表1的數(shù)據(jù)分析中我們可以看出本文的算法在速度是相對(duì)光子映射有了較大的提高,例如在佛像中定點(diǎn)數(shù)約50多萬(wàn),三角形數(shù)一百多萬(wàn)的場(chǎng)景中光子映射中只有兩點(diǎn)多幀,而本文算法的速度達(dá)到了將近每秒7幀比光子映射快了兩倍,在頂點(diǎn)數(shù)和三角形數(shù)較少的魚和兔子模型中本文算法在速度上提高的更加明顯本文提出的焦散模擬生成算法相比普通光線跟蹤算法,也只是增加了焦散數(shù)據(jù)采樣階段。另外,采樣相機(jī)在跟蹤繪制的過(guò)程中,還忽略一些對(duì)焦散數(shù)據(jù)沒(méi)有影響的多次反射光線。
表1 焦散算法繪制效率分析
但將幾百萬(wàn)條光子縮減成1024×768個(gè)像素會(huì)造成算法所生成的原始焦散圖中有很多噪聲和銳化邊緣。因此由采樣不足導(dǎo)致的圖像噪聲和銳化邊緣問(wèn)題,需要用到濾波處理,本文使用了高斯平滑濾波來(lái)解決該問(wèn)題[11]。濾波前后的焦散效果對(duì)比,如圖8所示。由圖可知,采取濾波前,焦散圖像中存在著很多噪點(diǎn)和銳化邊界[12],這造成生成的焦散圖像與實(shí)際的真實(shí)效果有很大的不同。而經(jīng)過(guò)濾波處理之后,原焦斑圖中由焦散亮斑形成的細(xì)條紋和噪點(diǎn)被薄紗似的條帶狀亮度區(qū)域所取代[13],焦散圖像也會(huì)變得更加平滑而柔和,效果看起來(lái)也更加逼真。
本文給出了一種基于光線跟蹤的焦散模擬生成算法,算法通過(guò)對(duì)焦散繪制過(guò)程進(jìn)行合理分解,并通過(guò)矩陣變換實(shí)現(xiàn)數(shù)據(jù)投射的動(dòng)態(tài)轉(zhuǎn)換,可充分借助GPU的性能,實(shí)現(xiàn)焦散效果的快速繪制。該算法可以在光線跟蹤下繪制出效果逼真的圖像,與光子映射算法相比具有顯著的效率優(yōu)勢(shì)。
本文算法的繪制效果的真實(shí)性有所欠缺,例如在具有鏡面的場(chǎng)景中,無(wú)法在鏡面中觀察到焦散效果的影像。我們將在下一步工作中進(jìn)一步深入研究這些問(wèn)題。
[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]李帥,郝愛(ài)民,朱磊.基于圖像空間的焦散實(shí)時(shí)逼真繪制算法研究[J].系統(tǒng)仿真學(xué)報(bào),2009,6(21):37-44.
[7]李瑞瑞,秦開懷,張一天.包含反射、折射和焦散效果的全局光照快速繪制算法[J].計(jì)算機(jī)輔助設(shè)計(jì)與圖像學(xué)學(xué)報(bào),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]梁鮮,曲福恒,楊勇,等.基于加權(quán)處罰的K-均值優(yōu)化算法[J].長(zhǎng)春理工大學(xué)學(xué)報(bào):自然科學(xué)版,2015,38(4):132-137.
[13]秦雪,王歡,嚴(yán)曄,等.基于圖像邊緣檢測(cè)的圖像識(shí)別算法[J].長(zhǎng)春理工大學(xué)學(xué)報(bào):自然科學(xué)版,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