吳德道,趙永虹,張思維,劉小平
(1.南昌大學(xué)信息工程學(xué)院,江西 南昌 330031;2.景德鎮(zhèn)陶瓷大學(xué),江西 景德鎮(zhèn) 333000;3.四川開放大學(xué)工程技術(shù)學(xué)院,四川 成都 610073;4.南昌大學(xué)前湖學(xué)院,江西 南昌 330031;5.卡爾頓大學(xué)系統(tǒng)與計(jì)算機(jī)工程系,渥太華 加拿大 K1S 5B6)
實(shí)現(xiàn)逼真是計(jì)算機(jī)圖形學(xué)的一個(gè)焦點(diǎn),尤其在渲染虛擬手術(shù)的情況下。渲染虛擬手術(shù)時(shí)最重要的一個(gè)方面是手術(shù)表面的外觀。長期以來,這一直是一個(gè)具有挑戰(zhàn)性的主題,而高真實(shí)感的表面呈現(xiàn)直到最近幾年才具備高性能實(shí)時(shí)應(yīng)用程序的可行性。由于這種開發(fā)相對較新,所以在實(shí)時(shí)設(shè)計(jì)實(shí)現(xiàn)中,表面的真實(shí)呈現(xiàn)尚不普遍。在本文中,我們將著眼于如何利用這些技術(shù)來更真實(shí)地再現(xiàn)手術(shù)切口。許多外科手術(shù)模擬器和現(xiàn)代電子游戲都以某種方式描述切口的切割過程,盡管它們處理切口的方式非常不同。手術(shù)模擬器試圖盡可能近地模擬手術(shù)工具與表皮組織的幾何形狀之間的相互作用。表面的視覺質(zhì)量往往被犧牲,而不是改善模擬。另一方面,電子游戲通常側(cè)重于傳達(dá)一種被藝術(shù)化的視覺。因此,表皮切口往往是藝術(shù)再現(xiàn),而不是物理模擬。用這種方法制造切口需要大量的藝術(shù)方面的投入,這既費(fèi)時(shí)又費(fèi)力。
我們歸納了目前的幾種合成皮膚切口的方法。第一,在最基本的方法中,藝術(shù)家創(chuàng)建了許多具有不同程度傷害的皮膚紋理,這些紋理在角色受到傷害時(shí)在運(yùn)行時(shí)交換出去。第二,較復(fù)雜的模型根據(jù)運(yùn)行時(shí)確定的標(biāo)準(zhǔn),將預(yù)生成的損傷(紋理和可能的網(wǎng)格修改)應(yīng)用于角色模型的部分。第三,更精細(xì)的傷害模型基于運(yùn)行時(shí)收集的精確傷害信息對角色進(jìn)行局部修改,在運(yùn)行時(shí)動(dòng)態(tài)生成適當(dāng)?shù)募y理和網(wǎng)格修改。大多數(shù)外科手術(shù)和電子游戲模擬器中使用第一種或第二種模型來可視化角色受傷,其中藝術(shù)影響是決定切口外觀的主要因素。只有在第三種模型中,損傷是在運(yùn)行時(shí)合成的,因此依賴于藝術(shù)的成份較少,而可以用于更廣泛的應(yīng)用程序。在電子游戲和外科手術(shù)模擬器中,關(guān)于皮膚損傷的學(xué)術(shù)研究很少,而公開發(fā)布的交互式軟件中復(fù)雜的破壞模型的技術(shù)細(xì)節(jié)更少,這使得對這個(gè)主題的研究既困難又有研究價(jià)值。
綜合考慮,在三維重建數(shù)字化模型基礎(chǔ)上提出了一種實(shí)時(shí)模擬和可視化切口的方法。該方法直接與三維三角網(wǎng)格交互,并在程序運(yùn)行時(shí)生成新的幾何結(jié)構(gòu)與簡單而有效的紋理合成器結(jié)合使用,可以在程序運(yùn)行中產(chǎn)生高真實(shí)感的手術(shù)切口。本文其余章節(jié)組織如下。第二章回顧了之前的相關(guān)研究,并對我們的解決方案進(jìn)行了概述。第三章給出了我們解決方案中使用的渲染方法以及手術(shù)切口的渲染,第四章通過實(shí)驗(yàn)進(jìn)一步證實(shí)我們的渲染方法行之有效,最后,第五章總結(jié)了本文的研究成果,并對將來的研究提出了建議。
外科手術(shù)切口創(chuàng)面常常被錯(cuò)誤地與裂口交替使用,但由于創(chuàng)面內(nèi)沒有薄的組織橋,切口邊緣幾乎沒有或沒有磨損,因此具有明顯的區(qū)別[1-2]。切口的另一個(gè)視覺特征是其周圍的表皮組織會(huì)變紅。這種紅色的醫(yī)學(xué)術(shù)語是紅斑,由小靜脈和毛細(xì)血管破裂或血液細(xì)胞流入開始愈合過程引起[3]。紅斑通常是彌漫性的,沒有固定模式[2]。
在計(jì)算機(jī)圖形學(xué)和游戲技術(shù)領(lǐng)域,對手術(shù)切口可視化或切口模型的研究非常少。Grimes和Vlachos[4-5]提供了兩個(gè)相關(guān)的資料,可以讓我們深入了解實(shí)際的切口模型。這兩幅作品描述了一種技術(shù),使用動(dòng)態(tài)可替換的剔除體來表示開放切口的程度,從這里可以看到肉和骨頭的內(nèi)部模型。投射的紋理是用來可視化血飛濺和切口周圍的邊緣開口。雖然這種技術(shù)能夠創(chuàng)造出自然的切口,切斷一部分網(wǎng)格,但由于需要皮膚表面后面的內(nèi)部網(wǎng)格,其適用性是有限的。此外,它只允許使用橢球體或圓盤進(jìn)行切割,因此不適合小的手術(shù)切割。Lee等人提出了一種面部創(chuàng)傷綜合系統(tǒng)[6-7]。首先描述了將纏繞紋理投射到三維模型中的實(shí)際意義并介紹了生成面部深度圖和測量輸入切口圖像的空間變化深度圖的技術(shù),然后,當(dāng)將一個(gè)切口圖像應(yīng)用到選定區(qū)域時(shí),這兩個(gè)紋理映射用于修改面部網(wǎng)格的局部幾何形狀(深度)。他們的技術(shù)允許用戶交互選擇切口圖像的位置,然后實(shí)時(shí)應(yīng)用到目標(biāo)網(wǎng)格。然而,他們使用預(yù)先生成的切口紋理,并沒有采取任何行動(dòng)來改善切口與原始表皮顏色的混合,使切口看起來人工合成明顯。
本文通過用于表面可視化[8]的切口紋理在運(yùn)行時(shí)生成以提高實(shí)時(shí)性能,并提出一種擴(kuò)展的次表面散射方法結(jié)合基于物理的渲染方法,以便切口周圍區(qū)域局部顏色變化更加具有逼真度。該方法完成切割到切口真實(shí)感呈現(xiàn)約在150毫秒以內(nèi),可以增加在實(shí)時(shí)應(yīng)用中虛擬手術(shù)切口的高真實(shí)感。
虛擬手術(shù)切口高真實(shí)感渲染主要是切口自身與切口周圍皮膚表面的渲染以及這二者之間顏色過渡的處理,結(jié)合基于物理的渲染、兩層切口貼片以及提出的基于次表面散射的局部變色方法完成虛擬外科手術(shù)切口高真實(shí)感呈現(xiàn)。
基于物理的渲染(PBR),是一組陰影模型,通過精確建模光和材料的相互作用來實(shí)現(xiàn)更高層次的真實(shí)感和渲染質(zhì)量。用于著色的主要輻射量是輻射度(符號L)。雖然輻射度是一個(gè)光譜量,但為了渲染的目的,它通常存儲(chǔ)為RGB三元組。設(shè)某一點(diǎn)(Lo)的輸出輻射度是該點(diǎn)(Li)的輸入輻射度的函數(shù)。最常用的模型是反射方程:
(1)
出射光是由一個(gè)出射方向ωo給出。對于局部光照陰影來說,ωo通常是視覺向量v,一個(gè)單位向量指向從陰影位置到相機(jī)。入射光ωi是光矢量l,指向光源的陰影位置。積分域是由半球表面法矢量n定義的。由(1)式可知,出射輻射度與入射光線與表面法線入射角加權(quán)后的半球各方向入射輻射度之和成正比(余弦因子)。入射光線也是加權(quán)的雙向反射分布函數(shù)f(ωo,ωi)(雙向)。該函數(shù)以輸入入射光和出射光為輸入,輸出一個(gè)權(quán)值表示入射光線對最終出射光線的貢獻(xiàn)大小。不同PBR模型的區(qū)別在于所選擇和構(gòu)造的雙向反射分布函數(shù)(BRDF)。
BRDF可解釋為指定給定入射光方向的散射光和反射光的分布,并由四個(gè)角度參數(shù)化。為了在物理上合理,BRDF必須遵守可逆原則,如公式(2):
f(ωo,ωi)=f(ωi,ωo)
(2)
而且能量必須守恒:
(3)
對所有可能的輸入ωi方向,BRDF的積分乘以余弦系數(shù)在所有可能的輸出方向ωo不得超過1。式(3)意味著發(fā)出光線的數(shù)量不能超過入射光線的數(shù)量。
Cook-Torrance BRDF是基于微表面理論[9]。在該理論中,表面被視為一組微小的光學(xué)平面——微表面,每個(gè)微表面都有其表面法向量m。此外,在對一個(gè)表面點(diǎn)進(jìn)行著色時(shí),給出了入射光向量l和出射光方向v。需要計(jì)算的是來自l方向的光在v方向上的反射率。只有表面法向量m等于l和v之間的半向量h的微表面才能產(chǎn)生反射,如圖1所示[10]。
圖1 微面反射示意(只有m=h的微面才能對反射有貢獻(xiàn))
從微表面入射的光和從微表面出射的光都可能被表面附近的形變所阻擋。這些現(xiàn)象分別稱為陰影和遮擋。陰影和遮擋的微表面對反射沒有貢獻(xiàn)。所有有助于反射的微表面都稱為活動(dòng)微表面。Cook-Torrance BRDF基于這些假設(shè),其形式如公式(4):
(4)
上式中,F(xiàn)(l,h)為菲涅爾反射率項(xiàng),G(l,v,h)是陰影和遮擋項(xiàng),D(h)為正態(tài)分布項(xiàng),4(n·v)(n·l)為歸一化因子。
在實(shí)時(shí)渲染中,常用的漫反射BRDF是Lambert的BRDF,如公式(5):
(5)
BRDF實(shí)際上是常數(shù),這意味著它模擬了均勻擴(kuò)散,入射光同樣有可能散射到所有可能的方向。Cdiff是散射出表面光的比例系數(shù)。這個(gè)參數(shù)通常被稱為反照率,它與通常認(rèn)為的材料顏色密切相關(guān)。公式(1)中使用的BRDF由鏡面BRDFs和漫反射BRDFs組成,但它們必須以不破壞能量守恒的方式混合在一起。這可以通過多種方式實(shí)現(xiàn),常見的是在BRDFs之間進(jìn)行線性插值,其系數(shù)與給定陰影點(diǎn)處的物體反射率成正比。滿足這個(gè)特性的一個(gè)因素是擴(kuò)散菲涅爾項(xiàng)如公式(6),其中余弦項(xiàng)用v·n取代:
Fdiff(F0,v,n)=F0+(1-F0)(1-(v·n)5)
(6)
最終,本文采用的完整的BRDF如公式(7):
f(v,l)=fLambert(v,l)(1-Fdiff)+
fCook-Torrance(v,l)Fdiff
(7)
在計(jì)算機(jī)圖形學(xué)和游戲技術(shù)中,沒有更嚴(yán)格的數(shù)學(xué)或物理模型的情況下,通常將自然現(xiàn)象的外觀建立在參考圖像的基礎(chǔ)上[11]。在我們的手術(shù)切口渲染中,包括切口周圍的切溝和網(wǎng)格表面。后一過程包括若干階段,首先著色器產(chǎn)生一個(gè)不同大小和外觀的紋理,使切口可視化。然后使用紋理渲染技術(shù)將該紋理映射到網(wǎng)格上,通過著色器將切口貼片渲染到對應(yīng)的網(wǎng)格面上。
在提出的兩層手術(shù)切割傷口貼片生成中,我們將較暗和流血的內(nèi)層與較淺的有色的外層分開。圖2說明了兩層切口貼片的組成。 為了方便觀察,把第一幅圖局部放大成第二幅圖,從中可以看出,內(nèi)層與外層顯示出大量的鋸齒,我們采取局部次表面散射來模糊處理結(jié)果如4.2節(jié)圖4(b)。在內(nèi)層和外層之間以及外層周圍引入了淡入淡出技術(shù),以此改善混合后的整體效果。
除去中心暗紅色的切割溝槽,切口表面從內(nèi)到外分別是深紅的內(nèi)層,淺紅的外層,兩層組合,兩層與內(nèi)層漸變,兩層與內(nèi)、外層漸變。
接著我們定義了內(nèi)層和外層的顏色。對于內(nèi)層,文中使用統(tǒng)一的顏色來表示沾滿血的組織。而對于外層,在較深和較淺的皮膚組織顏色之間進(jìn)行插值。插值因子是通過分形布朗運(yùn)動(dòng)[12]來確定的,該技術(shù)通過重疊具有不同形狀的噪聲函數(shù)來增加噪聲的細(xì)節(jié),從而使噪聲具有分形性并通過使用此技術(shù)來減少切口紋理的人造外觀。
算法1是生成切口貼片的像素著色器偽碼,主要對兩層貼片界限定義,其中在第7行,在輸入紋理坐標(biāo)的x和y位置設(shè)置了一個(gè)隨機(jī)偏移量(在0到100之間)。這樣可以使兩個(gè)不同外層具有不同的外形。算法2是進(jìn)行實(shí)際紋理渲染的像素著色器偽碼,這個(gè)著色器對網(wǎng)格上給定位置的切口紋理進(jìn)行采樣,并返回相應(yīng)紋理的顏色值。當(dāng)對整個(gè)三角形執(zhí)行時(shí),該三角形的每個(gè)像素將采用切口修補(bǔ)的紋素的顏色值,并與原始顏色混合。
手術(shù)切割傷口可視化的最后階段是切口周圍皮膚的變色。這模擬了由于受傷組織周圍毛細(xì)血管擴(kuò)張而引起的皮膚發(fā)紅(紅斑)。通過改進(jìn)Jimenez等人的次表面散射技術(shù)[13-14]來解釋這種類型的皮膚變色。變色顏色可以用切口周圍未受傷皮膚顏色的百分比來表示。這大約是85%到95%的紅色通道,60%到75%的綠色通道,60%到85%的藍(lán)色通道。通過修改模糊核在次表面散射著色器的中心權(quán)值,我們可以調(diào)整表皮的整體顏色。由于中心樣本對最終膚色的權(quán)重最大,我們可以保持其他樣本不變以表現(xiàn)模糊效果。對于每一個(gè)切口,我們渲染到目標(biāo)網(wǎng)格的變色紋理貼圖的alpha值為零,因此不會(huì)干擾原始的次表面散射過程。
實(shí)驗(yàn)環(huán)境配置為CPU為Intel core i5 5200,內(nèi)存4 GB,顯卡為AMD Radeon R5 M320的便攜計(jì)算機(jī)上進(jìn)行了渲染實(shí)驗(yàn);使用3ds Max 2014版本作為渲染工具,Shader語言為CG。實(shí)驗(yàn)用例為實(shí)際的肝臟經(jīng)三維掃描重建后得到的數(shù)字化模型。
第一組實(shí)驗(yàn)對象是圖3(a)在經(jīng)圖像重建后得到的肝臟三維幾何模型,如圖3(b)所示,實(shí)驗(yàn)中手術(shù)切口在圖3(c)和3(d)中分別渲染在3D網(wǎng)格和面片上。在圖3(d)中,切口分內(nèi)外兩層并分別淡化界限,以此使切口顏色過渡自然,通過噪聲函數(shù)的分形性來減少切口紋理的人造外觀痕跡。
(a) 原始肝臟圖片
與真實(shí)肝臟軟組織的切口對比如圖4所示,其中左圖是固定切割裝置旁邊是切割產(chǎn)生切口的肝臟軟組織[15],右圖是經(jīng)數(shù)字重建肝臟切口的渲染。通過對比,我們可以注意到切口幾何外形基本相似,所不同的是切口周圍血液顏色的渲染,左圖偏向切口外形實(shí)驗(yàn),右圖兼顧切口外形和周圍表皮顏色的渲染。
圖4 與真實(shí)肝臟切口的對比,其中左圖為真實(shí)肝臟切口右圖為重建仿真切口
為了模糊處理手術(shù)切口邊界使其具有高真實(shí)感,我們采用改進(jìn)的次表面散射方法使得切口周圍局部變色如圖5所示,其中圖(b)是經(jīng)模糊處理并局部放大與圖(a)未經(jīng)模糊處理比較更顯得切口周圍的過渡自然。
(a) 圖3(d)切口局部放大未模糊處理 (b) 圖4右圖經(jīng)模糊處理并切口局部放大
表2 依次增加的渲染過程及增加手術(shù)切口所對應(yīng)的幀速率對比
第三組實(shí)驗(yàn)如表1展示出在經(jīng)數(shù)字化仿真模擬肝臟模型面片數(shù)為3968的情況下,利用本文渲染方法達(dá)到的幀速率以及增加手術(shù)切口后的渲染幀速率對比。通常12 fame/s的幀速率為人眼所達(dá)到實(shí)時(shí)交互的最低的幀速率,當(dāng)采用次表面散射方法渲染模型以及切口時(shí),其渲染的幀速率依然分別可以在90和85 fame/s左右,分別為人眼實(shí)時(shí)最低速率的7.5和7倍。所以本文實(shí)驗(yàn)方法保證了實(shí)時(shí)渲染的需要。
本文在三維重建數(shù)字化模型基礎(chǔ)上提出了一種實(shí)時(shí)模擬和可視化肝臟虛擬手術(shù)切口的方法。該方法直接與三維三角網(wǎng)格交互,并在程序運(yùn)行時(shí)生成新的幾何結(jié)構(gòu)與簡單而有效的紋理合成器結(jié)合使用,可以在程序運(yùn)行中產(chǎn)生高真實(shí)感的手術(shù)切口。通過使用像素著色器和運(yùn)行時(shí)信息動(dòng)態(tài)生成和渲染切口紋理的方法對切口自身和切口周圍的表面進(jìn)行可視化處理。通過描述一個(gè)避免預(yù)生成內(nèi)容的解決方案,以減少對藝術(shù)輸入的依賴。另外,我們擴(kuò)展了最先進(jìn)的次表面散射方法,允許使用紋理映射產(chǎn)生局部顏色變化。與Jimenez等提出的原始可分屏空間次表面散射著色器相比,改進(jìn)的次表面散射著色器僅慢十分之一。將來工作重點(diǎn)可以集中于研究表皮組織的不同層的生理特性,以及如何將其轉(zhuǎn)化為逼真的物理模擬,以密切模擬真實(shí)(創(chuàng)傷)表皮的行為。