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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

GPU Gems1 - 12 全方位的阴影映射

發布時間:2023/12/13 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 GPU Gems1 - 12 全方位的阴影映射 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在這章中,把陰影貼圖的思路擴展到正確處理全方位的(點)光源中,其中包括了實現細節,也涉及到基本硬件能力不足時的低效運行策略。

首先,這篇文章也談到了在實時計算機圖形學中產生可見陰影的兩個流行方法是:

  • 模板陰影(stencil shadows)/ 陰影體(Shadow Volume)? ?相關知識可以參考之前的章?https://mp.csdn.net/postedit/89161545
  • 陰影貼圖(shadow mapping)相關知識可以參考之前的文章?https://mp.csdn.net/postedit/89207385

模板陰影(Stencil Shadows,也被稱Shadow Volume,陰影體)作在《Doom 3》中有所應用,優點是得到大量的GPU支持、獨立于光源的種類、產生的陰影質量很高。但缺點是嚴重依賴于CPU,只能產生清晰的影子,需要很高的填充率,而且不能與硬件(hardware-tessellated)的表面一起使用。

陰影貼圖(Shadow Mapping,也譯作陰影映射)由Lance Williams于1978年引入計算機圖形學,文章發布當時多數好萊塢電影都在使用這個方法,包括計算機渲染和特效。為了計算陰影,陰影映射在場景幾何體上投射特殊的動態創建的紋理。它可以渲染清晰和模糊的影子,以及由不同類型的光源產生的陰影,它還可以與硬件鑲嵌的表面以及GPU動畫的網格(例如蒙皮網格)一起使用。

該文章主要介紹了全方位陰影貼圖(Omnidirectional Shadow Mapping)方法,處理的對象是點光源,因為點光源是向四周所有面發散光,所以點光源的陰影貼圖由立方體貼圖實現。該方法有兩個主要步驟:

  • 創建陰影貼圖
  • 進行陰影投射

在創建階段,對所有把陰影投射到陰影貼圖紋理上的物體,渲染它們到光源的距離的平方。而在投射結算,渲染所有接受陰影的物體,并比較所渲染的像素到光源的距離的平方。以下為全方位陰影映射算法的偽代碼:

for (iLight = 0; iLight < NumberOfLights; iLight++) {// Fill the shadow map.for (iObject = 0; iObject < NumberOfObjects; iObject++){RenderObjectToShadowMap(iLight, iObject);}// Lighting and shadow mapping.for (iObject = 0; iObject < NumberOfObjects; iObject++) {LightAndShadeObject (iLight, iObject);} }

具體實現可以參考 源代碼http://http.download.nvidia.com/developer/GPU_Gems/CD_Image/Index.html

其中幾個重要的點:

  • 從光源點出發,視域必須90度,將物體渲染進立方體貼圖六個面
  • 浮點紋理和整數紋理的取樣
  • PCF算法產生軟陰影(上篇文章講到的)如下代碼:

vFilter是個數組,記錄了周圍四個采樣點偏移位置,代碼中的0.25其實就是除以4的平均值,循環四次后最后相加得到最終結果

?

總結

以上是生活随笔為你收集整理的GPU Gems1 - 12 全方位的阴影映射的全部內容,希望文章能夠幫你解決所遇到的問題。

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