微信小程序怎么寫寧波seo排名優(yōu)化價(jià)格
unity_Occlusion_Culling遮擋剔除學(xué)習(xí)
文檔:
https://docs.unity.cn/cn/2019.4/Manual/occlusion-culling-getting-started.html
沒徹底搞明白,但是會(huì)用,雖然也不熟練
設(shè)置遮擋剔除
打開遮擋剔除面板
設(shè)置場(chǎng)景物體。設(shè)置為靜態(tài)
設(shè)置場(chǎng)景
烘焙場(chǎng)景
運(yùn)行查看效果
遮擋剔除面板參數(shù)
Objcet
點(diǎn)擊一個(gè)模型之后Object 窗口可以有信息
Occluder Static(靜態(tài)遮擋物)
如果游戲?qū)ο笫莿?dòng)態(tài)的,這個(gè)游戲?qū)ο罂梢栽谶\(yùn)行時(shí)充當(dāng)被遮擋物,而不能充當(dāng)遮擋物。
這些游戲?qū)ο蟛粫?huì)移動(dòng),但會(huì)阻擋后面的游戲?qū)ο?br /> 適合作為靜態(tài)遮擋物的游戲?qū)ο蟀ㄖ行偷酱笮偷膶?shí)體游戲?qū)ο?#xff08;例如墻壁或建筑物)。要被設(shè)定為靜態(tài)遮擋物,游戲?qū)ο蟊仨殱M足以下條件:
具有 Terrain 或 Mesh Renderer 組件不透明在運(yùn)行時(shí)不移動(dòng)
Occludee Static(靜態(tài)被遮擋物)
這些游戲?qū)ο蟛粫?huì)移動(dòng),但會(huì)被靜態(tài)遮擋物遮擋。
任何可能在運(yùn)行時(shí)被遮擋的游戲?qū)ο蠖歼m合設(shè)定為靜態(tài)被遮擋物,包括小的或透明的游戲?qū)ο?。要被設(shè)定為靜態(tài)被遮擋物,游戲?qū)ο蟊仨殱M足以下條件:
具有任何類型的 Renderer 組件在運(yùn)行時(shí)不移動(dòng)
動(dòng)態(tài)的遮擋物
如果游戲?qū)ο笫莿?dòng)態(tài)的,這個(gè)游戲?qū)ο罂梢栽谶\(yùn)行時(shí)充當(dāng)被遮擋物,而不能充當(dāng)遮擋物。
要確定動(dòng)態(tài)游戲?qū)ο笫欠癯洚?dāng)被遮擋物,可以在任何類型的渲染器組件上設(shè)置 Dynamic Occlusion 屬性。啟用 Dynamic Occlusion 后,渲染器在攝像機(jī)的視圖中被靜態(tài)遮擋物 (Static Occluder) 阻擋時(shí),Unity 會(huì)剔除渲染器。禁用 Dynamic Occlusion 后,渲染器在攝像機(jī)的視圖中被靜態(tài)遮擋物 (Static Occluder) 阻擋時(shí),Unity 不會(huì)剔除渲染器。
與LOD
如果使用了 LOD 組,則 Unity 會(huì)使用靜態(tài)遮擋物的基礎(chǔ)細(xì)節(jié)級(jí)別游戲?qū)ο?(LOD0) 來(lái)確定要遮擋的對(duì)象。如果游戲?qū)ο蟮妮喞?LOD0 和其他 LOD 級(jí)別之間變化很大,這個(gè)游戲?qū)ο罂赡懿贿m合設(shè)定為靜態(tài)遮擋物。
效果
動(dòng)態(tài)遮擋物
遮擋者與被遮擋者
如果物體可以遮擋其他物體就是遮擋者,如果不想讓遮擋其他物體就是被遮擋者。
遮擋區(qū)域
如果有一些地區(qū)需要細(xì)致的檢查遮擋,則使用這個(gè)。
在場(chǎng)景中創(chuàng)建一個(gè)空物體,然后附加:Occlustion Area
設(shè)置大小即可,unity會(huì)細(xì)致的檢查這個(gè)區(qū)域內(nèi)的遮擋關(guān)系。
Bake
Small Occluder
設(shè)置閾值,當(dāng)大于這個(gè)值的物體物體會(huì)被設(shè)置為 遮擋著,遮擋其他物體.
決定了單元格的大小,數(shù)值越小越細(xì)致,但是更加消耗性能
所以考慮使用“遮擋區(qū)域 ” 來(lái)繪制需要著重注意的區(qū)域,而不是調(diào)整小這個(gè)值。
Smallest Hole 最小洞
允許unity在遮擋剔除過(guò)程中忽略非常小的洞,比如透過(guò)門縫看不到屋內(nèi)的物體,必須打開門或者這個(gè)洞足夠大
Backface Threshold
背面閾值, 建議使用默認(rèn)參數(shù),渲染的時(shí)候顯示背面的比例。
Visualization 可視化
在運(yùn)行的時(shí)候可視化遮擋剔除的數(shù)據(jù)
Camera Volume 攝像機(jī)體積
Visibility Line
Portals
Occlusion Portal_遮擋入口
如果它是開放的,那么這個(gè)體積不會(huì)作為遮擋者起作用,而當(dāng)我們關(guān)閉它時(shí),一它就像一個(gè)遮擋者,并且可以遮擋其后的物體。
簡(jiǎn)單來(lái)說(shuō)是:如果想遮擋 遮擋入口 后面的東西,就關(guān)閉,不想讓其遮擋則開啟。
遮擋剔除原理
遮擋剔除會(huì)在 Unity Editor 中生成有關(guān)場(chǎng)景的數(shù)據(jù),然后在運(yùn)行時(shí)使用該數(shù)據(jù)來(lái)確定攝像機(jī)可以看到的內(nèi)容。這種生成數(shù)據(jù)的過(guò)程稱為烘焙。
在對(duì)遮擋剔除數(shù)據(jù)進(jìn)行烘焙時(shí),Unity 將場(chǎng)景劃分為多個(gè)單元,并生成描述單元內(nèi)幾何體以及相鄰單元之間可見性的數(shù)據(jù)。然后,Unity 盡可能合并單元,以減小生成的數(shù)據(jù)的大小。要配置烘焙過(guò)程,可以在 Occlusion Culling 窗口中更改參數(shù),并在場(chǎng)景中使用遮擋區(qū)域。
在運(yùn)行時(shí),Unity 會(huì)將這些烘焙的數(shù)據(jù)加載到內(nèi)存中,并且對(duì)于每個(gè)啟用了 Occlusion Culling 屬性的攝像機(jī),將會(huì)對(duì)數(shù)據(jù)執(zhí)行查詢以確定該攝像機(jī)可以看到的內(nèi)容。請(qǐng)注意,啟用遮擋剔除后,攝像機(jī)將執(zhí)行視錐體剔除和遮擋剔除。
“遮擋剔除”過(guò)程可防止 Unity 為那些被其他游戲?qū)ο笸耆珦踝?#xff08;遮擋)的游戲?qū)ο髨?zhí)行渲染計(jì)算。
遮擋剔除的作用
防止無(wú)意義的渲染操作可以節(jié)省 CPU 和 GPU 時(shí)間。Unity 的內(nèi)置遮擋剔除在 CPU 上執(zhí)行運(yùn)行時(shí)計(jì)算,這可能會(huì)抵消其節(jié)省的 CPU 時(shí)間。因此,當(dāng)項(xiàng)目因過(guò)度繪制而具有 GPU 密集型特征時(shí),遮擋剔除最有可能提高性能。
Unity 在運(yùn)行時(shí)將遮擋剔除數(shù)據(jù)加載到內(nèi)存中。必須確保有足夠的內(nèi)存來(lái)加載此數(shù)據(jù)。
當(dāng)場(chǎng)景中一些界限明確的小區(qū)域被實(shí)體游戲?qū)ο蟊舜烁糸_時(shí),遮擋剔除的效果最好。一個(gè)常見的例子是通過(guò)走廊連接的房間。
如果被剔除了是否可以運(yùn)行代碼?
在game 視圖看不到,但是還是會(huì)運(yùn)行代碼。