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
微小提議 深度思考
主站蜘蛛池模板: 人妻免费无码不卡视频| 日韩精品无码不卡无码| 国产网站一区二区三区| 夜夜拍夜夜爽| 妇女自拍偷自拍亚洲精品| 91久久国产综合精品| 91麻豆久久久| 一区二区三区国产| 在线网站18禁| 成人久久18免费网站| av手机版在线播放| 人妻一本久道久久综合久久鬼色| 色老头综合网| 色有码无码视频| 亚洲精品高清视频| 欧美国产日韩在线观看| 97青草最新免费精品视频| 永久成人无码激情视频免费| 男女精品视频| 免费观看三级毛片| 日本草草视频在线观看| 91精品国产91欠久久久久| 日韩经典精品无码一区二区| 亚洲中文字幕在线一区播放| 亚洲丝袜第一页| 欧美三级视频在线播放| 国产丝袜无码一区二区视频| 曰韩免费无码AV一区二区| 无码福利视频| 国产免费a级片| 五月婷婷欧美| 日韩国产亚洲一区二区在线观看 | 欧美www在线观看| 国产微拍精品| 国产精品久久自在自2021| 狂欢视频在线观看不卡| 国产爽妇精品| 热久久这里是精品6免费观看| 激情综合激情| 日韩国产黄色网站| 久草网视频在线| 伊人久久大香线蕉成人综合网| 美女扒开下面流白浆在线试听| 久久精品中文字幕免费| 成人在线视频一区| 国产成人亚洲日韩欧美电影| 日本人妻丰满熟妇区| 久久久精品国产SM调教网站| 欧美无遮挡国产欧美另类| 18禁色诱爆乳网站| 99视频有精品视频免费观看| 欧美成人亚洲综合精品欧美激情| 最新日本中文字幕| 老色鬼欧美精品| 久久99蜜桃精品久久久久小说| 亚洲女同一区二区| 亚洲天堂2014| 在线99视频| 国产在线91在线电影| 国产性生交xxxxx免费| 韩国v欧美v亚洲v日本v| 亚洲 欧美 偷自乱 图片| 午夜精品一区二区蜜桃| 欧美区一区二区三| a色毛片免费视频| 美女亚洲一区| 亚洲精品无码AV电影在线播放| 亚洲精品中文字幕午夜| 国产综合在线观看视频| 这里只有精品在线| 欧美亚洲香蕉| 国产无码性爱一区二区三区| 波多野结衣国产精品| 国产嫖妓91东北老熟女久久一| 精品第一国产综合精品Aⅴ| 黄片一区二区三区| 在线观看91精品国产剧情免费| 亚洲另类国产欧美一区二区| 777国产精品永久免费观看| 国产91精选在线观看| 欧美视频在线播放观看免费福利资源 | 欧美色综合网站|