Skip to content

0.6.0

Compare
Choose a tag to compare
@kadir014 kadir014 released this 10 Nov 08:51
· 178 commits to main since this release

Highlights 🌟

  • Build script now supports parallel compiling and Visual Studio build tools.
  • Reworked current constraints API and solvers. They are more stable.
  • Shape factory methods for generating convex hulls or other common shapes.
  • Groups, categories and masks for filtering collisions.

Issue Fixes

  • Fixed the long standing impulse caching bug where systems with high restitution instantly exploded.
  • Fixed Linux warnings for example_base.h.
  • Space now has an internal ID counter to avoid same IDs getting assigned to bodies after removing and adding.

Changes & Additions

  • New examples added: cloth.c and hull.c
    • Also improved some other examples.
  • Reworked the examples README page, and the demo UI.
  • In the collision resolutions, nv_Contant struct is now used to store contact point information.
  • Bodies now have gravity_scale attribute that indicates how are they affected by gravity.
  • Shape factory functions.
    • nv_ShapeFactory_Rect & Box to create rectangle shapes.
    • nv_ShapeFactory_NGon to create regular n-gon shapes.
    • nv_ShapeFactory_ConvexHull to create a convex hull from an array of points.
  • nv_Space_set_broadphase method to change the current broadphase algorithm.
  • Collision groups, categories and masks to filter which bodies collide with each other.
    • nv_Body.collision_group, nv_Body.collision_category and nv_Body.collision_mask are 32-bit unsigned integers, last two are used as bitmasks.
  • Parallel build support for GCC in the build script for faster compilation time and MSVC support.
    • Use the -j<n> option to set the number of processed fired to n
    • Use the -x option to target MSVC.
  • Constraints are moved to their own modules.
  • Constraints now link to the world by passing NULL to body parameter. The anchor point should be changed to world-space.
  • Improved current constraint solvers.
  • Math module is now only header-only.
  • nv_Profiler structs hold information about simulation's various profiling data.
  • The documentation is improved and started to write getting started section.