[Bf-blender-cvs] [e0f6dcfc3c8] tmp-usd-mak-c87f6242: Merge branch 'master' into tmp-usd-mak-c87f6242
Michael Kowalski
noreply at git.blender.org
Mon May 2 00:04:02 CEST 2022
Commit: e0f6dcfc3c8f4fd873032928e6de08957b6455c6
Author: Michael Kowalski
Date: Sun May 1 18:01:06 2022 -0400
Branches: tmp-usd-mak-c87f6242
https://developer.blender.org/rBe0f6dcfc3c8f4fd873032928e6de08957b6455c6
Merge branch 'master' into tmp-usd-mak-c87f6242
===================================================================
===================================================================
diff --cc source/blender/editors/io/io_usd.c
index fa76a0dc529,e0616a0cec3..684c7c45ef9
--- a/source/blender/editors/io/io_usd.c
+++ b/source/blender/editors/io/io_usd.c
@@@ -520,7 -201,7 +520,8 @@@ void WM_OT_usd_export(struct wmOperator
ot->poll = WM_operator_winactive;
ot->ui = wm_usd_export_draw;
- ot->flag = OPTYPE_PRESET;
- ot->flag = OPTYPE_REGISTER; /* No UNDO possible. */
++ ot->flag = OPTYPE_PRESET /* Show preset menu. */
++ | OPTYPE_REGISTER; /* No UNDO possible. */
WM_operator_properties_filesel(ot,
FILE_TYPE_FOLDER | FILE_TYPE_USD,
@@@ -562,93 -222,37 +563,93 @@@
"visible_objects_only",
true,
"Visible Only",
- "Only visible objects are exported. Invisible parents of exported objects are "
- "exported as empty transform");
+ "Only export visible objects. Invisible parents of exported objects are "
+ "exported as empty transforms");
+
+ RNA_def_boolean(
+ ot->srna,
+ "export_animation",
+ false,
+ "Animation",
+ "Export all frames in the render frame range, rather than only the current frame");
+
- RNA_def_boolean(ot->srna,
- "export_animation",
- false,
- "Animation",
- "When checked, the render frame range is exported. When false, only the current "
- "frame is exported");
RNA_def_boolean(
- ot->srna, "export_hair", true, "Hair", "When checked, hair is exported as USD curves");
- ot->srna, "export_hair", false, "Hair", "Export hair particle systems as USD curves");
- RNA_def_boolean(
- ot->srna, "export_uvmaps", true, "UV Maps", "Include all mesh UV maps in the export");
++ ot->srna, "export_hair", true, "Hair", "Export hair particle systems as USD curves");
+ RNA_def_boolean(ot->srna,
+ "export_vertices",
+ true,
+ "Vertices",
+ "When checked, vertex and point data are included in the export");
+ RNA_def_boolean(ot->srna,
+ "export_vertex_colors",
+ true,
+ "Vertex Colors",
+ "When checked, all vertex colors are included in the export");
+ RNA_def_boolean(ot->srna,
+ "export_vertex_groups",
+ false,
+ "Vertex Groups",
+ "When checked, all vertex groups are included in the export");
+ RNA_def_boolean(ot->srna,
+ "export_face_maps",
+ false,
+ "Face Maps",
+ "When checked, all face maps are included in the export");
+ RNA_def_boolean(ot->srna,
+ "export_uvmaps",
+ true,
- "UV Maps",
- "When checked, all UV maps of exported meshes are included in the export");
++ "UV Maps", "Include all mesh UV maps in the export");
++
RNA_def_boolean(ot->srna,
"export_normals",
true,
"Normals",
- "When checked, normals of exported meshes are included in the export");
+ "Include normals of exported meshes in the export");
+ RNA_def_boolean(
+ ot->srna,
+ "export_transforms",
+ true,
+ "Transforms",
+ "When checked, transform data/operations will be exported for all applicable prims");
RNA_def_boolean(ot->srna,
"export_materials",
true,
"Materials",
- "When checked, the viewport settings of materials are exported as USD preview "
- "materials, and material assignments are exported as geometry subsets");
+ "Export viewport settings of materials as USD preview materials, and export "
+ "material assignments as geometry subsets");
+ RNA_def_boolean(
+ ot->srna, "export_meshes", true, "Meshes", "When checked, all meshes will be exported");
+ RNA_def_boolean(
+ ot->srna, "export_lights", true, "Lights", "When checked, all lights will be exported");
+ RNA_def_boolean(
+ ot->srna, "export_cameras", true, "Cameras", "When checked, all cameras will be exported");
+ RNA_def_boolean(
+ ot->srna, "export_curves", true, "Curves", "When checked, all curves will be exported");
+ RNA_def_boolean(ot->srna,
+ "export_particles",
+ true,
+ "Particles",
+ "When checked, all particle systems will be exported");
+
+ RNA_def_boolean(ot->srna,
+ "export_armatures",
+ false,
+ "Armatures (Experimental)",
+ "Export armatures and skinned meshes");
RNA_def_boolean(ot->srna,
"use_instancing",
false,
"Instancing",
- "When checked, instanced objects are exported as references in USD. "
- "When unchecked, instanced objects are exported as real objects");
+ "Export instanced objects as references in USD rather than real objects");
+ RNA_def_boolean(ot->srna,
+ "fix_skel_root",
+ false,
+ "Fix Skel Root",
+ "If exporting armatures, attempt to automatically "
+ "correct invalid USD Skel Root hierarchies");
+
RNA_def_enum(ot->srna,
"evaluation_mode",
rna_enum_usd_export_evaluation_mode_items,
@@@ -1090,8 -456,8 +1091,7 @@@ void WM_OT_usd_import(struct wmOperator
ot->exec = wm_usd_import_exec;
ot->poll = WM_operator_winactive;
ot->ui = wm_usd_import_draw;
--
- ot->flag = OPTYPE_PRESET;
- ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
++ ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO | OPTYPE_PRESET;
WM_operator_properties_filesel(ot,
FILE_TYPE_FOLDER | FILE_TYPE_USD,
diff --cc source/blender/io/usd/CMakeLists.txt
index 3e78cee0d55,e2e959814fa..fd6fcb0c004
--- a/source/blender/io/usd/CMakeLists.txt
+++ b/source/blender/io/usd/CMakeLists.txt
@@@ -16,9 -16,24 +16,27 @@@ add_definitions(-DPXR_STATIC
# USD headers use deprecated TBB headers, silence warning.
add_definitions(-DTBB_SUPPRESS_DEPRECATED_MESSAGES=1)
+# Python is always required
+add_definitions(-DWITH_PYTHON)
+
+ # Check if USD has the imaging headers available, if they are
+ # add a USD_HAS_IMAGING define so code can dynamically detect this.
+ # Cleanup of this variable is done at the end of the file since
+ # test code further down uses it to add imaging tests.
+ FIND_FILE(USD_IMAGING_HEADERS
+ NAMES
+ capsuleAdapter.h
+ PATHS
+ ${USD_INCLUDE_DIRS}
+ PATH_SUFFIXES
+ pxr/usdImaging/usdImaging/
+ NO_DEFAULT_PATH
+ )
+
+ if(USD_IMAGING_HEADERS)
+ add_definitions(-DUSD_HAS_IMAGING)
+ endif()
+
set(INC
.
../common
diff --cc source/blender/io/usd/intern/usd_reader_light.cc
index 6f74d63d9e0,55b9557dfb5..97eb9ca076f
--- a/source/blender/io/usd/intern/usd_reader_light.cc
+++ b/source/blender/io/usd/intern/usd_reader_light.cc
@@@ -135,18 -95,20 +140,18 @@@ void USDLightReader::read_object_data(M
light_prim.GetDiffuseAttr().Get(&diffuse, motionSampleTime);
#endif
- if (pxr::UsdAttribute spec_attr = light_api.GetSpecularAttr()) {
- float spec = 0.0f;
- if (spec_attr.Get(&spec, motionSampleTime)) {
- blight->spec_fac = spec;
- }
+ float specular;
- if (get_authored_value(light_prim.GetSpecularAttr(), motionSampleTime, &specular) ||
++ if (get_authored_value(light_api.GetSpecularAttr(), motionSampleTime, &specular) ||
+ prim_.GetAttribute(usdtokens::specular).Get(&specular, motionSampleTime)) {
+ blight->spec_fac = specular;
}
- if (pxr::UsdAttribute color_attr = light_api.GetColorAttr()) {
- pxr::GfVec3f color;
- if (color_attr.Get(&color, motionSampleTime)) {
- blight->r = color[0];
- blight->g = color[1];
- blight->b = color[2];
- }
+ pxr::GfVec3f color;
- if (get_authored_value(light_prim.GetColorAttr(), motionSampleTime, &color) ||
++ if (get_authored_value(light_api.GetColorAttr(), motionSampleTime, &color) ||
+ prim_.GetAttribute(usdtokens::color).Get(&color, motionSampleTime)) {
+ blight->r = color[0];
+ blight->g = color[1];
+ blight->b = color[2];
}
/* TODO(makowalski): Not currently supported. */
@@@ -275,27 -233,6 +280,27 @@@
break;
}
+ float intensity;
- if (get_authored_value(light_prim.GetIntensityAttr(), motionSampleTime, &intensity) ||
++ if (get_authored_value(light_api.GetIntensityAttr(), motionSampleTime, &intensity) ||
+ prim_.GetAttribute(usdtokens::intensity).Get(&intensity, motionSampleTime)) {
+
+ float intensity_scale = this->import_params_.light_intensity_scale;
+
+ if (import_params_.convert_light_from_nits) {
+ /* It's important that we perform the light unit conversion before applying any scaling to
+ * the light size, so we can use the USD's meters per unit value. */
+ const float meters_per_unit = static_cast<float>(
+ pxr::UsdGeomGetStageMetersPerUnit(prim_.GetStage()));
+ intensity_scale *= nits_to_energy_scale_factor(blight, meters_per_unit * usd_world_scale_);
+ }
+
+ blight->energy = intensity * intensity_scale;
+ }
+
+ if ((blight->type == LA_SPOT || blight->type == LA_LOCAL) && import_params_.scale_light_radius) {
+ blight->area_size *= settings_->scale;
+ }
+
USDXformReader::read_object_data(bmain, motionSampleTime);
}
diff --cc source/blender/io/usd/intern/usd_reader_mesh.cc
index c87c26f9634,328b4109616..8de320807f8
--- a/source/blender/io/usd/intern/usd_reader_mesh.cc
+++ b/source/blender/io/usd/intern/usd_reader_mesh.cc
@@@ -480,10 -457,10 +480,10 @@@ void USDMeshReader::read_colors(Mesh *m
return;
}
- void *cd_ptr = add_customdata_cb(mesh, "displayColor", CD_MLOOPCOL);
- void *cd_ptr = add_customdata_cb(mesh, "displayColor
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list