日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

GPU Gems1 - 3 Dawn Demo中的皮肤渲染(Skin in the Dawn Demo)

發布時間:2023/12/13 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 GPU Gems1 - 3 Dawn Demo中的皮肤渲染(Skin in the Dawn Demo) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

該篇文章參照淺墨的這篇文章:https://zhuanlan.zhihu.com/p/35974789

Dawn是由NVIDIA創建的,用來介紹GeForce FX產品線的演示程序,它說明如何使用可編程的著色技術創建出逼真的人類角色。

最初的Dawn Demo由NVIDIA于2002年發布,而十年之后的2012年,NVIDIA新發布了“A New Dawn”技術Demo。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖 Dawn Demo (2002年)

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖 B?New Dawn Demo (2012年)

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 技術指標對比

3.1 引言

這章詳細介紹了NVIDIA出品的Dawn Demo中對精靈人物的著色技術,主要是皮膚的著色技巧。在當時(2002年)NVIDIA創造的此demo的品質,已經成為照片級真實感渲染和實時渲染的代表。

3.2 皮膚著色

基于多種原因,在計算機圖形中模擬皮膚十分困難。在當時,即使是在電影中用高端產品模擬出來的仿真角色,通常也經不起近距離的觀察。因為,人類可以從中獲得大量非語言來表達的信息,如重心的移動,走動的特別習慣,面部的表情,甚至有些人的皮膚泛紅等等。

雖然很少有人能理解像“次表面散射(Subsurface Scattering)”、“輪廓照明(Rim
Lighting)”這些詞匯,但是當把它們渲染錯了的時候,幾乎任何人都可以指出來。而且除了著色問題外,有時人們會因為皮膚渲染的問題,說皮膚看起來像是塑料做的。

3.3 場景的照明

基于照片的光照(Image Based Lighting , IBL),因為Dawn是一個仙女,我們找到一片合適的森林,拍了大量標準的照片。采用iPIX工具包,拍攝兩張半球環景照片。采用iPIX軟件,把對應的半球半景照片縫合為一個全景,然后用Debevec的HDRShop軟件在每個給定角度對環景光的顏色和強度進行編碼,創建高動態范圍的全景。隨后HDRShop可以創建一個漫反射查找表,它執行一個卷積,用給定的表面粗糙度為表面創建漫反射或鏡面高光反射映射圖。

1.通過半球照片,創建高動態范圍(High-Dynamic Range,HDR))的全景

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖 立方體環境反射貼圖

2.漫反射環境貼圖(Diffuse Environment Map)也是一個立方體映射貼圖,它使用網格表面的法線作為索引。每個像素存儲了相應法線與入射光夾角的余弦加權平均值。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖 漫反射環境貼圖(Diffuse Environment Map)

3.鏡面高光環境貼圖(Specular Environment Map)同樣也是一個立方體映射貼圖,使用反射矢量作為索引(類似于立方體映射)。把此鏡面高光環境貼圖基于粗糙因子進行模糊,目的是模擬對任何表面任何給定點上的法線的改變。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖 鏡面高光環境貼圖(Specular Environment Map)

存在的問題是,漫反射環境貼圖(Diffuse Environment Map)和鏡面高光環境貼圖(Specular Environment Map)考慮了來自環境的入射光,但不包含由物體引起的陰影。

要解決這個問題,可以生成一個遮擋項,用來近似表達在每個頂點上半球輻射光中,有多大比率場景中其他物體所遮擋。

3.4 皮膚如何對光進行相應

皮膚不像大多數在計算機渲染中建模的表面,因為它是由半透明的表皮、真皮和皮下組織等數層構成的。這可以用次表面散射來模擬。這種現象很普遍,當在太陽面前向上舉起手,就能看到穿過皮膚的桔紅色的光。皮膚下的散射在所有的角度上顯現皮膚形態,使它具有了柔軟的、與眾不同的特征。

在這之前有一些小組嘗試使用多層紋理貼圖來模仿皮膚的復雜性,但一般而言,這個方法比較難管理,美術同學很難通過預想,混合出最終符合預期的效果。相反,文中使用單張彩色貼圖,通過著色程序來增加色彩的變化。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖 Dawn頭部的前半邊的漫反射貼圖

另外,皮膚具有一些極細微的變化,會影響其反射特性。這對皮膚外觀有微妙的影響,特別是當光線直接與相機位置相反時,皮膚的表現則是存在邊緣(Edge)與輪廓光照(Rim Lighting),這時,需要皮膚輪廓邊緣的光照,或給皮膚邊緣加上光暈。

真正的皮膚具有一些細微的特征,比如汗毛和毛孔能捕捉光線。盡管這些細節用于顯式地建模是太不明顯了,但我們還是希望得到一個合適、整體更逼真的皮膚渲染外觀。在特寫時,可以增加凹凸貼圖,提供一些額外的細節,特別是一些小的皺紋。但需要注意,我們想要的是柔軟的皮膚外觀,而不是光閃閃的油膩的塑料。另外,凹凸貼圖通常只需靜距離特寫時才可見。

我們可以通過建模來近似這兩個著色屬性,建模可以是基于表面法線的簡單公式,或者是基于光線或視線矢量的簡單公式。

通過認識,我們可以將上述兩種渲染特性(次表面散射和邊緣光照),建模為基于表面法線和照明或觀察向量的簡單公式,從而近似出兩種著色屬性。尤其是沿著Dawn的輪廓邊緣,對她身后的光線取樣,按照觀察向量的索引,讓“穿過”Dawn的光與她的基礎皮膚色調混合,從而創建次表面散射和邊緣光照的著色效果。尤其是背景圖中更加明亮的區域。如下圖。

?

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖 Dawn的頭部前面的切線空間法線貼圖(凹凸貼圖)

3.5 實現

Dawn Demo中,毫無懸念地使用頂點著色器和像素著色器進行光照處理,頂點shader的主要功能是將坐標轉換到投影空間,并執行那些不能在像素著色器中執行的數學運算。

采用單通道(one-pass)的光照解決方案,不需要另外其他的通道渲染,或alpha混合來創建皮膚表面。

文中提供了完整的頂點Shader和像素Shader的源代碼,這里因為篇幅原因不再贅述,具體可以參考原文(PS:上文有貼出Web版的英文全書原文的鏈接)。

核心要點總結

1)基于圖像的光照(Image Based Lighting , IBL),采用高動態范圍(High-Dynamic-Range , HDR)光照環境映射貼圖,環境漫反射貼圖,鏡面高光環境貼圖計算光照,代替Phong光照。

2)次表面散射(Subsurface Scattering),通過凹凸貼圖實現

3)對皮膚邊緣加上光暈,即輪廓照明/邊緣光照(Rim Lighting)

?

?

總結

以上是生活随笔為你收集整理的GPU Gems1 - 3 Dawn Demo中的皮肤渲染(Skin in the Dawn Demo)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。