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

基于曲率流的屏幕空間流體渲染

2018-04-24 07:58:53楊欣
現代計算機 2018年8期
關鍵詞:深度

楊欣

(四川大學計算機學院,成都 610025)

0 引言

在虛擬現實技術日益發展的過程中,流體渲染已逐漸成為一個研究熱點。目前,基于網格和基于粒子的流體模擬是計算機圖形學的兩大分類,而流體作為粒子是更方便地去整合它所處的物理系統的,如每個粒子都有自己的位置、壓力、密度、速度等屬性,正因為有這些屬性使得流體更加真實;;也正是因為如此,平滑粒子流體力學(Smoothed Particle Hydrodynamics,SPH)方法使得我們更難去提取或定義流體的表面,針對基于粒子模擬的流體的渲染方法是很少的,并且大部分都并非實時。

在采用平滑粒子流體力學方法已經模擬出流體的前提下,本文的輸入數據為粒子pi的位置xi,甚至也可以包括速度vi和密度ρi,分為四個步驟完成渲染:第一個繪制遍根據位置,表面深度,厚度得到深度圖;第一個繪制遍生成厚度圖;第三個繪制遍采用曲率流進行對表面深度平滑處理;第四個繪制遍渲染場景天空盒背景;最后一個整合繪制遍進行光照處理。

1 表面

通常來說,流體的表面是定義在世界空間下,要么是作為網格直接定義[1],要么是用Marching Cubes多邊形化之后定義的隱式表面[2]。但是實際上每一幀流體的移動和渲染都取決于視點,故在視點坐標系下去定義表面是更利于有效計算的[3],故本文的一個核心在于是在視點空間進行渲染處理,如圖1。

圖1 表面

1.1 點精靈

點精靈是使用片元著色器渲染的OpenGL點,運行的時候考慮點內的片元坐標,其坐標是兩維向量gl_PointCoord,可以任意使用這個變量,特別之處在于一個頂點也可以貼紋理。

點精靈的局限在于一個頂點縮放都必須是矩形,并且其最大最小值是有范圍的,故如果要使點精靈表現為球體,通過公式(1)和(2)計算得到的N的長度如果大于1,則discard來將立方體變為球體:

1.2 表面深度

每一幀的攝像機位置視點決定了流體的表面,將每一個粒子渲染為球體,通過硬件深度測試來獲取每個像素后面離近平面最近的深度值作為表面值。為了能夠獲取視點下流體的表面,我們采用點精靈技術,在片元著色器中將深度寫入到離線緩存。我們僅僅需要存儲深度即可,而不需要存儲顏色,而深度信息則是后續的平滑處理以及法線計算所需要用到的輸入數據。渲染的深度圖如圖2、圖3、圖4。

圖2 4000粒子深度圖

圖3 8000粒子深度圖

圖4 16000粒子深度圖

2 曲率流平滑處理

對流體表面的平滑處理最常見的方法是高斯模糊及其變體形式,如雙向高斯濾波[4]。高斯模糊的平滑方式會使得流體的邊緣出現影子,輪廓邊緣顯得更暗;雙向高斯濾波處理對邊界的處理會好很多,但是不可分割的,因此代價消耗比較昂貴。

本文采用曲率流(curvature flow)[5]實現了在屏幕空間平滑流體的表面。該方法的出發點在于當流體流動的時候,主要處理粒子間的曲率來形成平滑且連續的表面。曲率流沿著它的法線方向演化成一個表面,其演化速度取決于表面的平均曲率大小和正負。雖然我們只操作垂直于視點平面的z軸方向,但我們可以通過對于曲率的比例,改變z值來達到我們想要的平滑效果。因此,我們如下定義:

其中,t是平滑迭代次數,H是平均曲率;H平均曲率定義為表面的單位法向量的散度。

其中,通過投影矩陣的逆矩陣可以將一個粒子映射到視點空間下的P;Vx,Vy是視口參數;Fx,Fy分別是x和y方向上的焦距。

其中,

法線是由P在x和y方向上的導數的叉乘所得到。為了簡化公式(6),我們忽略P依賴于視點位置Wx,Wy的因素式,實際上此因素式的作用微不足道,故我們可以得到單位向量公式如下:

由于z是x,y表示的函數,散度的z分量總是零,再結合公式(4),推出H的公式:

其中,

為了防止流體邊緣表面的不連續混合,在深度會發生驟變的兩像素邊界以及屏幕的邊界處,我們強制使得空間散度為零。

每個迭代,公式(3)的簡單歐拉積分都用來修改了z值,z值的空間散度用有限差分計算而得。迭代的次數依賴于想要的平滑效果所設定,迭代次數越多,效果更平滑,但同時計算量也會更大[4]。

