簡體   English   中英

查看平截錐體剔除動畫網格

[英]View frustum culling for animated meshes

我在系統中實現了視錐剔除,它在每個對象的邊界球上測試視錐平面,並且效果很好。 (我發現不需要PlaneVsAabb檢查)

但是,網格的邊界球已針對其綁定姿勢進行了調整,因此,當網格開始移動時(例如,玩家用劍攻擊),某些頂點可能會脫離球體。

盡管有一些頂點需要渲染(例如,玩家的劍伸出了球體),但這通常會導致網格被剔除。

我可以想到兩種可能的解決方案:

  1. 對於每幀中的每個網格,根據骨骼變化計算其新的邊界球。 (我不知道該如何開始...)這可能效率太低嗎?

  2. 為每個球體半徑添加一個固定的偏移量(也許是基於整個網格的大小?),因此即使在設置動畫時也不會出現網格被剔除的機會。

(1)在實時性上是低效率的。 但是,您可以通過靜態計算最大可能的邊界球(即在加載時)來混合兩者。 在(2)中使用該方法可以保證比您組成的任意偏移量更好的結果。

(1)您可以在關鍵元素(例如,劍尖上的假骨頭)上添加定位器,並在設置動畫時變換其原點。 您可以在每次更新時在CPU上完成此操作,然后計算邊界框或邊界球。 或者,您可以離線計算動畫每一幀的邊界體積。 Doom3使用第二種方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM