v0.15.0 Released!
v0.15.0 Released!
BEPUphysics v0.15.0 is now available! You can grab the binary off the main site now, amongst some... other things.
Go to http://www.bepuphysics.com to see the changes! (You may need to refresh)
Go to http://www.bepuphysics.com to see the changes! (You may need to refresh)
Re: v0.15.0 Early Beta
(These posts are from before v0.15.0's release, during the beta phase).
Updated to beta 1:
-The multithreading behavior has been somewhat improved, but there's still work to be done on the solver.
-A bug in the general boolean test was fixed.
-A bug in general case manifold refreshing was fixed.
-A bug has been identified in the warmstarted general case that can cause some objects to have trouble settling.
-The CollisionResponseSettings.DefaultMinimumImpulse has been set to 0 temporarily for debugging purposes; there will be a bit of a performance penalty.
Updated to Beta 2:
-Simulation islands are functional.
-Joints and constraints should once again be usable.
-Multithreading is improved, but still being worked on.
-A variety of bugs in the MPR/GJK systems have been fixed.
-Some shape bugs have been fixed.
The update rate should start ramping up once again now that the holidays are ending.
Updated to beta 1:
-The multithreading behavior has been somewhat improved, but there's still work to be done on the solver.
-A bug in the general boolean test was fixed.
-A bug in general case manifold refreshing was fixed.
-A bug has been identified in the warmstarted general case that can cause some objects to have trouble settling.
-The CollisionResponseSettings.DefaultMinimumImpulse has been set to 0 temporarily for debugging purposes; there will be a bit of a performance penalty.
Updated to Beta 2:
-Simulation islands are functional.
-Joints and constraints should once again be usable.
-Multithreading is improved, but still being worked on.
-A variety of bugs in the MPR/GJK systems have been fixed.
-Some shape bugs have been fixed.
The update rate should start ramping up once again now that the holidays are ending.
Re: v0.15.0 Early Beta
Beta 3:
A bunch of little bugs with inertia tensor calculation and prefab entity types have been fixed. All the 'weird' shapes, including the new Transformable shape, should be up and running.
A bunch of little bugs with inertia tensor calculation and prefab entity types have been fixed. All the 'weird' shapes, including the new Transformable shape, should be up and running.
Re: v0.15.0 Early Beta
Updated to Beta 4:
-A few bugs in the general case convex raycast have been fixed.
-A few bugs in the general convex-convex collision detection case have been fixed. Some more settings have been exposed to control its behavior and performance. Currently, they are configured by default towards quality over performance. This means the general convex case is pretty accurate, but is a little slower than the box-box special case usually (but still much faster than it used to be, particularly on non-PC platforms). It can handle strange shapes and tough configurations.
If a simulation does not need the level of quality provided by default, you can reduce it in favor of performance.
-Try setting the PairSimplex.ProgressionEpsilon to a higher value (multiply it by 10).
-Try setting the GJKToolbox.HighGJKIterations to a lower value, such as 5 (defaults to 8 ).
Going too high with the ProgressionEpsilon or too low with the HighGJKIterations can cause jumpiness, particularly in harder configurations.
-Try setting the GeneralConvexPairTester.UseSimplexCaching to true. The simulation will be slightly more sensitive to changes in ProgressionEpsilon or HighGJKIterations. Careful tuning can make the simulation run 20-30% faster compared to the default settings without simplex caching.
Simplex caching tends to try and maintain the status quo when doing calculations. This can cause problems on some rounded-edge objects that are trying to settle. Imagine a rolling coin at the final stages of falling over. "Boxier" shapes with hard edges do not noticeably suffer from this.
There's still some improvements that can be made with these systems, but too much time has already been spent on it. Triangle special cases are up next for some more noticeable improvements
-A few bugs in the general case convex raycast have been fixed.
-A few bugs in the general convex-convex collision detection case have been fixed. Some more settings have been exposed to control its behavior and performance. Currently, they are configured by default towards quality over performance. This means the general convex case is pretty accurate, but is a little slower than the box-box special case usually (but still much faster than it used to be, particularly on non-PC platforms). It can handle strange shapes and tough configurations.
If a simulation does not need the level of quality provided by default, you can reduce it in favor of performance.
-Try setting the PairSimplex.ProgressionEpsilon to a higher value (multiply it by 10).
-Try setting the GJKToolbox.HighGJKIterations to a lower value, such as 5 (defaults to 8 ).
Going too high with the ProgressionEpsilon or too low with the HighGJKIterations can cause jumpiness, particularly in harder configurations.
-Try setting the GeneralConvexPairTester.UseSimplexCaching to true. The simulation will be slightly more sensitive to changes in ProgressionEpsilon or HighGJKIterations. Careful tuning can make the simulation run 20-30% faster compared to the default settings without simplex caching.
Simplex caching tends to try and maintain the status quo when doing calculations. This can cause problems on some rounded-edge objects that are trying to settle. Imagine a rolling coin at the final stages of falling over. "Boxier" shapes with hard edges do not noticeably suffer from this.
There's still some improvements that can be made with these systems, but too much time has already been spent on it. Triangle special cases are up next for some more noticeable improvements
Re: v0.15.0 Early Beta
Updated to Beta 5:
-Convex-Triangle special case implemented. The numerical behavior is extremely good for the most common cases (and still very good in the edge cases, due to the improved general convex case). It's also quite speedy (an order of magnitude faster than the usual general case depending on the situation).
-Fixed a bunch of little bugs in MPR.
Some known bugs:
-Convex shapes which do not surround their own local origin may occasionally exhibit minor collision detection behavior problems.
-A tiny bookkeeping function is taking up a huge amount of processing. Don't bother trying to compare speeds at the moment, it's going to get become twice as fast shortly
-Convex-Triangle special case implemented. The numerical behavior is extremely good for the most common cases (and still very good in the edge cases, due to the improved general convex case). It's also quite speedy (an order of magnitude faster than the usual general case depending on the situation).
-Fixed a bunch of little bugs in MPR.
Some known bugs:
-Convex shapes which do not surround their own local origin may occasionally exhibit minor collision detection behavior problems.
-A tiny bookkeeping function is taking up a huge amount of processing. Don't bother trying to compare speeds at the moment, it's going to get become twice as fast shortly
Re: v0.15.0 Early Beta
A quick note for anyone wanting to test the new case: it's only turned on for box-triangle. You can add the other shapes if you want by adding a TriangleConvexPairFactory to the NarrowPhaseFactoryManager.CollisionManagers dictionary with the appropriate typepair. You could re-use the TriangleConvexPairFactory associated with the key:
The other type pairs will be enabled by default in the next version.
Code: Select all
new TypePair(typeof(ConvexCollisionInformation<BoxShape>), typeof(ConvexCollisionInformation<TriangleShape>))
Re: v0.15.0 Early Beta
Updated to Beta 6:
-Enabled convex-triangle for the rest of the convex shapes.
-Changed box-box to work better in cases where it is just barely colliding (e.g. initialized into a perfect grid).
-Fixed a bug with in the convex-triangle case.
-Fixed the slow bookkeeping function.
-Fixed a race condition in narrow phase pair initialization.
-Fixed triangle raycasting.
-Added one-sided triangles. The Sidedness property on any TriangleShape can be set to DoubleSided, Clockwise, or Counterclockwise. This affects both collision and raycasting (if done using the shape's RayTest method).
-Enabled convex-triangle for the rest of the convex shapes.
-Changed box-box to work better in cases where it is just barely colliding (e.g. initialized into a perfect grid).
-Fixed a bug with in the convex-triangle case.
-Fixed the slow bookkeeping function.
-Fixed a race condition in narrow phase pair initialization.
-Fixed triangle raycasting.
-Added one-sided triangles. The Sidedness property on any TriangleShape can be set to DoubleSided, Clockwise, or Counterclockwise. This affects both collision and raycasting (if done using the shape's RayTest method).
Re: v0.15.0 Early Beta
Updated to Beta 7:
-StaticTriangleMesh is up and running. It works against all convexes currently. Next up: Terrain and Instanced meshes (and mesh-edge pruning)!
-Fixed some issues with Convex-Triangle.
-Cleaned up some collision detection structure, removed some old stuff.
-StaticTriangleMesh is up and running. It works against all convexes currently. Next up: Terrain and Instanced meshes (and mesh-edge pruning)!
-Fixed some issues with Convex-Triangle.
-Cleaned up some collision detection structure, removed some old stuff.
Re: v0.15.0 Early Beta
Updated to Beta 8:
-Added mesh-edge triangle pruning: StaticTriangleMesh.PruneInternalEdges.
-Fixed another MPR bug
-Fixed another Convex-Triangle bug
-Fixed a few Convex-Mesh bugs.
New known bug:
-Box-box has some strange behavior under very specific conditions. It may be a new bug. In the mean time, the general convex-convex case is being used for box-box pairs.
-Added mesh-edge triangle pruning: StaticTriangleMesh.PruneInternalEdges.
-Fixed another MPR bug
-Fixed another Convex-Triangle bug
-Fixed a few Convex-Mesh bugs.
New known bug:
-Box-box has some strange behavior under very specific conditions. It may be a new bug. In the mean time, the general convex-convex case is being used for box-box pairs.
Re: v0.15.0 Early Beta
Updated to Beta 9:
-Improved mesh boundary handling. Impacts right on top of edges or vertices should behave a lot better now. In previous versions, without a normal hack activated, an object with sufficient speed to penetrate the mesh at a vertex or edge would tend to produce contacts with normals which would not stop the object from continuing through the mesh. Now, the mesh is considered more like a single whole instead of a collection of triangles. It's still not perfect, but it's a big improvement over anything previous.
-Improved mesh boundary handling. Impacts right on top of edges or vertices should behave a lot better now. In previous versions, without a normal hack activated, an object with sufficient speed to penetrate the mesh at a vertex or edge would tend to produce contacts with normals which would not stop the object from continuing through the mesh. Now, the mesh is considered more like a single whole instead of a collection of triangles. It's still not perfect, but it's a big improvement over anything previous.
Re: v0.15.0 Early Beta
Updated to beta 10:
-Refactored the Convex-Mesh system for extensibility in preparation for InstancedMeshes and Terrains.
-Fixed a bug in the model vertex/index extractor convenience function.
-Refactored the Convex-Mesh system for extensibility in preparation for InstancedMeshes and Terrains.
-Fixed a bug in the model vertex/index extractor convenience function.
Re: v0.15.0 Early Beta
Updated to Beta 11:
-Added Terrain. Raycasting and identity transformed collision are both up and running. Bugs with transformed collision should be fixed by tomorrow, possibly along with the addition of InstancedMesh.
-Added Terrain. Raycasting and identity transformed collision are both up and running. Bugs with transformed collision should be fixed by tomorrow, possibly along with the addition of InstancedMesh.
Re: v0.15.0 Early Beta
Updated to Beta 12:
-Added InstancedMesh.
-Fixed the transform bugs in the Terrain.
-Fixed a mesh connectivity bug.
-Added InstancedMesh.
-Fixed the transform bugs in the Terrain.
-Fixed a mesh connectivity bug.
Re: v0.15.0 Early Beta
Updated to Beta 13:
-Tweaked ConvexShapes a bit. All of them now center on their local origin. If they are constructed with non-origin data (such as a ConvexHull positioned with the points of a model), the center position will be calculated and the points are moved into local space. The center is returned from the process so that an entity can still be precisely positioned to match some geometry. This recentering process makes a few things nicer and logical (including Compound shapes which are being enabled next).
-Fixed a bug in a RigidTransform transform method introduced in Beta 12.
-Tweaked ConvexShapes a bit. All of them now center on their local origin. If they are constructed with non-origin data (such as a ConvexHull positioned with the points of a model), the center position will be calculated and the points are moved into local space. The center is returned from the process so that an entity can still be precisely positioned to match some geometry. This recentering process makes a few things nicer and logical (including Compound shapes which are being enabled next).
-Fixed a bug in a RigidTransform transform method introduced in Beta 12.
Re: v0.15.0 Early Beta
Updated to beta 14:
-Compound entities should now be constructible and properly collide with convexes. Collision with nonconvexes up next.
-Compound entities should now be constructible and properly collide with convexes. Collision with nonconvexes up next.