2011-12-05 150 views
0

我的老闆給了我這個源代碼,讓我加入剛體物理模擬支持。基本上這個源代碼模擬了一個有很多建築物和交通的大場景。我檢查代碼的碰撞部分,它只是使用一個邊界框檢查碰撞,所以這裏是我的問題:ODE和其他物理引擎碰撞檢測

  1. 場面大,這是超過500幢樓宇,如果我想添加剛體物理,我必須添加每個邊界框來頌靜態對象嗎?所以像盒子這樣的新物體可以與建築物相互作用嗎?

  2. 將500個邊界框加到頌上,速度怎麼樣?或者我應該使用一些技巧來做到這一點?

  3. 如果我想保留舊的碰撞物,例如汽車做建築物的射線測試並保持這個結果,該怎麼辦?如果可以的話,這座建築物也被添加到頌歌中,這是否是沒有必要的?因爲碰撞盒已經處於頌歌狀態,還是應該使用光線測試而不是內部光線檢查?我的意思是,這個問題基本上是與碰撞事件一起工作的有效方式是什麼?

+0

你談論你的老闆給你的某段源代碼。如果您讓我們看到與您的問題相關的部分,可以嗎? – BoltClock

回答

0

是的,您需要將每個建築物的邊界框(或網格)添加到ODE。通常,您將使用包含所有建築物的QuadTree空間或哈希空間。除非你希望他們實際移動,否則建築物不需要身體。

你說的是「舊碰撞東西」 - 現有源中是否存在一些碰撞代碼?

ODE可以做光線測試。如果您想對所有測試使用相同的方法,則可以更改代碼以使用ODE射線測試,假設這是您的問題所在。

ODE根本不需要產生衝突。如果您已經有了良好的碰撞檢測,並且只需要進行剛體仿真,然後爲每個幀生成正確的dJointContact關節以表示汽車與其環境之間的交互作用,並且僅模擬(踩踏)車身/車身/基於這些聯繫人。