3 厚度

厚度是用來表示每個像素點處的流體量。為了達到這種半透明漸變效果,針對每一個像素,計算得出攝像機和最近的透明物體的數量。在繪制的時候和第一個繪制遍一致,但不同的是需要開啟混合,存儲厚度到幀緩存中,而不是之前的深度。開啟混合的作用則是去累加屏幕中每個位置的流體量。開啟深度測試,保證只渲染在場景中最前方的流體。此厚度的有效性是在粒子沒有重疊的情況下成立,而正好平滑粒子流體力學(SPH)模擬方法能保證這一點。

4 天空盒背景

實現天空盒背景的主要技術是使用立方體映射紋理技術,而使用天空盒背景的目的在于體現流體的反射效果。

首先,立方體映射紋理是一種特殊類型的紋理,用于環境映射,使用6個正方形的并且大小相同的子紋理作為立方體映射的6個面,如圖5。通過將一個紋理綁定到gl_TEXTURE_CUBE_MAP紋理目標,并在gl_TEXTURE_CUBE_MAP目標上調用glTexStorage2D()可以為立方體映射紋理分配存儲空間。分配存儲空間后,立方體映射用6個特殊目標的集合表示,分別是GL_TEXTURE_CUBE_MAP_POSITIVE_X、GL_TEXTURE_CUBE_MAP_NEGATIVCE_X、GL_TEXTURE_CUBE_MAP_POSITIVE_Y、GL_TEXTURE_CUBE_MAP_NEGATIVE_Y、GL_TEXTURE_CUBE_MAP_POSITIVE_Z,GL_TEXTURE_CUBE_MAP_NEGATIVE_Z。

圖5 Cubemap六張紋理圖

在立方體映射中采樣的時候,使用的紋理坐標是三維且看作來自原點的方向,方向指向用來讀取紋理的立方體映射表面的位置。立方體映射對于表示周圍環境、光和反射效果是很完美的。在第四個繪制遍的時候繪制出的天空盒背景,在最后一個繪制遍整合的時候,在片元著色器中可以通過內置函數reflect(Inci?dentLight,Normal)得到的結果去采取立方體映射的紋素來達到反射的效果。

5 渲染

在最后一個繪制遍,將之前繪制遍渲染的幀緩存(深度圖、厚度圖、法線圖等)做最后的整合處理,來得到最終的效果。本繪制遍主要做光照處理,其中包括馮氏光照和菲涅爾反射。

5.1 馮氏光照模型

馮氏光照模型主要由環境(Ambient)光照、漫反射(Diffuse)光照、鏡面(Specular)光照構成。

環境光照使物體永遠不會是完全黑暗的,在現實生活中環境光只是平行光找到其他物體上;漫反射光照和觀察者的角度無關,但其是馮氏光照模型最顯著的組成部分,決定了物體的主要顏色;鏡面反射光照是模擬有光澤物體上面出現的亮點,使其更傾向于光的顏色,此光照與視角和材質光澤度(Shininess)有關。結合三種光照元素,構成的馮氏光照公式如下:

圖6 4000粒子,30次曲率流迭代

其中,AStrength是環境光系數;LightColor是光的主顏色;Ambient是環境光分量;Normal是物體表面的法線;LightDir是光的方向,即物體到光源的向量;Dif?fuse是漫反射分量;SStrength是鏡面強度;ViewDir是物體到眼睛的向量;ReflectDir則是LightDir基于Nor?mal的反射向量;Shininess是高光的反光度。

5.2 菲涅爾反射

菲涅爾反射所反映的現象在于流體表面在棱角尖銳處反射更強烈。換言之,視線垂直于表面時,反射較弱;視線飛垂直表面時,夾角越小,反射越明顯。在渲染中采用了近似處理,公式如下:

其中,θ是入射角;R0是反射率;cosθ是法線和視線向量的點乘。

6 實驗結果

實驗針對平滑粒子流體力學模擬出來的流體,僅僅針對其渲染做出實驗。實驗控制兩個變量,一是粒子數量,一是曲率流平滑處理迭代次數。針對這兩個變量的取值,分別做了6個實驗,如圖6-11。

圖7 4000粒子,60次曲率流迭代

圖8 8000粒子,30次曲率流迭代

圖9 8000粒子,60次曲率流迭代

圖10 16000粒子,30次曲率流迭代

從上述實驗可以看到,粒子數量越多,渲染的流體密度更為密集,稀疏度更真實;曲率流迭代次數越多,流體表面更加光滑,顆粒感越不明顯。

7 結語

