2014-02-16 40 views
0

形勢rollingfriction子彈三維不會表現得像演示

我正在做一個檯球模擬器,並有一個靜態btBox表示與btSphere的作爲球檯面。在演示中,地面(平臺表面)和btSphere分別給出了滾動摩擦的正值,分別爲1.0和0.3。演示節目的球體自然滾動並最終靜止。

當我在模擬中使用這些值時,球體無法保持角速度,只能在桌面上「滑動」 - 無論我在表面/球體中設置了哪種滾動摩擦值。

如果我將滾動摩擦設置爲表面零(無所謂),那麼它會產生逼真的滾動行爲,直到球即將休息。然後它以某種方式獲得這個恆定的,慢的速度,並像桌上的殭屍一樣滾動。在任何接觸之前,球有時會開始滾動。

考慮

我已經試過摩擦/阻尼的多種組合,並且不能重現演示的行爲或修復我提的問題。在我的設置中,我能想到的唯一重要區別是我的尺寸更小。這不是簡單的解釋爲什麼這些很小,但我的BALL_RADIUS = 0.0103和BALL_MASS = 0.12393。

問題(S)

任何想法,就是爲什麼我的球的時候我已經在表面與球體上都滾動摩擦不紡?

否則,當我只在球體上設置滾動摩擦時,任何想法都會阻止球停止運動?

思考

的文檔/演示/代碼/網頁在記錄滾動摩擦不要做了很好的工作。無論是或者我正在做一些非常奇怪的事情......請幫助!

+0

檢查您是否正確地將旋轉從btMotionState轉換爲圖形 - 問題可能不是子彈。 –

回答

2

我認爲問題出在你的單位上,儘管可能還有其他問題。首先,子彈0.05和10(http://www.bulletphysics.org/mediawiki-1.5.8/index.php/Scaling_The_World

秒之間使用單位時效果最好,如果您使用由像大理石沉重的固體物質的半徑0.01球,質量應該是大約2.85(http://www.convert-me.com/en/convert/weight2volume/

+0

是的,我同意,不好的單位似乎是合乎邏輯的,實際上是我的設置和演示的做法之間的唯一區別。我嘗試使用你所建議的值,但是在行爲方面沒有任何變化。真正的錯誤必須是一些細節的副作用,儘管我已經傾注了代碼,但我沒有看到它。我有一個黑客,看起來相當現實,所以它不是完全損失,但如果我知道什麼是錯誤的,我一定會在這裏解釋。 –