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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

ue4 改变枢轴位置_UE4渲染模块概述(四)---反射

發布時間:2025/3/19 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ue4 改变枢轴位置_UE4渲染模块概述(四)---反射 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在前一文中介紹了像素著色器與material,大概知道了UE4材質的生產管線:

Jerry:UE4渲染模塊概述(三)---Pixel Shader & Material Rendering?zhuanlan.zhihu.com

在光滑的地面或墻面上需要渲染物體的反射信息,實時計算很難實現 ,本文介紹UE使用的三種反射系統,這三種反射系統各有利弊,往往會將之混合起來使用。

第一種:反射捕獲(Reflection Capture)

它會在指定位置計算前后左右上下六個方向的反射信息,形成一張靜態的立方體圖(Cubemap),這個過程是預計算的,所在實際跑起來的時候消耗很低,但也因為只是在特定位置計算的,所以當實際鏡頭與捕獲不同時,就會看到不合理的反射圖樣。

UE4使用球體反射捕獲對象(Sphere Reflection Capture Actor)來指定捕獲的位置,如下圖所示:

也有方形的版本(Box Reflection Capture Actor),如下圖所示,不過比較常用的還是放置球形捕獲Actor:

它本質上是捕獲一張360度的圖片,然后將圖片混合到模型上(如上圖所示的地圖和茶壺身上),但只在捕獲點是準確的,如果鏡頭移到別處,但混合的圖片沒有變化,就會出現下圖所示的穿幫問題:

可以看到地上混合的柱子倒影不再與真實柱子吻合。反射捕獲在很多游戲大作中都有使用,那為什么我們看不到這種詭異現象呢?這時因為同時還會混合其他反射處理方案(比如屏幕空間反射SSR),在某種程度上掩蓋了它的瑕疵。

Reflection Capture不精確,但它的預計算的優點對性能是非常友好的,通常我們build light的時候,就會去更新捕獲信息,也可以在Build這里單獨進行更新。

如果打包游戲或者應用,它會將捕獲紋理烘焙進游戲,這樣實際跑的時候,在一定范圍內(可在反射捕獲Actor上配置半徑)的任何像素,都會檢查附近是否有反射捕獲,如果有,它就向反射捕獲Actor查詢立方體貼圖cubemap,將cubemap與物體本身貼圖進行混合。

如果相近區域內有兩個反射捕獲Actor,如下圖黃箭頭標識:

那么重合的像素就會分別融合兩張cubemap,但要注意的是,大量重疊的捕獲范圍會帶來性能問題,因為要在同一個像素中計算多張cubemap融合的結果。

我們布置反射場景的基本思路,是放置一個大型的反射捕獲Actor來大致覆蓋整個空間,然后再把許多較小的反射捕獲Actor放置在反射程度高或者需要精確反射的表面附近,盡量保證影響半徑不重合,如下圖所示:

當然也沒有必要刻意去規避重合,只要重合數量不要超過8個都還是可以接受的。另外,可以通過設置貼圖精度來改變反射圖樣的銳利/模糊程度。

天空光照能為整個游戲世界提供低成本的備用反射捕獲,如下圖所示:

游戲世界中任何附近沒有球體或立文體反射捕獲Actor的對象都會轉而使用天空光照反射,這對于大型開放式戶外環境很理想,因為我們不希望在場景中到處放置反射捕獲Actor。

第二種:平面捕獲(Planar Reflection)

這種在實際中用的比較少,因為它僅局限于小范圍平面,也由于是實時計算,所以消耗要比反射捕獲大,但優勢是無論鏡頭如何移動,反射信息總是正確的,如下圖所示:

第三種:屏幕空間反射(SSR)

這是UE4唯一默認生效的反射系統,它是實時計算的,因而位置上總是精確的,但生成的反射圖樣比較模糊,不如反射捕獲渲染的清晰。性能消耗介于反射捕獲與平面反射之間,SSR效果如下圖所示(研究前要關閉捕獲Actor的渲染,只開啟SSR):

它的優點同時也是缺點在于:只計算屏幕空間的反射。因為計算范圍受限,所以性能可以保障,但同時也由于只能采集到屏幕空間內的數據,所以只能繪制視口可見幾何的反射,如下圖所示:

我們知道柱子很長,在屏幕上方還有一截,但因為SSR只取了屏幕空間內的信息,所以產生的反射信息里面就沒有屏幕以外的柱子了(紅圈內理應有柱子倒影,但實際沒有渲染)。

綜上,三種方法各有優缺點,實際使用中是將這三種系統混合在一起。三種方法的使用優先級依次為SSR,平面反射,反射捕獲。只有當硬件或者其他性能撐不住的時候,才會使用預計算的反射捕獲,否則還是提供精確度相對較高的SSR和平面反射。

平面反射盡量不要使用,如果硬件不支持就要關掉SSR或者調整SSR的生成質量來平衡性能,方法是在控制臺中鍵入r.SSR.Quality + 數字,默認質量是3,數字越大,SSR的渲染效果就越好,但相應性能就會越差。

可以在RenderDoc里面截幀分析反射信息,下圖所示是屏幕空間反射SSR的渲染:

下圖是SSR成像的結果:

每一個點都是投射的反射射線,因為射線密度不夠,形成了較多的噪點,為了掩飾,所以SSR生成的反射圖看上去是模糊的。

關于三種反射就介紹到這里,下一章介紹靜態光照,詳見:

Jerry:UE4渲染模塊概述(五)---靜態光照?zhuanlan.zhihu.com

總結

以上是生活随笔為你收集整理的ue4 改变枢轴位置_UE4渲染模块概述(四)---反射的全部內容,希望文章能夠幫你解決所遇到的問題。

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