我正在研究純粹連續的物理引擎,我需要選擇廣義和窄相碰撞檢測的算法。 「純連續」意味着我從不進行交叉測試,而是希望找到在發生碰撞之前捕捉每次碰撞的方法,並將其分別放入由TOI定購的「計劃碰撞」堆棧中。連續物理引擎的碰撞檢測技術
廣泛的階段 我能想到的唯一連續的廣義相位方法是將每個身體包圍在一個圓圈中,並測試每個圓圈是否會與另一個圓圈重疊。這看起來非常低效,而且沒有任何撲殺。
我不知道今天的離散碰撞剔除方法如四叉樹可能存在哪些連續類似物。 如何防止不合適的和毫無意義的廣泛測試,例如分立式引擎呢?
精細階段
我已經成功地在狹窄的SAT適應連續檢查,而不是離散的,但我敢肯定,在報紙或你們可能會遇到網站還有其他更好的算法在那裏。
什麼樣的快速或準確的算法,你建議我使用什麼是每個優點/缺點?
最後請注意:
我說技術而不是算法,因爲我還沒有決定如何,我會存儲不同的多邊形,這可能是凹面,凸面,圓形,甚至有洞。我打算根據算法的要求做出決定(例如,如果我選擇將多邊形分解爲三角形或凸形的算法,我將簡單地以這種形式存儲多邊形數據)。
'assert(Make_a_list == not_constructive_close)' – dmckee
如果您還不知道,我會推薦[實時碰撞檢測](http://realtimecollisiondetection.net/)作爲優秀資源。 – Bart
你如何實現你的動態,你是否以連續的方式來實現?如果您的系統是線性的,那麼您應該能夠使用狀態轉換矩陣,碰撞條件和根查找器(如牛頓法)簡單地解決下一個碰撞時間。如果你的系統不是線性的,那麼你將不得不使用時間步進器來解決動態問題,除非你有額外的結構,在這種情況下你應該提到這一點。 – vlsd