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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

关于Unity中的光照(六)

發布時間:2025/6/17 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 关于Unity中的光照(六) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

反射探頭

1:鏡子金屬等具有光滑表面的物體都會反射,而游戲中計算實時反射非常消耗CPU的資源,
 unity5.0新增了一個反射探頭的技術,通過采樣點,生成反射Cubemap,然后通過特定的著色器從Cubemap中采樣,就能顯示反射效果了;
2: 反射探頭的參數:
 type: 設置反射探頭的類型(baked, custom, realtime)三種類型;custom也是烘焙的,但是可以自定義

  a:Baked烘培模式: 類似于光照烘培,把反射探頭設置好后,將反射信息烘培到CubeMap中,當游戲運行的時候直接使用烘培好的CubeMap;
  b:Custom(自定義模式): 與Baked模式的探頭的用法相同,需要手動烘培才能看到效果。Custom提供了更多的參數可以設置,如Dynamic Object,將非靜態的物體烘培到發射圖中,但是不會隨著物體的移動而改變;CubeMap選項可以制定烘培出來的Cubemap;

   用Custom的baked烘焙的,可以不勾選cube的static,依然有反射紋理。步驟是先取消自動烘焙,再選擇Relfection Probe組件的模式為custom,勾選Dynamic Object,拖進烘焙好的紋理ReflectionProbe-0.exr,點擊baked。
  c:Realtime模式: 可以實時的更新反射圖,在這種類型的反射頭不需要將被反射的物體勾選為Static, 能實時, 但是性能要求高;

 Dynamic Object: 將場景中的沒有標識為Static的對象烘培到發射紋理中;
 Cubemap: 烘培出來的立方體紋理圖;
 Refresh Mode 刷新模式: OnAwake只在喚醒時刷新,EveryFrame 每幀刷新, Via Scripts 有腳本控制;
 Time slicing: 反射畫面刷新頻率: All face at once: 9幀完成一次刷新(中等) Individual Faces: 14幀完成刷新(性能消耗低) no time slicing: 每幀刷新(性能消耗最大);
 Importance: 權重,根據權重來混合不同Probe的反射情況;
 Intensity: 反射紋理的顏色亮度;
 Box Projection: 若是勾選此項, Probe的Size和Origin會影響反射貼圖的映射方式;
 Size:該探頭的區域大小,在該區域內所有的物體都會應用反射(需要Standard著色器);
 Probe Origin: 反射探頭原點,會影響到捕捉到的Cubemap;
 HDR 生成Cubemap中是否使用高動態范圍圖像(High Dymainc Range)這也會影響探頭的數據存儲位置;
 Shadown Distance: 在反射圖中的陰影距離,超過該距離陰影不會被反射;
 ClearFlags: 設置反射圖中的背景是天空盒或者是單一的顏色;
 Background: 設置背景的顏色;
 Culling Mask: 反射剔除,決定哪些層的物體是否進行反射;
 Using Occlustion Culling: 烘培時,是否啟動遮擋剔除;

 Clipping Plances: 反射的裁剪平面,有near, far兩個個參數

?

?

位置大小

1:反射探頭是由物體掛載 Relfection Probe來決定的,位置設置完畢后需要設置大小;
(1)根據需要反射物體的大小對探針進行擺放,場景的中心,墻壁的角落, 若有一些物體比較小又有強烈的視覺效果(比如篝火), 就需要探頭距離它很近能得到很好的反射效果;
(2)放好探頭后要設置探頭的大小,探頭的形狀似一個軸對稱的立方體,如果在立方體內有對應的著色器,其反射效果就會根據其所在的反射探頭的區域進行顯示。若有多個探頭,根據權重進行混合;
(3)默認情況下探頭的原點是幾何中心,可以通過Probe Origin參數進行偏移,一個大的物體來反射一個從邊緣接近他的點。

?

?

循環反射

1:循環反射: 兩個物體可以都反射,那么就會形成循環反射 --- interReflection;
2: Unity不能無限循環下去,可以設置循環次數: window-->Lighting-->Environment Lighting Reflection Bounes來控制反射的次數, 最大反射次數為5次;

?

?

反射探頭實例

1.創建Unity工程和文件目錄

2.把天空盒資源文件夾拖到res下,在res下創建一個Materials文件,在里面創建一個天空盒材質叫Skybox

3.設置材質球Skybox的Shader---->Skybox---->6sided,把天空盒的6張紋理關聯到Skybox材質

4.創建一個平面plane,調大這個plane的大小scaleX=100,scaleZ=100

5.創建一個空節點Ref_object,添加反射探頭的組件Relfection Probe,設置Clear Flag為Skybox,有一個黃色的框框,在這個框框內的物體都會參與反射

6.為了看見反射的材質,創建一個材質球ref在Materials文件夾下,勾選允許反射Reflections,調一下Metallic到一半,Smoothness到最高

7.把ref材質關聯到plane的材質屬性上,整個平面像一個鏡子。

8.創建一個cube,設置為Lightmap Static,Ref_object設置type為baked,把cube移動到Ref_object的黃色框框的范圍里面,這時候就可以看見plane有一個cube的反射和一個cube的陰影,如果去掉cube的static,就看不見反射,因為是烘焙出來的,對象必須是static。

9.如果沒有節點Ref_object,是不會反射cube到plane的,因為plane的材質是原本設定好的反射,是勾選Reflections造成的,不是動態的,這個節點的作用就是在它的黃色框框的范圍內如果有物體,會把這個物體在plane上的反射紋理添加到plane材質上,可以看到plane材質球有變化。

轉載于:https://www.cnblogs.com/HangZhe/p/7257172.html

總結

以上是生活随笔為你收集整理的关于Unity中的光照(六)的全部內容,希望文章能夠幫你解決所遇到的問題。

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