201112 Culling Group

概念:移動(dòng)有超大層級(jí)結(jié)構(gòu)的 Transform 對(duì)象會(huì)造成很大的 CPU 消耗,但在現(xiàn)實(shí)的環(huán)境中,通常不可能將對(duì)象結(jié)構(gòu)精簡(jiǎn)到最少的 GameObjects,如果可以最好在玩家不發(fā)現(xiàn)的前提下,刪除玩家看不到的行為。例如,在有大量角色的場(chǎng)景時(shí),只針對(duì)屏幕可見(jiàn)范圍內(nèi)的角色計(jì)算網(wǎng)格蒙皮(Mesh-skinning)和處理角色動(dòng)作等等。不需要浪費(fèi)CPU的資源在計(jì)算屏幕外看不到的角色行為。與其直接操作場(chǎng)景中一大群的 GameObject,而是改變系統(tǒng)操作 CullingGroup 里的一組 BoundingSpheres 的Vector3 參數(shù)。每個(gè) BoundingSphere 作為這些 GameObject 在游戲世界中的代表,當(dāng) CullingGroup 接近或進(jìn)入CullingGroup 設(shè)定的主鏡頭的錐體范圍內(nèi)時(shí)成員才會(huì)收到 callback。然后這些 callback 就可以用來(lái)執(zhí)行啟用/停用的程序代碼或組件(例如Animators)讓物體執(zhí)行在可見(jiàn)范圍內(nèi)該有的行為。


觸發(fā)事件:相機(jī)裁剪,相對(duì)距離(相機(jī)或主主角相對(duì)于目標(biāo)物體的距離)


應(yīng)用場(chǎng)景:1. 粒子當(dāng)前不可見(jiàn)時(shí),將其暫停,ai不在視野內(nèi)時(shí)停止更新,在Animator的情況下(組件有類(lèi)似的功能設(shè)置),如果Animator剔除模式Culling Mode設(shè)置為剔除更新變換Cull Update Transform等,則在超出相機(jī)范圍時(shí)將跳過(guò)動(dòng)畫(huà)。?

2. 粒子與相機(jī)或主角在不同距離階段時(shí),使用不同的簡(jiǎn)化版粒子。功能上接近LOD。它可能更容易使用,因?yàn)樗葮?biāo)準(zhǔn)LOD更容易調(diào)整。


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容