Implement mesh extrema in a 3x3x3 grid corresponding to each feature of a unit cube. These are used as seeds for a better initial point in mesh hill climbing with up to a 2x speedup in mjc_Convex.
PiperOrigin-RevId: 959645299 Change-Id: I032ae534704e0cc440ddb7691fd21a29a359f521
This commit is contained in:
committed by
Copybara-Service
parent
1362a8bded
commit
83e621d771
@@ -34,6 +34,7 @@ Actuation
|
||||
Engine
|
||||
^^^^^^
|
||||
|
||||
- Optimized large-mesh convex collision detection with up to 2x speedup in certain cases.
|
||||
- Replaced the per-step sparse Cholesky factorization of the flex block of the implicit effective metric M + K with
|
||||
its prefactored per-vertex 3x3 diagonal blocks. The blocks precondition the CG constraint solver and drive an
|
||||
iterative solve for ``qacc_smooth``, which now converges on :ref:`tolerance<option-tolerance>` rather than a fixed
|
||||
|
||||
@@ -967,6 +967,7 @@ typedef struct mjModel_ {
|
||||
int* mesh_texcoordadr; // texcoord data address; -1: no texcoord (nmesh x 1)
|
||||
int* mesh_texcoordnum; // number of texcoord (nmesh x 1)
|
||||
int* mesh_graphadr; // graph data address; -1: no graph (nmesh x 1)
|
||||
int* mesh_extrema; // extremum vertices in 3x3x3 directions (nmesh x 27)
|
||||
float* mesh_vert; // vertex positions for all meshes (nmeshvert x 3)
|
||||
float* mesh_normal; // normals for all meshes (nmeshnormal x 3)
|
||||
float* mesh_texcoord; // vertex texcoords for all meshes (nmeshtexcoord x 2)
|
||||
|
||||
Reference in New Issue
Block a user