Unity3D-光照系统
光照系統
1. Global Illumination(全局光照)
2. 直接光
從光源直接放出的光,通過Light組件實現。
Type類型:
Directional Light(平行光):平行發射光線,可以照射場景里所有物體,和位置無關,模擬太陽;
Point Light(點光源):向四周發射,可以照射其范圍里所有對象,模擬燈泡;
Spot Light(聚光燈):在燈光位置向 圓錐區域發射光線,只在這個局域的物體才會受到光照,模擬探照燈;
Area Light( 區域光):由一個面向一個方向發射光線,只有照射該區域內的物體,僅烘焙是有效,用在光線較為集中的區域。
Color:設置光的顏色,可以用于警報等;
Culling Mask:可以設置光照射哪些物體,打勾的可以照射到。
為某物體添加層layer,并選中,設置攝像機的Culling Mask的該層取消打勾,則該物體不受光照射;
陰影類型:
硬陰影
軟陰影
雙面:對于一個當面的Plane平面,背面不可見,不會產生陰影,設置為雙面這可以產生陰影;
設置單個物體的陰影:選中這個物體,在屬性設置中,可以設置其是否有陰影和接收陰影。
剔除遠處的陰影,通過編輯–>Project Settings打開如下界面
可以通過設置質量的高低,設置場景效果,在其中的Shadows中可以設置,影子的剔除的距離等。
3. 點光源介紹
在其球體范圍內,可以照射;
3. 聚光燈光源介紹
1.在其錐體范圍內可照射,如手電筒,探照燈。
3. 環境光
– Skybox 通過天空盒設置
– Gradient 梯度顏色
Sky天空顏色、Equator地平線顏色、Ground地面顏色
– Ambient Color 純色
4. 反射光
5. 間接光
需要將不動的物體標記為靜態的,即Lightmaping Static前打勾。
結果如下(設置為靜態的可見):
5.Realtime GI(實時GI)
所謂“實時”是指在運行期間任意的修改光源,而所有的變化可以實時更新。
操作步驟:
–游戲對象設置為Lightmaping Static;
– 啟用Light 面板下的Precomputed Realtime GI
– 點擊Build(如果勾選Auto編輯器會自動檢測場景的改動修復光照效果)。
在Preferences下可以設置GI緩存目錄,unity會自動進行預計算。
–Realtime Resolution :實時計算分辨率
– CPU Usage :CPU使用率,值越大渲染越高。
6.烘焙 GI
- 烘焙Lightmap
當場景包含大量物體,實時光照和陰影對游戲性能影響很大,使用烘焙技術,可以將光線效果渲染成貼圖再作用到物體上模擬光影,提高性能。 - 步驟:
a.把不動的物體標記為靜態。
b. 設置模式為Baked
- 模式:
Realtime:僅實時光照是起作用
baked:僅烘焙模式起作用
Mixed:烘焙與實時光照都起作用
通過設置Scene為Baked Lightmap Culling可以查看烘焙貼圖;
禁用光照后,貼圖如下
通過設置Scene為Baked Lightmap Culling可以查看烘焙貼圖;
結果:
也可以通過如下地方來查看實時GI和烘焙的貼圖(Realtime LightMaps和Baked Lightmaps)。
7.光源偵測 Light Probes
-
由于LightMapping只能作用與靜態(Static)的物體,導致運動的物體與場景中的光線無法融合,顯得不真實,可以添加一個Probe收集光影信息,然后對運動物體鄰近的幾個Probe進行插值,然后將光線作用到物體上。
-
步驟(非靜態物體):
– 創建游戲對象 Light Probe Group
– 添加偵測小球(小球數量要適量,可以人為添加)
– 點擊Bulid(或Auto自動修改光照效果)
– 勾選需要偵測物體的Mesh Renderer 組件中的 Use Light Probes屬性(我的為選擇Blend Probes)。
小球布局位置,一般要包含需要偵測的物體。
如下圖,小球為cube收集光影信息,通過黃色線上的小球來捕獲光影信息,然后計算物體的光照信息。
附:
本文章學習至bilibili-沒有文明的文明-史上最全Unity3D教程
總結
以上是生活随笔為你收集整理的Unity3D-光照系统的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux的基础知识——signal信号
- 下一篇: java信息管理系统总结_java实现科