Irlan e22ed9852a bugfixes and improvements
Bugfixes:

Simplify and correct one derivation of a second derivative of energy function.

Clear dynamic variables for static shapes

Invalidate contact for a particle when its type switches from dynamic to static

Improvements:

Allow user to apply force to a particle

Allow user to displace a particle

Compute kinetic energy

Store the mass of each particle, not only its inverse. It can improve performance because the solver needs the masses most of the time for computations

Add some code to find shared and non-shared edges. These algorithms don't work for non-manifold meshes

Remove some unecessary temporaries decreasing code readability
2018-03-28 01:08:19 -03:00
2017-06-06 16:02:48 -03:00
2018-03-26 16:05:41 -03:00
2018-03-28 01:08:19 -03:00
2017-07-19 11:11:30 -03:00
2018-03-28 01:08:19 -03:00
2017-02-27 19:14:13 -03:00
2018-02-24 10:51:58 -03:00
2016-12-18 18:39:47 -02:00
2016-12-18 18:39:47 -02:00
2016-12-18 18:39:47 -02:00

About

Bounce is a 3D physics engine for games.

To get started with Bounce see readme.txt.

Here is how to control the Testbed. The Testbed is a collection of non-unit tests and examples that helps the author debug features and is not part of the library.

Camera (as in Maya):

  • Rotate the scene holding LSHIFT + LMB
  • Translate the scene holding LSHIFT + RMB
  • Zoom in/out the scene using LSHIFT + Mouse Wheel

Bounce is released under the zlib license.

Features

Common

  • Efficient data structures with no use of STL
  • Stack and small block allocators
  • Built-in math library
  • Tunable settings used across the entire library

Collision

  • Dynamic tree broadphase
  • Static tree "midphase"
  • SAT
  • GJK
  • Spheres, capsules, hulls, triangle meshes
  • Optimized pair management

Dynamics

  • Contact, friction, restitution
  • Mouse, spring, sphere, cone, revolute joint types
  • Joint motors, limits
  • Constraint graphs
  • Simulation islands and sleep management
  • Linear time solver
  • Stable shape stacking
  • One-shot contact manifolds
  • Contact clustering, reduction, and persistence
  • Contact callbacks: begin, pre-solve, post-solve
  • Ray-casting and volume queries

Testbed

  • OpenGL with GLFW and GLAD
  • UI by imgui
  • Mouse picking
  • premake build system

Documentation

  • Doxygen API documentation

Screenshots

screenshot 1 screenshot 2 screenshot 3

Description
Bounce is a 3D physics engine for games.
Readme 6.1 MiB
Languages
C 51.7%
C++ 47.4%
Lua 0.6%
Makefile 0.3%