bullet_pitfalls.html 4.5 KB

123456789101112131415
  1. <!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><!--[if IE]><meta http-equiv="X-UA-Compatible" content="IE=edge"><![endif]--><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="Asciidoctor 1.5.4"><title>Bullet Physics Pitfalls</title><link rel="stylesheet" href="./asciidoctor.css">
  2. <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.5.0/css/font-awesome.min.css">
  3. <link rel="stylesheet" href="./coderay-asciidoctor.css"><link rel="stylesheet" href="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.css"><link rel="stylesheet" href="/home/travis/build/jMonkeyEngine/wiki/build/asciidoc/html5/jme3/advanced/twemoji-awesome.css"></head><body class="article toc2 toc-left"><div id="header"><div id="toolbar"><a href="https://github.com/jMonkeyEngine/wiki/edit/master/src/docs/asciidoc/jme3/advanced/bullet_pitfalls.adoc"><i class="fa fa-pencil-square" aria-hidden="true"></i></a><a href="https://github.com/jMonkeyEngine/wiki/new/master/src/docs/asciidoc/jme3/advanced/"><i class="fa fa-plus-square" aria-hidden="true"></i></a><input dir="auto" style="position: relative; vertical-align: top;" spellcheck="false" autocomplete="off" class="searchbox__input aa-input" id="doc-search" name="search" placeholder="Search in the doc" required="required" type="search"></div><h1>Bullet Physics Pitfalls</h1><div class="details"><span class="author" id="author"></span><br><span id="revnumber">version ,</span> <span id="revdate">2016/03/17 20:48</span></div><div id="toc" class="toc2"><div id="toctitle">Table of Contents</div><ul class="sectlevel1"><li><a href="#sweep-test-issues">Sweep Test Issues</a></li><li><a href="#ghost-control-aabb-collision-only">Ghost Control AABB Collision only</a></li><li><a href="#rigid-bodies-fall-through-ground">Rigid bodies fall through ground</a></li></ul></div></div><div id="content"><div id="preamble"><div class="sectionbody"><div class="paragraph"><p>Bullet physics is not without its problems. Unfortunately, many of those are outside of the control of the jMonkeyEngine Core Team and thus cannot be fixed.</p></div></div></div>
  4. <div class="sect1"><h2 id="sweep-test-issues">Sweep Test Issues</h2><div class="sectionbody"><div class="olist arabic"><ol class="arabic"><li><p>When using link:http://jmonkeyengine.org/javadoc/com/jme3/bullet/PhysicsSpace.html#sweepTest(com.jme3.bullet.collision.shapes.CollisionShape, com.jme3.math.Transform, com.jme3.math.Transform)[PhysicsSpace.sweepTest()], ensure that the distance between the transforms is at least 0.4wu or greater.</p></li><li><p>Note that the sweep will not detect collisions if it done inside of a collision shape. It must be on the edge of a collision shape to detect any collisions.</p></li></ol></div></div></div>
  5. <div class="sect1"><h2 id="ghost-control-aabb-collision-only">Ghost Control AABB Collision only</h2><div class="sectionbody"><div class="paragraph"><p>As the javadoc for <a href="http://jmonkeyengine.org/javadoc/com/jme3/bullet/objects/PhysicsGhostObject.html">PhysicsObjectControl</a> says, the ghost object collision detection uses AABB (Axis-aligned bounding box) collision only, regardless of the collision shape it has been assigned.</p></div>
  6. <div class="paragraph"><p><strong>Workaround:</strong>+
  7. Please use PhysicsSpace.sweepTest() instead, or kinematic physics objects with <a href="http://jmonkeyengine.org/javadoc/com/jme3/bullet/PhysicsSpace.html#addCollisionListener(com.jme3.bullet.collision.PhysicsCollisionListener)">collision listeners</a>.</p></div></div></div>
  8. <div class="sect1"><h2 id="rigid-bodies-fall-through-ground">Rigid bodies fall through ground</h2><div class="sectionbody"><div class="paragraph"><p>This usually happens if the ground physics object has large triangles or consists of a large BoxCollisionShape.</p></div>
  9. <div class="paragraph"><p><strong>Workaround:</strong>+</p></div>
  10. <div class="ulist"><ul><li><p>For meshes with large triangles - Subdivide the mesh in a model editor such as Blender.</p></li><li><p>For large boxes - seperate into smaller boxes or use a MeshCollisionShape for terrain instead of BoxCollisionShape.</p></li></ul></div></div></div></div><div id="footer"><div id="footer-text">Version <br>Last updated 2019-12-20 23:30:51 +00:00</div></div><script type="text/javascript" src="https://cdn.jsdelivr.net/docsearch.js/2/docsearch.min.js"></script><script>docsearch({
  11. apiKey: 'a736b6d93de805e26ec2f49b55013fbd',
  12. indexName: 'jmonkeyengine',
  13. inputSelector: '#doc-search',
  14. debug: false // Set debug to true if you want to inspect the dropdown
  15. });</script></body></html>