本文針對粒子化流體進行實時渲染,采用了點精靈將粒子球體化,使得可以簡單地捕捉流體的表面;進一步通過可以控制迭代次數的曲率流平滑處理流體,使其更加真實;最后為流體增加天空盒和菲涅爾反射效果,結合馮氏光照模型渲染處最終效果。布料模擬方法采用預計算處理彈簧質點模型數據。在兼顧真實感的同時,對繪制效率也有較好的提升,能夠被運用于電子游戲,電影動畫產業中。但同時,本文未對流體加入噪聲、焦散、陰影等更為細節的研究,需要在接下來的工作中進行研究和完善。

參考文獻:

[1]Stora D,Agliati P,Cani M,et al.Animating Lava Flows[C].Graphics Interface,1999:203-210.

[2]Lorensen W E,Cline H E.Marching Cubes:A High Resolution 3D Surface Construction Algorithm[J].International Conference on Computer Graphics and Interactive Techniques,1987,21(4):163-169.

[3]Muller M,Schirm S,Duthaler S,et al.Screen Space Meshes[C].International Conference on Computer Graphics and Interactive Techniques,2007:9-15.

[4]Aurich V.,Weule J.(1995)Non-Linear Gaussian Filters Performing Edge Preserving Diffusion.In:Sagerer G.,Posch S.,Kummert F.(eds)Mustererkennung 1995.Informatik Aktuell.Springer,Berlin,Heidelberg.

[5]Malladi R.,Sethian J.A.(1997)Level Set Methods for Curvature Flow,Image Enchancement,and Shape Recovery in Medical Images.In:Hege HC.,Polthier K.(eds)Visualization and Mathematics.Springer,Berlin,Heidelberg.

猜你喜歡
深度
深度理解不等關系
四增四減 深度推進
深度理解一元一次方程
深度觀察
深度觀察
深度觀察
深度觀察
芻議深度報道的深度與“文”度
新聞傳播(2016年10期)2016-09-26 12:14:59
提升深度報道量與質
新聞傳播(2015年10期)2015-07-18 11:05:40
微小提議 深度思考
主站蜘蛛池模板: 国产一级视频久久| 激情六月丁香婷婷| 亚洲成人手机在线| 色网站在线视频| 精品人妻一区二区三区蜜桃AⅤ| 国产在线观看第二页| 男女男免费视频网站国产| 欧美影院久久| 亚洲 欧美 日韩综合一区| 亚洲精品麻豆| 久久午夜夜伦鲁鲁片不卡 | 国产一级妓女av网站| 成人亚洲天堂| 亚洲人成色在线观看| 中国成人在线视频| 精品少妇人妻无码久久| 91口爆吞精国产对白第三集| 国产毛片高清一级国语| 无码久看视频| 久久超级碰| 黑色丝袜高跟国产在线91| 青青青国产在线播放| 99人妻碰碰碰久久久久禁片| 精品免费在线视频| 久久国产高清视频| a级毛片免费网站| 国产在线自揄拍揄视频网站| 久久国产热| 色噜噜综合网| 天堂在线www网亚洲| 成人免费午夜视频| 无码国内精品人妻少妇蜜桃视频| 精品伊人久久久久7777人| 91久久精品国产| 欧美成人精品在线| 99久久精品国产综合婷婷| 免费人成视网站在线不卡| 好紧好深好大乳无码中文字幕| 免费人成视网站在线不卡| 久久99精品国产麻豆宅宅| 国产精品无码AV中文| 97se亚洲综合在线韩国专区福利| 久久综合九色综合97网| 欧美不卡在线视频| 午夜久久影院| 国产香蕉97碰碰视频VA碰碰看| 欧美自慰一级看片免费| 狠狠色综合久久狠狠色综合| 亚洲国产日韩在线成人蜜芽| 午夜一区二区三区| 99免费在线观看视频| 亚洲国产在一区二区三区| 亚洲欧美人成人让影院| 国产呦精品一区二区三区网站| 国产欧美日韩在线在线不卡视频| 国产精品亚洲专区一区| 亚洲视频免费播放| 国产精品自拍露脸视频| 国产黑丝视频在线观看| 日韩A级毛片一区二区三区| 国产高清自拍视频| 免费jizz在线播放| 国产成人凹凸视频在线| 播五月综合| 亚洲成人精品在线| 日韩在线成年视频人网站观看| 亚洲品质国产精品无码| 欧美日韩亚洲国产| 国产日产欧美精品| 欧美成人综合视频| 韩国自拍偷自拍亚洲精品| 国产精品无码AⅤ在线观看播放| 亚洲一级毛片免费观看| 国产欧美日韩视频一区二区三区| 精品国产美女福到在线不卡f| av在线5g无码天天| 91亚洲免费| 一级毛片免费播放视频| 国产精品美女免费视频大全| 女人av社区男人的天堂| 久久福利片| 精品伊人久久大香线蕉网站|