關於Unity中的光照(六)
反射探頭
1:鏡子金屬等具有光滑表面的物體都會反射,而遊戲中計算實時反射非常消耗CPU的資源,
unity5.0新增了一個反射探頭的技術,通過采樣點,生成反射Cubemap,然後通過特定的著色器從Cubemap中采樣,就能顯示反射效果了;
2: 反射探頭的參數:
type: 設置反射探頭的類型(baked, custom, realtime)三種類型;custom也是烘焙的,但是可以自定義
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.創建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,有一個黃色的框框,在這個框框內的物體都會參與反射
6.為了看見反射的材質,創建一個材質球ref在Materials文件夾下,勾選允許反射Reflections
7.把ref材質關聯到plane的材質屬性上,整個平面像一個鏡子。
8.創建一個cube,設置為Lightmap
關於Unity中的光照(六)