mirror of
https://github.com/bulletphysics/bullet3
synced 2024-12-05 01:50:05 +00:00
expose max_num_object_capacity and max_shape_capacity_in_bytes to override the graphics VBO buffer allocations. This allows to load larger triangle meshes in pybullet.
Example: p.connect(p.GUI, options="--max_num_object_capacity=131072 --max_shape_capacity_in_bytes=1073741824") Use MAX_NUM_PARTS_IN_BITS=4 by default, this allows to use 134 million triangles in each concave triangle mesh in PyBullet (instead of 2 Million)
This commit is contained in:
parent
39b8de74df
commit
fcef2c81f2
@ -885,6 +885,20 @@ bool OpenGLExampleBrowser::init(int argc, char* argv[])
|
|||||||
sUseOpenGL2 = args.CheckCmdLineFlag("opengl2");
|
sUseOpenGL2 = args.CheckCmdLineFlag("opengl2");
|
||||||
args.GetCmdLineArgument("render_device", gRenderDevice);
|
args.GetCmdLineArgument("render_device", gRenderDevice);
|
||||||
args.GetCmdLineArgument("window_backend", gWindowBackend);
|
args.GetCmdLineArgument("window_backend", gWindowBackend);
|
||||||
|
|
||||||
|
int max_num_object_capacity = 128 * 1024;
|
||||||
|
int max_shape_capacity_in_bytes = 128 * 1024 * 1024;
|
||||||
|
if (args.CheckCmdLineFlag("max_num_object_capacity"))
|
||||||
|
{
|
||||||
|
args.GetCmdLineArgument("max_num_object_capacity", max_num_object_capacity);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (args.CheckCmdLineFlag("max_shape_capacity_in_bytes"))
|
||||||
|
{
|
||||||
|
args.GetCmdLineArgument("max_shape_capacity_in_bytes", max_shape_capacity_in_bytes);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
#else
|
#else
|
||||||
sUseOpenGL2 = true;
|
sUseOpenGL2 = true;
|
||||||
#endif
|
#endif
|
||||||
@ -914,7 +928,7 @@ bool OpenGLExampleBrowser::init(int argc, char* argv[])
|
|||||||
{
|
{
|
||||||
char title[1024];
|
char title[1024];
|
||||||
sprintf(title, "%s using OpenGL3+ %s %s", appTitle, glContext, optMode);
|
sprintf(title, "%s using OpenGL3+ %s %s", appTitle, glContext, optMode);
|
||||||
simpleApp = new SimpleOpenGL3App(title, width, height, gAllowRetina, gWindowBackend, gRenderDevice);
|
simpleApp = new SimpleOpenGL3App(title, width, height, gAllowRetina, gWindowBackend, gRenderDevice, max_num_object_capacity, max_shape_capacity_in_bytes);
|
||||||
s_app = simpleApp;
|
s_app = simpleApp;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -47,8 +47,10 @@ class btSerializer;
|
|||||||
#define MAX_SUBTREE_SIZE_IN_BYTES 2048
|
#define MAX_SUBTREE_SIZE_IN_BYTES 2048
|
||||||
|
|
||||||
// 10 gives the potential for 1024 parts, with at most 2^21 (2097152) (minus one
|
// 10 gives the potential for 1024 parts, with at most 2^21 (2097152) (minus one
|
||||||
|
// 4 gives the potential for 16 parts, each with 2^27 triangles (134217728)
|
||||||
// actually) triangles each (since the sign bit is reserved
|
// actually) triangles each (since the sign bit is reserved
|
||||||
#define MAX_NUM_PARTS_IN_BITS 10
|
//#define MAX_NUM_PARTS_IN_BITS 10
|
||||||
|
#define MAX_NUM_PARTS_IN_BITS 4
|
||||||
|
|
||||||
///btQuantizedBvhNode is a compressed aabb node, 16 bytes.
|
///btQuantizedBvhNode is a compressed aabb node, 16 bytes.
|
||||||
///Node can be used for leafnode or internal node. Leafnodes can point to 32-bit triangle index (non-negative range).
|
///Node can be used for leafnode or internal node. Leafnodes can point to 32-bit triangle index (non-negative range).
|
||||||
|
Loading…
Reference in New Issue
Block a user