| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342 |
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
- <head>
- <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
- <meta http-equiv="X-UA-Compatible" content="IE=11"/>
- <meta name="generator" content="Doxygen 1.12.0"/>
- <meta name="viewport" content="width=device-width, initial-scale=1"/>
- <title>Jolt Physics: Jolt Physics Samples</title>
- <link href="tabs.css" rel="stylesheet" type="text/css"/>
- <script type="text/javascript" src="jquery.js"></script>
- <script type="text/javascript" src="dynsections.js"></script>
- <script type="text/javascript" src="clipboard.js"></script>
- <link href="navtree.css" rel="stylesheet" type="text/css"/>
- <script type="text/javascript" src="navtreedata.js"></script>
- <script type="text/javascript" src="navtree.js"></script>
- <script type="text/javascript" src="resize.js"></script>
- <script type="text/javascript" src="cookie.js"></script>
- <link href="search/search.css" rel="stylesheet" type="text/css"/>
- <script type="text/javascript" src="search/searchdata.js"></script>
- <script type="text/javascript" src="search/search.js"></script>
- <script type="text/x-mathjax-config">
- MathJax.Hub.Config({
- extensions: ["tex2jax.js"],
- jax: ["input/TeX","output/HTML-CSS"],
- });
- </script>
- <script type="text/javascript" async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js"></script>
- <link href="doxygen.css" rel="stylesheet" type="text/css" />
- </head>
- <body>
- <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
- <div id="titlearea">
- <table cellspacing="0" cellpadding="0">
- <tbody>
- <tr id="projectrow">
- <td id="projectlogo"><img alt="Logo" src="LogoSmall.png"/></td>
- <td id="projectalign">
- <div id="projectname">Jolt Physics
- </div>
- <div id="projectbrief">A multi core friendly Game Physics Engine</div>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- <!-- end header part -->
- <!-- Generated by Doxygen 1.12.0 -->
- <script type="text/javascript">
- /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
- var searchBox = new SearchBox("searchBox", "search/",'.html');
- /* @license-end */
- </script>
- <script type="text/javascript">
- /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
- $(function() { codefold.init(0); });
- /* @license-end */
- </script>
- <script type="text/javascript" src="menudata.js"></script>
- <script type="text/javascript" src="menu.js"></script>
- <script type="text/javascript">
- /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
- $(function() {
- initMenu('',true,false,'search.php','Search',true);
- $(function() { init_search(); });
- });
- /* @license-end */
- </script>
- <div id="main-nav"></div>
- </div><!-- top -->
- <div id="side-nav" class="ui-resizable side-nav-resizable">
- <div id="nav-tree">
- <div id="nav-tree-contents">
- <div id="nav-sync" class="sync"></div>
- </div>
- </div>
- <div id="splitbar" style="-moz-user-select:none;"
- class="ui-resizable-handle">
- </div>
- </div>
- <script type="text/javascript">
- /* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
- $(function(){initNavTree('md__docs_2_samples.html',''); initResizable(true); });
- /* @license-end */
- </script>
- <div id="doc-content">
- <!-- window showing the filter options -->
- <div id="MSearchSelectWindow"
- onmouseover="return searchBox.OnSearchSelectShow()"
- onmouseout="return searchBox.OnSearchSelectHide()"
- onkeydown="return searchBox.OnSearchSelectKey(event)">
- </div>
- <!-- iframe showing the search results (closed by default) -->
- <div id="MSearchResultsWindow">
- <div id="MSearchResults">
- <div class="SRPage">
- <div id="SRIndex">
- <div id="SRResults"></div>
- <div class="SRStatus" id="Loading">Loading...</div>
- <div class="SRStatus" id="Searching">Searching...</div>
- <div class="SRStatus" id="NoMatches">No Matches</div>
- </div>
- </div>
- </div>
- </div>
- <div><div class="header">
- <div class="headertitle"><div class="title">Jolt Physics Samples</div></div>
- </div><!--header-->
- <div class="contents">
- <div class="textblock"><p><a class="anchor" id="autotoc_md0"></a></p>
- <p>This document describes the demos in the <a href="https://github.com/jrouwe/JoltPhysics/tree/master/Samples">Samples</a> application. When you run the samples application the application will initially start paused, press P to unpause it. The menu is accessible through pressing ESC, it has the following options:</p>
- <ul>
- <li>Select Test - This allows you to select between the different types of physics tests</li>
- <li>Test Settings - Some tests will allow extra configuration, if not this setting will be greyed out</li>
- <li>Restart Test (R) - When selecting this, the test will go back to its initial state</li>
- <li>Run All Tests - This will run every tests for 10 seconds before proceeding to the next. This is a good way of visually inspecting the simulation before commiting a code change.</li>
- <li>Next Test (N) - When running all tests, this option can be used to quickly skip to the next test.</li>
- <li>Physics Settings - This menu contains all physics configuration.</li>
- <li>Drawing Options - This menu shows all the options for drawing the internal state of the physics simulation.</li>
- <li>Mouse Probe - This allows you to switch between various collision detection modes to test the different collision detection algorithms</li>
- <li>Shoot Object - A sample application is not complete without being able to shoot some balls at the simulation (B key). This menu allows additional settings.</li>
- <li>Help - A quick help text.</li>
- </ul>
- <h1><a class="anchor" id="autotoc_md7"></a>
- General Controls</h1>
- <ul>
- <li>Use the Mouse and WSAD keys to move around, hold Shift to speed up and Ctrl to slow down</li>
- <li>Hold the Space key to pick up an object in the center of the screen and move it around with the mouse and WSAD.</li>
- <li>P - Pause / unpause simulation.</li>
- <li>O - Single step the simulation.</li>
- <li>, - Step back (only when Physics Settings / Record State for Playback is on).</li>
- <li>. - Step forward (only when Physics Settings / Record State for Playback is on).</li>
- <li>Shift + , - Play reverse (only when Physics Settings / Record State for Playback is on).</li>
- <li>Shift + . - Replay forward (only when Physics Settings / Record State for Playback is on).</li>
- <li>T - Dump frame timing information to profile_*.html (when JPH_PROFILE_ENABLED defined).</li>
- </ul>
- <h1><a class="anchor" id="autotoc_md8"></a>
- The Tests</h1>
- <p>Note that you can watch all movies below in <a href="https://www.youtube.com/watch?v=pwyCW0yNKMA&list=PLYXVwtOr1CBxbA50jVg2dKUQvHW_5OOom">a single YouTube playlist</a>.</p>
- <h2><a class="anchor" id="autotoc_md9"></a>
- Vehicles</h2>
- <p>This categories shows vehicles created through the <a class="el" href="class_vehicle_constraint.html">VehicleConstraint</a>. These vehicles use ray- or shape casts to detect collision with the ground and simulate a vehicle with an engine, gearbox, differentials and suspension.</p>
- <table class="markdownTable">
- <tr class="markdownTableHead">
- <th class="markdownTableHeadLeft"><a href="https://www.youtube.com/watch?v=A_gvLH4KKDA"><img src="https://img.youtube.com/vi/A_gvLH4KKDA/hqdefault.jpg" alt="Vehicle Demo" class="inline"/></a> </th></tr>
- <tr class="markdownTableRowOdd">
- <td class="markdownTableBodyLeft"><em>A wheeled vehicle.</em> </td></tr>
- </table>
- <table class="markdownTable">
- <tr class="markdownTableHead">
- <th class="markdownTableHeadLeft"><a href="https://www.youtube.com/watch?v=QwlPOKbxsqU"><img src="https://img.youtube.com/vi/QwlPOKbxsqU/hqdefault.jpg" alt="Tank Demo" class="inline"/></a> </th></tr>
- <tr class="markdownTableRowOdd">
- <td class="markdownTableBodyLeft"><em>Demonstrates a tracked vehicle with a turret constrained to the main body with hinge constraints.</em> </td></tr>
- </table>
- <table class="markdownTable">
- <tr class="markdownTableHead">
- <th class="markdownTableHeadLeft"><a href="https://www.youtube.com/watch?v=umI8FF0gVxs"><img src="https://img.youtube.com/vi/umI8FF0gVxs/hqdefault.jpg" alt="Motorcycle Demo" class="inline"/></a> </th></tr>
- <tr class="markdownTableRowOdd">
- <td class="markdownTableBodyLeft"><em>Demonstrates a motor cycle.</em> </td></tr>
- </table>
- <table class="markdownTable">
- <tr class="markdownTableHead">
- <th class="markdownTableHeadLeft"><a href="https://www.youtube.com/watch?v=AJPS31S6ZO8"><img src="https://img.youtube.com/vi/AJPS31S6ZO8/hqdefault.jpg" alt="Vehicle Gravity Override" class="inline"/></a> </th></tr>
- <tr class="markdownTableRowOdd">
- <td class="markdownTableBodyLeft"><em>Applying a custom gravity override to a vehicle to create weird gameplay.</em> </td></tr>
- </table>
- <h2><a class="anchor" id="autotoc_md10"></a>
- Rig (Ragdolls)</h2>
- <p>This category demonstrates how ragdolls can be made and controlled using keyframing or motors.</p>
- <table class="markdownTable">
- <tr class="markdownTableHead">
- <th class="markdownTableHeadLeft"><a href="https://www.youtube.com/watch?v=gvq6qdU3ZTs"><img src="https://img.youtube.com/vi/gvq6qdU3ZTs/hqdefault.jpg" alt="Kinematic Ragdoll" class="inline"/></a> </th></tr>
- <tr class="markdownTableRowOdd">
- <td class="markdownTableBodyLeft"><em>A ragdoll set to kinematic mode (infinite mass, simulated using velocities only) interacting with dynamic objects.</em> </td></tr>
- </table>
- <table class="markdownTable">
- <tr class="markdownTableHead">
- <th class="markdownTableHeadLeft"><a href="https://www.youtube.com/watch?v=lYHhe6HLbs4"><img src="https://img.youtube.com/vi/lYHhe6HLbs4/hqdefault.jpg" alt="Ragdoll Driven to Animated Pose" class="inline"/></a> </th></tr>
- <tr class="markdownTableRowOdd">
- <td class="markdownTableBodyLeft"><em>Demonstrating a humanoid ragdoll driven by motors which are trying to match a sprint animation in local space (green sticks).</em> </td></tr>
- </table>
- <table class="markdownTable">
- <tr class="markdownTableHead">
- <th class="markdownTableHeadLeft"><a href="https://www.youtube.com/watch?v=hrnmgNN-m-U"><img src="https://img.youtube.com/vi/hrnmgNN-m-U/hqdefault.jpg" alt="Skeleton Mapper" class="inline"/></a> </th></tr>
- <tr class="markdownTableRowOdd">
- <td class="markdownTableBodyLeft"><em>An animation is played back on a high detail skeleton ('Animation') and then mapped onto a low detail ragdoll skeleton ('Reversed Mapped'). This animation is used to drive the motors of the ragdoll. The resulting pose is mapped back to the high detail skeleton ('Mapped'). Note that the skeletons are drawn offset to make them clearer..</em> </td></tr>
- </table>
- <table class="markdownTable">
- <tr class="markdownTableHead">
- <th class="markdownTableHeadLeft"><a href="https://www.youtube.com/watch?v=pwyCW0yNKMA"><img src="https://img.youtube.com/vi/pwyCW0yNKMA/hqdefault.jpg" alt="160 Ragdolls in a Pile" class="inline"/></a> </th></tr>
- <tr class="markdownTableRowOdd">
- <td class="markdownTableBodyLeft"><em>160 Ragdolls being dropped on a scene from Horizon Zero Dawn.</em> </td></tr>
- </table>
- <table class="markdownTable">
- <tr class="markdownTableHead">
- <th class="markdownTableHeadLeft"><a href="https://www.youtube.com/watch?v=7ZMm7yObpqs"><img src="https://img.youtube.com/vi/7ZMm7yObpqs/hqdefault.jpg" alt="160 Ragdolls in a Pile (Sleeping Visualization)" class="inline"/></a> </th></tr>
- <tr class="markdownTableRowOdd">
- <td class="markdownTableBodyLeft"><em>160 Ragdolls dropping on a pile, simulated using the Jolt Physics engine. Yellow means the ragdoll is simulated, red means the simulation is sleeping.</em> </td></tr>
- </table>
- <table class="markdownTable">
- <tr class="markdownTableHead">
- <th class="markdownTableHeadLeft"><a href="https://www.youtube.com/watch?v=jhpsIqbsU4I"><img src="https://img.youtube.com/vi/jhpsIqbsU4I/hqdefault.jpg" alt="160 Ragdolls Driven to Pose" class="inline"/></a> </th></tr>
- <tr class="markdownTableRowOdd">
- <td class="markdownTableBodyLeft"><em>A pile of ragdolls that are driven to a specific animated death pose. This gives the ragdolls 'stiffness'.</em> </td></tr>
- </table>
- <h2><a class="anchor" id="autotoc_md11"></a>
- Soft Body</h2>
- <table class="markdownTable">
- <tr class="markdownTableHead">
- <th class="markdownTableHeadLeft"><a href="https://www.youtube.com/watch?v=vJX_3FNISkw"><img src="https://img.youtube.com/vi/vJX_3FNISkw/hqdefault.jpg" alt="Soft Body Demo" class="inline"/></a> </th></tr>
- <tr class="markdownTableRowOdd">
- <td class="markdownTableBodyLeft"><em>Demonstrates Soft <a class="el" href="class_body.html">Body</a> physics as simulated by Jolt Physics. Soft body physics can be used for things like cloth and soft balls.</em> </td></tr>
- </table>
- <table class="markdownTable">
- <tr class="markdownTableHead">
- <th class="markdownTableHeadLeft"><a href="https://www.youtube.com/watch?v=DmS_8d2bdOw"><img src="https://img.youtube.com/vi/DmS_8d2bdOw/hqdefault.jpg" alt="Soft Body Contact Listener Demo" class="inline"/></a> </th></tr>
- <tr class="markdownTableRowOdd">
- <td class="markdownTableBodyLeft"><em>Demonstrates the use of soft body contact listeners. You can use these to affect the collision response between a soft body and a rigid body by e.g. artificially making the mass of one of the two higher so that the other is less affected by the collision. Finally you can also turn a contact into a sensor contact which means you get the contact points but there will not be any collision response..</em> </td></tr>
- </table>
- <table class="markdownTable">
- <tr class="markdownTableHead">
- <th class="markdownTableHeadLeft"><a href="https://www.youtube.com/watch?v=A1iswelnGH4"><img src="https://img.youtube.com/vi/A1iswelnGH4/hqdefault.jpg" alt="Soft Body Bend Constraints Demo" class="inline"/></a> </th></tr>
- <tr class="markdownTableRowOdd">
- <td class="markdownTableBodyLeft"><em>This video shows the effect of bend constraints on a wrinkled cloth. The left most patch has no constraints to preserve the wrinkles, the middle uses distance constrains ('sticks') to preserve the wrinkles and the last one uses dihedral angle constraints to preserve the angle between two triangles on their shared edge.</em> </td></tr>
- </table>
- <table class="markdownTable">
- <tr class="markdownTableHead">
- <th class="markdownTableHeadLeft"><a href="https://www.youtube.com/watch?v=NXw8yMczHJg"><img src="https://img.youtube.com/vi/NXw8yMczHJg/hqdefault.jpg" alt="Soft Body Skin Constraints Demo" class="inline"/></a> </th></tr>
- <tr class="markdownTableRowOdd">
- <td class="markdownTableBodyLeft"><em>This demo shows a soft body that is connected to a skinned mesh via distance constraints. Each simulated vertex can deviate from its skinned position by a fixed length. The green lines indicate the animated joints of the skinned mesh.</em> </td></tr>
- </table>
- <h2><a class="anchor" id="autotoc_md12"></a>
- Character</h2>
- <p>This category shows how you can simulate a (humanoid) character using a capsule.</p>
- <table class="markdownTable">
- <tr class="markdownTableHead">
- <th class="markdownTableHeadLeft"><a href="https://www.youtube.com/watch?v=YjaJT9of7UE"><img src="https://img.youtube.com/vi/YjaJT9of7UE/hqdefault.jpg" alt="Character Demo" class="inline"/></a> </th></tr>
- <tr class="markdownTableRowOdd">
- <td class="markdownTableBodyLeft"><em>A demonstration of a game <a class="el" href="class_character.html">Character</a>. Demonstrates moving, sliding against the environment, crouching and jumping.</em> </td></tr>
- </table>
- <h2><a class="anchor" id="autotoc_md13"></a>
- Water</h2>
- <p>This category shows how you can implement a water simulation in your game.</p>
- <table class="markdownTable">
- <tr class="markdownTableHead">
- <th class="markdownTableHeadLeft"><a href="https://www.youtube.com/watch?v=CEr_LtQLGeg"><img src="https://img.youtube.com/vi/CEr_LtQLGeg/hqdefault.jpg" alt="Water Simulation" class="inline"/></a> </th></tr>
- <tr class="markdownTableRowOdd">
- <td class="markdownTableBodyLeft"><em>Water buoyancy and friction simulation. Demonstrates how various shapes and compound shapes behave in the water. The right most object has a lowered center of mass.</em> </td></tr>
- </table>
- <h2><a class="anchor" id="autotoc_md14"></a>
- Constraints</h2>
- <p>This category shows the various constraints that are supported. Constraints connect two or more bodies together and limit the relative movement.</p>
- <table class="markdownTable">
- <tr class="markdownTableHead">
- <th class="markdownTableHeadLeft"><a href="https://www.youtube.com/watch?v=6xMKNMjD5pE"><img src="https://img.youtube.com/vi/6xMKNMjD5pE/hqdefault.jpg" alt="Path Constraint" class="inline"/></a> </th></tr>
- <tr class="markdownTableRowOdd">
- <td class="markdownTableBodyLeft"><em>Showing the path constraint in action.</em> </td></tr>
- </table>
- <table class="markdownTable">
- <tr class="markdownTableHead">
- <th class="markdownTableHeadLeft"><a href="https://www.youtube.com/watch?v=8aQ9x8SQSuM"><img src="https://img.youtube.com/vi/8aQ9x8SQSuM/hqdefault.jpg" alt="Swing Twist Constraint" class="inline"/></a> </th></tr>
- <tr class="markdownTableRowOdd">
- <td class="markdownTableBodyLeft"><em>Demonstrates a chain of swing-twist constraints (usable for humanoid shoulders). The green cones show the swing limit and the pink pie shows the twist limit.</em> </td></tr>
- </table>
- <table class="markdownTable">
- <tr class="markdownTableHead">
- <th class="markdownTableHeadLeft"><a href="https://www.youtube.com/watch?v=3w5SgElroBw"><img src="https://img.youtube.com/vi/3w5SgElroBw/hqdefault.jpg" alt="Gear constraint" class="inline"/></a> </th></tr>
- <tr class="markdownTableRowOdd">
- <td class="markdownTableBodyLeft"><em>Demonstrates a gear constraint. Note that the gears can be placed at any relative angle of each other, so you could e.g. create a bevel or worm gear.</em> </td></tr>
- </table>
- <table class="markdownTable">
- <tr class="markdownTableHead">
- <th class="markdownTableHeadLeft"><a href="https://www.youtube.com/watch?v=e588KG-ZSxc"><img src="https://img.youtube.com/vi/e588KG-ZSxc/hqdefault.jpg" alt="Rack and pinion constraint" class="inline"/></a> </th></tr>
- <tr class="markdownTableRowOdd">
- <td class="markdownTableBodyLeft"><em>Demonstrates a rack and pinion constraint.</em> </td></tr>
- </table>
- <table class="markdownTable">
- <tr class="markdownTableHead">
- <th class="markdownTableHeadLeft"><a href="https://www.youtube.com/watch?v=9P8OaahtU-4"><img src="https://img.youtube.com/vi/9P8OaahtU-4/hqdefault.jpg" alt="Pulley constraint" class="inline"/></a> </th></tr>
- <tr class="markdownTableRowOdd">
- <td class="markdownTableBodyLeft"><em>Shows two boxes connected through a pulley constraint. In this case the constraint is configured as a block and tackle with and advantage of 2: the right block moves 2x as slow as the left block.</em> </td></tr>
- </table>
- <h2><a class="anchor" id="autotoc_md15"></a>
- General</h2>
- <p>This category contains general simulation tests. It demonstrates things like friction, restitution, damping, modifying gravity and continuous collision detection. Some highlights:</p>
- <table class="markdownTable">
- <tr class="markdownTableHead">
- <th class="markdownTableHeadLeft"><a href="https://www.youtube.com/watch?v=fTtjBLYBxco"><img src="https://img.youtube.com/vi/fTtjBLYBxco/hqdefault.jpg" alt="Stable Box Stacking" class="inline"/></a> </th></tr>
- <tr class="markdownTableRowOdd">
- <td class="markdownTableBodyLeft"><em>A YouTube video showing stability of a pile of boxes.</em> </td></tr>
- </table>
- <table class="markdownTable">
- <tr class="markdownTableHead">
- <th class="markdownTableHeadLeft"><a href="https://www.youtube.com/watch?v=EanFxlkZgcA"><img src="https://img.youtube.com/vi/EanFxlkZgcA/hqdefault.jpg" alt="Active Edge Detection" class="inline"/></a> </th></tr>
- <tr class="markdownTableRowOdd">
- <td class="markdownTableBodyLeft"><em>Demonstrates objects sliding along a polygon mesh. Internal mesh edges are ignored and do not cause objects to bounce off.</em> </td></tr>
- </table>
- <table class="markdownTable">
- <tr class="markdownTableHead">
- <th class="markdownTableHeadLeft"><a href="https://www.youtube.com/watch?v=Y-UgylH992A"><img src="https://img.youtube.com/vi/Y-UgylH992A/hqdefault.jpg" alt="Funnel Test" class="inline"/></a> </th></tr>
- <tr class="markdownTableRowOdd">
- <td class="markdownTableBodyLeft"><em>1000 random shapes in a funnel.</em> </td></tr>
- </table>
- <table class="markdownTable">
- <tr class="markdownTableHead">
- <th class="markdownTableHeadLeft"><a href="https://www.youtube.com/watch?v=_Lv5xlWtCpM"><img src="https://img.youtube.com/vi/_Lv5xlWtCpM/hqdefault.jpg" alt="Multithreaded Island Simulation" class="inline"/></a> </th></tr>
- <tr class="markdownTableRowOdd">
- <td class="markdownTableBodyLeft"><em>We will automatically split up the simulation in islands of non-interacting bodies and distribute the work across multiple threads. Each island has its own color.</em> </td></tr>
- </table>
- <table class="markdownTable">
- <tr class="markdownTableHead">
- <th class="markdownTableHeadLeft"><a href="https://www.youtube.com/watch?v=KGnlYSW3550"><img src="https://img.youtube.com/vi/KGnlYSW3550/hqdefault.jpg" alt="Single vs Double Precision" class="inline"/></a> </th></tr>
- <tr class="markdownTableRowOdd">
- <td class="markdownTableBodyLeft"><em>Shows the difference between compiling Jolt Physics in single precision and double precision (define JPH_DOUBLE_PRECISION).</em> </td></tr>
- </table>
- <table class="markdownTable">
- <tr class="markdownTableHead">
- <th class="markdownTableHeadLeft"><a href="https://www.youtube.com/watch?v=p_H6egZzbZE"><img src="https://img.youtube.com/vi/p_H6egZzbZE/hqdefault.jpg" alt="Conveyor belt" class="inline"/></a> </th></tr>
- <tr class="markdownTableRowOdd">
- <td class="markdownTableBodyLeft"><em>A demo of setting the surface velocity of a body to create a conveyor belt. The boxes have decreasing friction from front to back (last one has zero friction so slowly slides down the ramp).</em> </td></tr>
- </table>
- <h2><a class="anchor" id="autotoc_md16"></a>
- Shapes & Scaled Shapes</h2>
- <p>These categories show off all of the supported shapes and how they can be scaled at run-time.</p>
- <table class="markdownTable">
- <tr class="markdownTableHead">
- <th class="markdownTableHeadLeft"><a href="https://www.youtube.com/watch?v=u9cPBGUFurc"><img src="https://img.youtube.com/vi/u9cPBGUFurc/hqdefault.jpg" alt="Shape Scaling" class="inline"/></a> </th></tr>
- <tr class="markdownTableRowOdd">
- <td class="markdownTableBodyLeft"><em>A height field shape using various scales in Jolt Physics: Uniform, Non uniform, Mirrored, Inside out</em> </td></tr>
- </table>
- </div></div><!-- contents -->
- </div><!-- PageDoc -->
- </div><!-- doc-content -->
- <!-- start footer part -->
- <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
- <ul>
- <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.12.0 </li>
- </ul>
- </div>
- </body>
- </html>
|