In Isaac Sim it is possible to choose between several different types of collision types. We were wondering if there are types that are more suited for GPU utilization, CPU utilization and for both.
I am not sure this is the ‘right’ question to ask, but it would be interesting to know if there are some go-to rules and considerations which we should make when choosing collision types for utilization.
As for performance, GPU is more forgiving on collision types. However there are some performance differences.
Let me make a priority list:
SDF - those are the most expensive collisions, working only on GPU and there is heavy data representation and perf penalty with using those.
Convex decomposition - this ends up usually with a large amount of convexes for collision detection. Where convexes are the second most expensive computation.
Convex approximation - same as above, but typical convex approximation produces one convex per mesh prim, hence less convexes for a prim then convex decomposition.
Box collision, the box collision is treated as convex collision but does have few verts, planes hence is faster then most convex approximation.
Capsule collision - this is a very fast collider, its representation as distance from line segment is very efficient
Sphere collision - the fastest representation, distance from a point
Its also possible to have custom geometry types, that something I should have mentioned actually in context of omniverse. The cylinder and cone colliders are by default treated as custom collisions, those work only on CPU and are more expensive as they require custom callback to fire, In the physics settings (window->simulation->settings) they can be disabled, in which case convex approximation is used instead.
This type of list is exactly what we are looking for, thanks a bunch for taking the time to write it up and giving us a better idea on collisions and their effects on performance.