Default to trimesh for generated collision shapes in Advanced Import Settings
This avoids using convex decomposition every time collision is enabled on a mesh, which can be extremely slow on complex meshes (such as entire levels).
This commit is contained in:
parent
da945ce626
commit
51af186bb6
|
@ -1658,7 +1658,7 @@ void ResourceImporterScene::get_internal_import_options(InternalImportCategory p
|
||||||
r_options->push_back(ImportOption(PropertyInfo(Variant::BOOL, "generate/physics", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_UPDATE_ALL_IF_MODIFIED), false));
|
r_options->push_back(ImportOption(PropertyInfo(Variant::BOOL, "generate/physics", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_UPDATE_ALL_IF_MODIFIED), false));
|
||||||
r_options->push_back(ImportOption(PropertyInfo(Variant::INT, "generate/navmesh", PROPERTY_HINT_ENUM, "Disabled,Mesh + NavMesh,NavMesh Only"), 0));
|
r_options->push_back(ImportOption(PropertyInfo(Variant::INT, "generate/navmesh", PROPERTY_HINT_ENUM, "Disabled,Mesh + NavMesh,NavMesh Only"), 0));
|
||||||
r_options->push_back(ImportOption(PropertyInfo(Variant::INT, "physics/body_type", PROPERTY_HINT_ENUM, "Static,Dynamic,Area"), 0));
|
r_options->push_back(ImportOption(PropertyInfo(Variant::INT, "physics/body_type", PROPERTY_HINT_ENUM, "Static,Dynamic,Area"), 0));
|
||||||
r_options->push_back(ImportOption(PropertyInfo(Variant::INT, "physics/shape_type", PROPERTY_HINT_ENUM, "Decompose Convex,Simple Convex,Trimesh,Box,Sphere,Cylinder,Capsule", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_UPDATE_ALL_IF_MODIFIED), 0));
|
r_options->push_back(ImportOption(PropertyInfo(Variant::INT, "physics/shape_type", PROPERTY_HINT_ENUM, "Decompose Convex,Simple Convex,Trimesh,Box,Sphere,Cylinder,Capsule", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_UPDATE_ALL_IF_MODIFIED), 2));
|
||||||
r_options->push_back(ImportOption(PropertyInfo(Variant::OBJECT, "physics/physics_material_override", PROPERTY_HINT_RESOURCE_TYPE, "PhysicsMaterial"), Variant()));
|
r_options->push_back(ImportOption(PropertyInfo(Variant::OBJECT, "physics/physics_material_override", PROPERTY_HINT_RESOURCE_TYPE, "PhysicsMaterial"), Variant()));
|
||||||
r_options->push_back(ImportOption(PropertyInfo(Variant::INT, "physics/layer", PROPERTY_HINT_LAYERS_3D_PHYSICS), 1));
|
r_options->push_back(ImportOption(PropertyInfo(Variant::INT, "physics/layer", PROPERTY_HINT_LAYERS_3D_PHYSICS), 1));
|
||||||
r_options->push_back(ImportOption(PropertyInfo(Variant::INT, "physics/mask", PROPERTY_HINT_LAYERS_3D_PHYSICS), 1));
|
r_options->push_back(ImportOption(PropertyInfo(Variant::INT, "physics/mask", PROPERTY_HINT_LAYERS_3D_PHYSICS), 1));
|
||||||
|
|
|
@ -322,7 +322,7 @@ public:
|
||||||
template <class M>
|
template <class M>
|
||||||
Vector<Ref<Shape3D>> ResourceImporterScene::get_collision_shapes(const Ref<ImporterMesh> &p_mesh, const M &p_options, float p_applied_root_scale) {
|
Vector<Ref<Shape3D>> ResourceImporterScene::get_collision_shapes(const Ref<ImporterMesh> &p_mesh, const M &p_options, float p_applied_root_scale) {
|
||||||
ERR_FAIL_COND_V(p_mesh.is_null(), Vector<Ref<Shape3D>>());
|
ERR_FAIL_COND_V(p_mesh.is_null(), Vector<Ref<Shape3D>>());
|
||||||
ShapeType generate_shape_type = SHAPE_TYPE_DECOMPOSE_CONVEX;
|
ShapeType generate_shape_type = SHAPE_TYPE_TRIMESH;
|
||||||
if (p_options.has(SNAME("physics/shape_type"))) {
|
if (p_options.has(SNAME("physics/shape_type"))) {
|
||||||
generate_shape_type = (ShapeType)p_options[SNAME("physics/shape_type")].operator int();
|
generate_shape_type = (ShapeType)p_options[SNAME("physics/shape_type")].operator int();
|
||||||
}
|
}
|
||||||
|
@ -480,7 +480,7 @@ template <class M>
|
||||||
Transform3D ResourceImporterScene::get_collision_shapes_transform(const M &p_options) {
|
Transform3D ResourceImporterScene::get_collision_shapes_transform(const M &p_options) {
|
||||||
Transform3D transform;
|
Transform3D transform;
|
||||||
|
|
||||||
ShapeType generate_shape_type = SHAPE_TYPE_DECOMPOSE_CONVEX;
|
ShapeType generate_shape_type = SHAPE_TYPE_TRIMESH;
|
||||||
if (p_options.has(SNAME("physics/shape_type"))) {
|
if (p_options.has(SNAME("physics/shape_type"))) {
|
||||||
generate_shape_type = (ShapeType)p_options[SNAME("physics/shape_type")].operator int();
|
generate_shape_type = (ShapeType)p_options[SNAME("physics/shape_type")].operator int();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue