楊志偉 陳國(guó)棟 林惠茹 蘭敏超
摘 要:提出一種基于紋理空間和屏幕空間混合的心臟次表面繪制方案,用于解決虛擬手術(shù)系統(tǒng)中心臟次表面散射材質(zhì)繪制難度大、仿真效果準(zhǔn)確性不足的問(wèn)題。以往的研究方案中,都只是基于單一的空間進(jìn)行次表面繪制,難以適應(yīng)虛擬手術(shù)真實(shí)感的要求。針對(duì)心臟光照計(jì)算中的次表面散射材質(zhì)繪制方法的改進(jìn),新方案將紋理坐標(biāo)作為渲染對(duì)象坐標(biāo)進(jìn)行卷積運(yùn)算,使2D紋理能夠產(chǎn)生基礎(chǔ)的次表面散射效果。同時(shí),結(jié)合基于屏幕空間的算法彌補(bǔ)紋理空間算法的不足進(jìn)行混合繪制,并使用SMAA和抖動(dòng)策略作為后處理步驟來(lái)提高子像素形態(tài)抗鋸齒,產(chǎn)生比先前方案更好的整體效果。實(shí)驗(yàn)結(jié)果表明,該方案在一定程度上降低了心臟次表面散射材質(zhì)繪制難度的同時(shí),提高了繪制的準(zhǔn)確性和真實(shí)感。
關(guān)鍵詞:次表面散射;心臟;紋理空間;屏幕空間;混合繪制
中圖分類號(hào):TP391.9
文獻(xiàn)標(biāo)識(shí)碼: A
次表面散射(subsurface scattering)是指光線進(jìn)入物體后,與介質(zhì)內(nèi)部發(fā)生相互作用并根據(jù)散射分布函數(shù)向各個(gè)方向分散,最終從物體其他區(qū)域離開(kāi)的現(xiàn)象[1]?,F(xiàn)實(shí)世界中的牛奶,玉石,生物組織等都具有這種特性,其次表面散射材質(zhì)繪制能極大提高繪制真實(shí)感,使得物體外觀更為柔和,產(chǎn)生一定程度上的半透明效果。其中,軟組織繪制的真實(shí)感一直是虛擬手術(shù)訓(xùn)練效果[2]和手術(shù)沉浸感提升的制約因素。因此,本研究基于現(xiàn)有的次表面散射材質(zhì)繪制方法進(jìn)行改進(jìn),探索建立高質(zhì)量的心臟仿真系統(tǒng)[3]。
在虛擬仿真手術(shù)中,心臟繪制的重點(diǎn)和難點(diǎn)主要在次表面散射效果的表現(xiàn)。總的來(lái)說(shuō),主要有兩類繪制方案。第一類是傳統(tǒng)的繪制方案,該類方案在光線計(jì)算時(shí)需要精確計(jì)算折射光線與周圍環(huán)境的交互。該類方案主要用到次表面散射繪制的有路徑跟蹤[4],光子映射[5]以及蒙特卡羅[6]等方法,這些方法盡管能取得視覺(jué)上不錯(cuò)的效果,但是由于其計(jì)算量大,無(wú)法在保證精度的同時(shí)提供可靠的繪制速度。第二類是近似的繪制方案,在保證物理規(guī)律的正確性的情況下,在效率和效果之間做權(quán)衡。針對(duì)傳統(tǒng)繪制方案的局限性,目前主要有兩種次表面散射繪制方案。第一種是基于紋理空間漫反射的方法[7],該方案能近似獲得較好的視覺(jué)效果但是需要在運(yùn)行時(shí)調(diào)整許多的參數(shù);而第二種是基于屏幕空間的方法[8],在保證繪制速度的同時(shí)也能達(dá)到一定的效果,但在繪制精度上會(huì)有所欠缺。
虛擬手術(shù)中,心臟次表面散射材質(zhì)繪制是心臟顯示的主要影響因素之一,也是阻礙其真實(shí)感提升的制約因素。針對(duì)虛擬手術(shù)中心臟次表面散射材質(zhì)繪制難度大、繪制精度差導(dǎo)致效果不真實(shí)的問(wèn)題,創(chuàng)新性提出一種基于紋理空間和屏幕空間混合的心臟次表面繪制方案來(lái)進(jìn)行提升心臟顯示的真實(shí)感。其中,將紋理坐標(biāo)作為渲染對(duì)象坐標(biāo)進(jìn)行卷積運(yùn)算,使2D紋理能夠產(chǎn)生基礎(chǔ)的次表面散射效果。同時(shí),結(jié)合基于屏幕空間的算法彌補(bǔ)紋理空間算法的不足進(jìn)行混合繪制,并使用SMAA和抖動(dòng)策略來(lái)提高子像素形態(tài)抗鋸齒,產(chǎn)生比先前方案更好的整體效果。實(shí)驗(yàn)表明,本研究改進(jìn)了目前基于單一空間的心臟次表面繪制方法,創(chuàng)新性提出混合繪制方案一定程度上提升了繪制的準(zhǔn)確性和真實(shí)感。
1 心臟繪制概述
心臟的繪制涉及到輻射度積分算法的實(shí)現(xiàn)。通過(guò)能量守恒,心臟輻射度計(jì)算又可以細(xì)分為表面高光、漫反射、次表面單次散射和次表面多次散射的計(jì)算。根據(jù)雙向次表面散射分布函數(shù)(bidirectional scattering-surface reflectance distribution function,簡(jiǎn)稱BSSRDF),使用漫反射分布函數(shù)近似心臟表面的輻照度卷積,最后通過(guò)輻射度的加權(quán)疊加擬合,實(shí)現(xiàn)基于物理的心臟次表面近似效果。
針對(duì)心臟的光照次表面散射繪制效果的提升,仿真環(huán)境中的心臟是借鑒三層結(jié)構(gòu)模型[9]進(jìn)行繪制,心臟的繪制路線概述如圖1所示。首先通過(guò)初始化進(jìn)行預(yù)處理操作,包括紋理生成和準(zhǔn)備心臟三維網(wǎng)格模型等。其次,通過(guò)光照計(jì)算階段分別計(jì)算相關(guān)光照項(xiàng),根據(jù)能量守恒定律再進(jìn)行疊加混合與后處理,得到最終的繪制效果。
2 心臟次表面散射項(xiàng)改進(jìn)方法
心臟次表面散射項(xiàng)是心臟材質(zhì)繪制的關(guān)鍵計(jì)算項(xiàng)(圖1路線中的虛線框所在步驟),其實(shí)現(xiàn)方案的優(yōu)劣直接影響到最終的繪制效果,以下主要針對(duì)次表面散射計(jì)算提出心臟次表面散射項(xiàng)改進(jìn)方法。光線進(jìn)入心臟后,次表面散射后的結(jié)果是漸趨均勻分布在心臟組織中。
心臟軟組織中的散射主要由BSSRDF描述,傳統(tǒng)方案需要根據(jù)該函數(shù)精確計(jì)算,它的一個(gè)特征是模糊表面細(xì)節(jié)和照明,使整體繪制效果趨向柔和。心臟的完整描述必須使用BSSRDF,其表面出射的輻照度可以根據(jù)下列公式[10]計(jì)算:
2.1 心臟紋理空間次表面散射
紋理空間,也稱為紋理坐標(biāo)系,Direct3D用u,v值表示紋理坐標(biāo),這與x,y坐標(biāo)表示二維笛卡爾坐標(biāo)系非常相似。紋理是一個(gè)二維數(shù)組,其通過(guò)紋理空間坐標(biāo)來(lái)聲明,所有紋理像素地址的范圍都在0.0到1.0之間,包括0.0和1.0。當(dāng)紋理映射到一個(gè)圖元時(shí),它的紋理像素地址必須要映射到對(duì)象坐標(biāo)系,然后再映射到屏幕空間。
紋理空間技術(shù)可以有效地利用高斯核函數(shù)的性質(zhì),模擬出心臟的次表面散射效果。本研究中心臟紋理空間次表面散射方法使用擴(kuò)散解析表達(dá)式R(r)描述光在心臟表面擴(kuò)散的形狀,并將其表示成多個(gè)高斯函數(shù)的線性組合。對(duì)于表達(dá)式R(r),這里采用高斯核函數(shù)之和來(lái)近似為
如圖2所示,心臟次表面散射繪制步驟可概括如下:
(1)繪制心臟陰影紋理;
(2)拉伸矯正紋理繪制;
(3)繪制光照紋理;
(4)對(duì)于R(r)中的每一個(gè)高斯函數(shù),都分別在
u、v坐標(biāo)軸的每個(gè)方向上單獨(dú)進(jìn)行模糊操作,并緩存用于后續(xù)操作。
一般情況下,6個(gè)高斯核函數(shù)能夠有效繪制心臟多層材質(zhì)的次表面散射效果,盡管繼續(xù)增加個(gè)數(shù)能提升心臟的繪制精度,但必然會(huì)使繪制效率受到影響。因?yàn)楦咚购撕瘮?shù)的旋轉(zhuǎn)對(duì)稱性和可分離性,為了進(jìn)一步簡(jiǎn)化第4步中的計(jì)算,用多個(gè)高斯函數(shù)和的卷積近似多個(gè)高斯核函數(shù)卷積之和,分別對(duì)原始光照紋理分布在u方向和v方向上進(jìn)行卷積操作,并存入緩存。
2.2 心臟屏幕空間次表面散射
屏幕空間,也叫投影空間,是一個(gè)用于顯示最終繪制結(jié)果的二維坐標(biāo)系,世界空間中的3D物體最終可能會(huì)投影成屏幕中的一些顏色像素。
在2.1步驟之后,我們已經(jīng)能夠得到視覺(jué)上還不錯(cuò)的心臟次表面散射效果,但因?yàn)榇嬖诮坪秃?jiǎn)化操作,使得最終的結(jié)果存在一些誤差。所以,這里再疊加上心臟在屏幕空間次表面散射效果,也就是用BLUR來(lái)模擬心臟的多層散射效果。在心臟任意表面計(jì)算輻射出射度
如圖3所示,屏幕空間的心臟次表面散射繪制步驟可概括如下:
(1)加載心臟紋理,根據(jù)紋理坐標(biāo)確定紋理元素位置;
(2)根據(jù)紋理映射原理映射到屏幕空間;
(3)對(duì)渲染目標(biāo)的像素進(jìn)行篩選標(biāo)記;
(4)繪制心臟材質(zhì),并對(duì)渲染目標(biāo)進(jìn)行水平和豎直方向高斯模糊,并進(jìn)行緩存;
2.3 心臟次表面散射混合
針對(duì)心臟的次表面散射繪制效果,為了描述真實(shí)世界中的心臟特質(zhì),就必須描述光線在物體中的分布情形, 也就是BSSRDF。由于單一空間的半透明材質(zhì)繪制方法難以達(dá)到預(yù)期的效果,不適合虛擬手術(shù)的運(yùn)用場(chǎng)合。因此,為了實(shí)現(xiàn)符合物理規(guī)律且更加具有真實(shí)感的心臟顯示效果,本研究探索性提出基于紋理空間和屏幕空間算法的心臟次表面散射材質(zhì)繪制方案,用于提升整體的真實(shí)感。
對(duì)于心臟的次表面散射,本研究主要將其分為兩個(gè)部分,即上述提到的心臟紋理空間的次表面散射和心臟屏幕空間的次表面散射。其基本思想是將次表面散射材質(zhì)繪制方程分解到指定的平衡函數(shù)上,用這一組子函數(shù)的線性組合來(lái)逼近原函數(shù),得到更好的次表面散射效果,即
紋理空間的處理和屏幕空間的處理是相互獨(dú)立的。在紋理空間中,心臟次表面繪制根據(jù)陰影貼圖進(jìn)行光照貼圖的計(jì)算和幾何變換并繪制紋理。而在屏幕空間中,心臟次表面繪制將紋理坐標(biāo)作為紋理元素位置加載紋理并映射到屏幕空間,最終在屏幕空間中對(duì)圖像進(jìn)行卷積操作,并將結(jié)果作為新的緩存紋理,該過(guò)程沒(méi)有多余的計(jì)算。本研究中規(guī)定心臟的紋理空間次表面散射為遠(yuǎn)平面繪制,心臟的屏幕空間次表面散射為近平面繪制。
根據(jù)平衡公式(7),將上述產(chǎn)生的緩存紋理進(jìn)行混合繪制。由于遠(yuǎn)平面繪制能夠提供絕大部分的散射效果。近平面繪制又能彌補(bǔ)紋理空間次表面散射的瑕疵,因而能夠生成具有高度真實(shí)感的心臟次表面散射繪制效果,基本流程如圖4所示。
3 HDR光源照明
為了提升照明真實(shí)感,本研究中使用IBL方法[11](image-based light,簡(jiǎn)稱IBL)計(jì)算光照影響,即使用真實(shí)世界的光照?qǐng)D來(lái)照明物體和場(chǎng)景的過(guò)程。
因而,這里的光照?qǐng)D需要引進(jìn)HDR(high dynamic range,簡(jiǎn)稱HDR)來(lái)增強(qiáng)模擬真實(shí)的光照環(huán)境。
另外,為了能全方位的映射光照,需要添加IBL從天空球中映射真實(shí)世界照明,則需要添加光照Probe。Probe圖像具有類似凸透鏡的廣視角效果。其原理是通過(guò)拍攝相隔九十度的鏡像球的兩張HDR照片來(lái)創(chuàng)建光照Probe圖像,并將兩個(gè)輻射圖組合成全球,如圖5所示。另外,可在http://www.pauldebevec.com/Probes/網(wǎng)站獲取更多的Probe圖像,本文使用最后一個(gè)進(jìn)行IBL計(jì)算。
4 后處理優(yōu)化
4.1 心臟繪制反走樣
混合繪制后,本研究將反走樣作為后處理優(yōu)化繪制效果,這里使用SMAA[12],即增強(qiáng)型子像素形態(tài)學(xué)抗鋸齒技術(shù),來(lái)進(jìn)行反走樣處理。SMAA更好的幾何形體和對(duì)角形體檢測(cè)處理機(jī)制,通過(guò)圖形邊緣局部特征對(duì)比來(lái)識(shí)別圖像的鋸齒特征,并通過(guò)重建子像素的方式實(shí)現(xiàn)抗鋸齒功能。圖6展示了未經(jīng)過(guò)反走樣與經(jīng)過(guò)SMAA反走樣處理的對(duì)比圖??梢钥闯鲩_(kāi)啟反走樣之后,邊緣的鋸齒柔和許多。
4.2 心臟繪制抖動(dòng)策略
本研究用可分離近似的方法分別對(duì)紋理空間和屏幕空間的心臟次表面散射繪制進(jìn)行處理,取得了不錯(cuò)的效果。同時(shí),為了避免在高分辨率上的瑕疵,我們使用隨機(jī)抖動(dòng)作為后處理步驟。隨機(jī)抖動(dòng), 也稱為高斯抖動(dòng),是不可預(yù)測(cè)的電子定時(shí)噪聲,通常遵循高斯分布或者正態(tài)分布。其中,正態(tài)分布的概率密度遵循:
其中,μ是分配的平均值或期望值,σ是標(biāo)準(zhǔn)差,σ2是方差。在心臟繪制后,對(duì)輸出像素的xy坐標(biāo)上進(jìn)行隨機(jī)抖動(dòng),其效果是使像素能在原來(lái)的位置上產(chǎn)生輕微的偏移。同時(shí),為了避免GPU緩存超負(fù)荷,本研究將抖動(dòng)策略限制在靠近被觀察的像素,能解決一部分的視覺(jué)瑕疵,從而在一定程度上更好的提升心臟繪制的真實(shí)感。
5 心臟次表面散射材質(zhì)繪制流程
本研究繪制方案中,心臟次表面散射材質(zhì)繪制是心臟顯示真實(shí)感仿真的一個(gè)重要環(huán)節(jié)(如圖1所示),主要由以下幾個(gè)部分組成。第一階段是預(yù)處理階段,該階段包括渲染凹凸紋理,渲染Beckman紋理等以及準(zhǔn)備心臟三維網(wǎng)格模型。第二階段是光照計(jì)算階段,該階段分別計(jì)算環(huán)境光、漫反射光、次表面散射光以及高光,其中次表面散射光主要利用本研究提出的基于紋理空間和屏幕空間的心臟次表面散射材質(zhì)繪制方法計(jì)算,并利用式(7)中的平衡函數(shù)進(jìn)行光照效果混合。第三個(gè)階段是后處理階段,該階段分別運(yùn)用SMAA反走樣技術(shù)和像素抖動(dòng)策略,使心臟的邊緣更加柔和,并由于偏移,一定程度上掩蓋極端條件下繪制的瑕疵。
本研究提出的繪制方案整體流程圖如圖7所示。
6 實(shí)驗(yàn)結(jié)果與分析
實(shí)驗(yàn)使用一臺(tái)具有Intel Core(TM) i5-4200 M、2.50 Hz CPU、4 G內(nèi)存、NVIDIA GeForce GT 755 M 2 G顯示卡、運(yùn)行Windows 7 64 bit操作系統(tǒng)的PC機(jī)作為仿真平臺(tái),仿真程序基于DirectX 10 API,在Visual Studio 2010開(kāi)發(fā)工具上C++編寫。該程序的開(kāi)發(fā)框架為DXUT,著色器部分采用高級(jí)著色語(yǔ)言(HLSL)。心臟三維模型主要通過(guò)三維建模,貼圖和導(dǎo)出,并用MeshConvertor轉(zhuǎn)成所需的sdkmesh格式。Probe圖像來(lái)源于網(wǎng)上開(kāi)源素材。
如圖8所示,基于紋理空間和屏幕空間混合的心臟次表面繪制方案的實(shí)驗(yàn)結(jié)果,由于改進(jìn)原來(lái)的次表面散射項(xiàng)的光照計(jì)算方法,能更準(zhǔn)確地表現(xiàn)心臟材質(zhì)細(xì)節(jié)特性,在心臟血管,心臟較薄組織部位等容易出現(xiàn)次表面散射的地方得到了很好的改善,并且可以看出由于使用了反走樣的后處理策略,邊緣的鋸齒狀得到了改善,提升心臟顯示真實(shí)感。
如圖9所示,(a)是心臟紋理空間次表面散射材質(zhì)繪制效果,(b)是本研究提出的心臟次表面散射材質(zhì)混合繪制的效果。經(jīng)過(guò)放大對(duì)比,能發(fā)現(xiàn)本方案能夠在心血管附近等器官組織較薄的地方更準(zhǔn)確地產(chǎn)生輕微的半透明效果,通過(guò)屏幕空間的再次繪制,使其更真實(shí)地模擬光線的多重散射和處理優(yōu)化,提升了次表面散射的繪制效果。
如圖10所示,(a)未開(kāi)啟反走樣,(b)經(jīng)過(guò)反走樣處理。通過(guò)繪制結(jié)果對(duì)比,可以看出,經(jīng)過(guò)反走樣后處理的心臟繪制結(jié)果邊緣更加柔和,沒(méi)有出現(xiàn)明顯的鋸齒狀,而未進(jìn)行反走樣處理的繪制結(jié)果則有明顯的鋸齒。
本研究提出的混合繪制方案改善了之前的方案在細(xì)節(jié)繪制準(zhǔn)確性的不足,并且引進(jìn)真實(shí)光源HDR,在視覺(jué)上極大提升了整體的真實(shí)感。該方法在一定程度上降低了心臟次表面散射材質(zhì)繪制難度,有較高的幀率,如表1所示,給出了不同方案以及不同精度模型在相同條件下的心臟次表面散射材質(zhì)繪制的實(shí)驗(yàn)結(jié)果。通過(guò)實(shí)驗(yàn)結(jié)果對(duì)比,可以看出本方案在分辨率為1280×1280,面數(shù)為145501時(shí)的幀速率為55 frame/s左右,與紋理空間繪制方法的85 frame/s相比下降不多,但獲得了更好的繪制準(zhǔn)確性和視覺(jué)真實(shí)感,具體細(xì)節(jié)表現(xiàn)如圖8到圖10繪制效果所示。
7 結(jié)論
本文提出一種基于紋理空間和屏幕空間混合的心臟次表面繪制方案。針對(duì)光照計(jì)算中的次表面散射繪制效果提升,本研究中將紋理坐標(biāo)作為渲染對(duì)象坐標(biāo)進(jìn)行卷積運(yùn)算,使2D紋理能夠產(chǎn)生基礎(chǔ)的次表面散射效果。同時(shí),結(jié)合基于屏幕空間的近似算法彌補(bǔ)紋理空間算法的不足進(jìn)行混合繪制,并使用后處理優(yōu)化抗鋸齒,產(chǎn)生更好的整體效果。針對(duì)光照計(jì)算中次表面散射繪制難度上,在紋理空間和屏幕空間的計(jì)算處理上通過(guò)分離近似求解,所以能很好地控制算法的復(fù)雜度。實(shí)驗(yàn)結(jié)果表明,本研究提出的方法能夠在保證繪制速率的同時(shí),提高繪制的準(zhǔn)確性和真實(shí)感。
雖然該方案在次表面散射材質(zhì)繪制上的改進(jìn)使心臟顯示真實(shí)感有所提升,但仿真效果在高分辨率情況下還會(huì)存在少許偏差。同時(shí),由于需要同時(shí)處理紋理空間和屏幕空間的次表面散射繪制,多余的光照計(jì)算會(huì)使渲染速度有所下降。對(duì)于進(jìn)一步的改進(jìn),將在今后的研究中繼續(xù)探討。
參考文獻(xiàn):
[1]DONG Y, LIN S, GUO B. Overview of Subsurface Light Transport [M]. Berlin :Springer Berlin Heidelberg, 2013.
[2]KOTHARI L G, SHAH K, BARACH P. Simulation based medical education in graduate medical education training and assessment programs[J]. Progress in Pediatric Cardiology,2017,1(2):56-63.
[3]徐庚保, 曾蓮芝.計(jì)算機(jī)仿真系統(tǒng)述評(píng)[J].計(jì)算機(jī)仿真, 2012,29(4): 1-5.
[4]LAFORTUNE E P, WILLEMS Y D. Rendering participating media with bidirectional path tracing[C]// Eurographics Workshop on Rendering Techniques, Vienna: Springer-Verlag, 1996:91-100.
[5]MAISCH S, ROPINSKI T. Spatial Adjacency Maps for Translucency Simulation under General Illumination[C]// Computer Graphics Forum,State of New Jersey: Wiley Online Library,2017:443-453.
[6]FRISVAD J R, HACHISUKA T, KJELDSEN T K. Directional dipole model for subsurface scattering [M].Vol 34.No 1.New York: ACM, 2014: 5.
[7]HOLST D. Real-time rendering of subsurface scattering and skin [D]. Norrkoping : Linkoping University, 2017.
[8]JIMENEZ J, JARABO A, WU X C, et al. Separable Subsurface Scattering [J]. Computer Graphics Forum, 2015, 34(6): 188-197.
[9]趙沁平, 李帥, 郝愛(ài)民,等.一種動(dòng)態(tài)物體次表面散射實(shí)時(shí)繪制方法[J].軟件學(xué)報(bào), 2010, 21(11): 2959-2970.
[10]JENSEN H W, MARSCHNER S R, LEVOY M, et al. A practical model for subsurface light transport[C]//Proceedings of the 28th annual conference on Computer graphics and interactive techniques. New York: ACM, 2001: 511-518.
[11]LUO B, CAI S, WEN S, et al. Render Synthetic Objects with Background Image According to Image-Based Lighting[C]//proceedings of the Proceedings of the 5th International Conference on Electrical Engineering and Automatic Control. Berlin : Springer-Verlag Berlin Heidelberg, 2016:357-365.
[12]JIMENEZ J, ECHEVARRIA J I, SOUSA T, et al. SMAA: enhanced subpixel morphological antialiasing [J]. Computer Graphics Forum, 2012, 31(2): 355-364.
(責(zé)任編輯:周曉南)