|
Blender V5.0
|
Namespaces | |
| namespace | detail |
| namespace | utils |
Typedefs | |
| using | USDHookList = std::list<std::unique_ptr<USDHook>> |
| using | ImportedPrimMap = Map<pxr::SdfPath, Vector<PointerRNA>> |
| using | PathMap = std::map<pxr::SdfPath, pxr::SdfPath> |
| using | PathSet = Set<pxr::SdfPath> |
| using | ReferencesMap = Map<pxr::SdfPath, Vector<pxr::SdfPath>> |
| using | ShaderToNodeMap = Map<std::string, bNode *> |
| using | ProtoReaderMap = blender::Map<pxr::SdfPath, blender::Vector<USDPrimReader *>> |
| using | UsdPathSet = blender::Set<pxr::SdfPath> |
| using | XformResult = std::tuple<pxr::GfMatrix4f, bool> |
| using | ObjExportMap = Map<const Object *, pxr::SdfPath> |
| using | InputSpecMap = blender::Map<StringRef, InputSpec> |
| using | MaterialFaceGroups = Map<short, pxr::VtArray<int>> |
Functions | |
| FCurve * | create_fcurve (blender::animrig::Channelbag &channelbag, const blender::animrig::FCurveDescriptor &fcurve_descriptor, const int sample_count) |
| void | set_fcurve_sample (FCurve *fcu, int64_t sample_index, const float frame, const float value) |
| static void | visit_bones (const Bone *bone, FunctionRef< void(const Bone *)> visitor) |
| const ModifierData * | get_enabled_modifier (const Object &obj, ModifierType type, const Depsgraph *depsgraph) |
| static const ArmatureModifierData * | get_armature_modifier (const Object &obj, const Depsgraph *depsgraph) |
| void | visit_bones (const Object *ob_arm, FunctionRef< void(const Bone *)> visitor) |
| void | get_armature_bone_names (const Object *ob_arm, const bool use_deform, Vector< StringRef > &r_names) |
| pxr::TfToken | build_usd_joint_path (const Bone *bone, bool allow_unicode) |
| void | create_pose_joints (pxr::UsdSkelAnimation &skel_anim, const Object &obj, const Map< StringRef, const Bone * > *deform_map, bool allow_unicode) |
| const Object * | get_armature_modifier_obj (const Object &obj, const Depsgraph *depsgraph) |
| bool | is_armature_modifier_bone_name (const Object &obj, const StringRefNull name, const Depsgraph *depsgraph) |
| bool | can_export_skinned_mesh (const Object &obj, const Depsgraph *depsgraph) |
| void | init_deform_bones_map (const Object *obj, Map< StringRef, const Bone * > *deform_map) |
| const pxr::TfToken | BlenderBoneLengths ("blender:bone_lengths", pxr::TfToken::Immortal) |
| static std::pair< std::string, std::string > | split_udim_pattern (const std::string &path) |
| static std::string | get_asset_base_name (const std::string &src_path, ReportList *reports) |
| static std::string | copy_asset_to_directory (const std::string &src_path, const char *dest_dir_path, eUSDTexNameCollisionMode name_collision_mode, ReportList *reports) |
| static std::string | copy_udim_asset_to_directory (const std::string &src_path, const char *dest_dir_path, eUSDTexNameCollisionMode name_collision_mode, ReportList *reports) |
| bool | copy_asset (const std::string &src, const std::string &dst, eUSDTexNameCollisionMode name_collision_mode, ReportList *reports) |
| bool | asset_exists (const std::string &path) |
| std::string | import_asset (const std::string &src, const char *import_dir, eUSDTexNameCollisionMode name_collision_mode, ReportList *reports) |
| static bool | parent_dir_exists_on_file_system (const std::string &path) |
| bool | is_udim_path (const std::string &path) |
| std::string | get_export_textures_dir (const pxr::UsdStageRefPtr stage) |
| bool | should_import_asset (const std::string &path) |
| bool | paths_equal (const std::string &path1, const std::string &path2) |
| const char * | temp_textures_dir () |
| bool | write_to_path (const void *data, size_t size, const std::string &path, ReportList *reports) |
| void | ensure_usd_source_path_prop (const std::string &path, ID *id) |
| std::string | get_usd_source_path (ID *id) |
| std::string | get_relative_path (const std::string &path, const std::string &anchor) |
| void | USD_path_abs (char *path, const char *basepath, bool for_import) |
| std::optional< pxr::SdfValueTypeName > | convert_blender_type_to_usd (const bke::AttrType blender_type, bool use_color3f_type) |
| std::optional< bke::AttrType > | convert_usd_type_to_blender (const pxr::SdfValueTypeName usd_type) |
| void | copy_primvar_to_blender_attribute (const pxr::UsdGeomPrimvar &primvar, const pxr::UsdTimeCode time, const bke::AttrType data_type, const bke::AttrDomain domain, const OffsetIndices< int > face_indices, bke::MutableAttributeAccessor attributes) |
| void | copy_blender_attribute_to_primvar (const GVArray &attribute, const bke::AttrType data_type, const pxr::UsdTimeCode time, const pxr::UsdGeomPrimvar &primvar, pxr::UsdUtilsSparseValueWriter &value_writer) |
| template<typename USDT> | |
| void | set_attribute (const pxr::UsdAttribute &attr, const USDT value, pxr::UsdTimeCode time, pxr::UsdUtilsSparseValueWriter &value_writer) |
| template<typename USDT> | |
| void | set_attribute (const pxr::UsdAttribute &attr, pxr::VtArray< USDT > &value, pxr::UsdTimeCode time, pxr::UsdUtilsSparseValueWriter &value_writer) |
| template<typename BlenderT, typename USDT> | |
| void | copy_blender_buffer_to_primvar (const VArray< BlenderT > &buffer, const pxr::UsdTimeCode time, const pxr::UsdGeomPrimvar &primvar, pxr::UsdUtilsSparseValueWriter &value_writer) |
| template<typename T> | |
| pxr::VtArray< T > | get_primvar_array (const pxr::UsdGeomPrimvar &primvar, const pxr::UsdTimeCode time) |
| template<typename USDT, typename BlenderT> | |
| void | copy_primvar_to_blender_buffer (const pxr::UsdGeomPrimvar &primvar, const pxr::UsdTimeCode time, const OffsetIndices< int > faces, MutableSpan< BlenderT > attribute) |
| pxr::TfToken | TempBlendShapeWeightsPrimvarName ("temp:weights", pxr::TfToken::Immortal) |
| void | ensure_blend_shape_skeleton (pxr::UsdStageRefPtr stage, pxr::UsdPrim &mesh_prim) |
| const Key * | get_mesh_shape_key (const Object *obj) |
| bool | is_mesh_with_shape_keys (const Object *obj) |
| void | create_blend_shapes (pxr::UsdStageRefPtr stage, const Object *obj, const pxr::UsdPrim &mesh_prim, bool allow_unicode) |
| pxr::VtFloatArray | get_blendshape_weights (const Key *key) |
| void | remap_blend_shape_anim (pxr::UsdStageRefPtr stage, const pxr::SdfPath &skel_path, const pxr::SdfPathSet &mesh_paths) |
| Mesh * | get_shape_key_basis_mesh (Object *obj) |
| static bool | prim_path_valid (const std::string &path) |
| static bool | export_params_valid (const USDExportParams ¶ms) |
| static void | ensure_root_prim (pxr::UsdStageRefPtr stage, const USDExportParams ¶ms) |
| static void | report_job_duration (const ExportJobData *data) |
| static void | process_usdz_textures (const ExportJobData *data, const char *path) |
| static bool | perform_usdz_conversion (const ExportJobData *data) |
| std::string | image_cache_file_path () |
| std::string | get_image_cache_file (const std::string &file_name, bool mkdir) |
| std::string | cache_image_color (const float color[4]) |
| static void | collect_point_instancer_prototypes_and_set_extent (pxr::UsdGeomPointInstancer instancer, const pxr::UsdStageRefPtr &stage, const pxr::SdfPath &wrapper_path, std::vector< pxr::UsdPrim > &proto_list) |
| pxr::UsdStageRefPtr | export_to_stage (const USDExportParams ¶ms, Depsgraph *depsgraph, const char *filepath) |
| static void | export_startjob (void *customdata, wmJobWorkerStatus *worker_status) |
| static void | export_endjob_usdz_cleanup (const ExportJobData *data) |
| static void | export_endjob (void *customdata) |
| static void | create_temp_path_for_usdz_export (const char *filepath, blender::io::usd::ExportJobData *job) |
| static void | set_job_filepath (blender::io::usd::ExportJobData *job, const char *filepath) |
| bool | USD_export (const bContext *C, const char *filepath, const USDExportParams *params, bool as_background_job, ReportList *reports) |
| int | USD_get_version () |
| double | get_meters_per_unit (const USDExportParams ¶ms) |
| static CacheArchiveHandle * | handle_from_stage_reader (USDStageReader *reader) |
| static USDStageReader * | stage_reader_from_handle (CacheArchiveHandle *handle) |
| static bool | gather_objects_paths (const pxr::UsdPrim &object, ListBase *object_paths) |
| static void | report_job_duration (const ImportJobData *data) |
| static void | import_startjob (void *customdata, wmJobWorkerStatus *worker_status) |
| static void | import_endjob (void *customdata) |
| static void | import_freejob (void *user_data) |
| bool | USD_import (const bContext *C, const char *filepath, const USDImportParams *params, bool as_background_job, ReportList *reports) |
| static USDPrimReader * | get_usd_reader (CacheReader *reader, const Object *, const char **r_err_str) |
| USDMeshReadParams | create_mesh_read_params (const double motion_sample_time, const int read_flags) |
| void | USD_read_geometry (CacheReader *reader, const Object *ob, blender::bke::GeometrySet &geometry_set, const USDMeshReadParams params, const char **r_err_str) |
| bool | USD_mesh_topology_changed (CacheReader *reader, const Object *ob, const Mesh *existing_mesh, const double time, const char **r_err_str) |
| CacheReader * | CacheReader_open_usd_object (CacheArchiveHandle *handle, CacheReader *reader, Object *object, const char *object_path) |
| void | USD_CacheReader_free (CacheReader *reader) |
| CacheArchiveHandle * | USD_create_handle (Main *, const char *filepath, ListBase *object_paths) |
| void | USD_free_handle (CacheArchiveHandle *handle) |
| void | USD_get_transform (CacheReader *reader, float r_mat_world[4][4], float time, float scale) |
| static USDHookList & | hook_list () |
| void | USD_register_hook (std::unique_ptr< USDHook > hook) |
| void | USD_unregister_hook (const USDHook *hook) |
| USDHook * | USD_find_hook_name (const char idname[]) |
| void | register_hook_converters () |
| static void | handle_python_error (USDHook *hook, ReportList *reports) |
| void | call_export_hooks (pxr::UsdStageRefPtr stage, Depsgraph *depsgraph, ReportList *reports) |
| void | call_material_export_hooks (pxr::UsdStageRefPtr stage, Material *material, const pxr::UsdShadeMaterial &usd_material, const USDExportParams &export_params, ReportList *reports) |
| void | call_import_hooks (USDStageReader *archive, ReportList *reports) |
| bool | have_material_import_hook (pxr::UsdStageRefPtr stage, const pxr::UsdShadeMaterial &usd_material, const USDImportParams &import_params, ReportList *reports) |
| bool | call_material_import_hooks (pxr::UsdStageRefPtr stage, Material *material, const pxr::UsdShadeMaterial &usd_material, const USDImportParams &import_params, ReportList *reports) |
| static void | convert_proto_to_instance (pxr::UsdStageRefPtr stage, const pxr::SdfPath &proto_path, const pxr::SdfPath &ref_path) |
| void | process_scene_graph_instances (const USDExportParams &export_params, pxr::UsdStageRefPtr stage) |
| static Image * | load_image (std::string tex_path, Main *bmain, const USDImportParams ¶ms) |
| static bNode * | append_node (bNode *dst_node, int16_t new_node_type, const StringRef out_sock, const StringRef in_sock, bNodeTree *ntree, float offset) |
| void | world_material_to_dome_light (const USDExportParams ¶ms, const Scene *scene, pxr::UsdStageRefPtr stage) |
| void | dome_light_to_world_material (const USDImportParams ¶ms, Scene *scene, Main *bmain, const USDImportDomeLightData &dome_light_data, const pxr::UsdPrim &prim, const pxr::UsdTimeCode time) |
| static bool | node_search (bNode *fromnode, bNode *, void *userdata, bool) |
| void | world_material_to_dome_light (const Scene *scene, WorldToDomeLight &res) |
| template<typename USDT> | |
| static void | read_face_display_color (Mesh *mesh, const pxr::UsdGeomPrimvar &primvar, const pxr::TfToken &pv_name, const pxr::UsdTimeCode time) |
| static std::optional< bke::AttrDomain > | convert_usd_varying_to_blender (const pxr::TfToken usd_domain) |
| void | read_generic_mesh_primvar (Mesh *mesh, const pxr::UsdGeomPrimvar &primvar, const pxr::UsdTimeCode time, const bool is_left_handed) |
| static float3 | to_float3 (pxr::GfVec3f vec3f) |
| static int | bezier_point_count (int usd_count, bool is_cyclic) |
| static int | point_count (int usdCount, CurveType curve_type, bool is_cyclic) |
| static Array< int > | calc_curve_offsets (const pxr::VtIntArray &usdCounts, const CurveType curve_type, bool is_cyclic) |
| static void | add_bezier_control_point (int cp, int offset, MutableSpan< float3 > positions, MutableSpan< float3 > handles_left, MutableSpan< float3 > handles_right, const Span< pxr::GfVec3f > usdPoints) |
| static bool | curves_topology_changed (const bke::CurvesGeometry &curves, const Span< int > usd_offsets) |
| static CurveType | get_curve_type (pxr::TfToken type, pxr::TfToken basis) |
| static std::optional< bke::AttrDomain > | convert_usd_interp_to_blender (const pxr::TfToken usd_domain) |
| template<typename T> | |
| static bool | get_authored_value (const pxr::UsdAttribute &attr, const pxr::UsdTimeCode time, const pxr::UsdPrim &prim, const pxr::TfToken fallback_attr_name, T *r_value) |
| template<typename T> | |
| static float | get_intensity (const T &dome_light, const pxr::UsdTimeCode time) |
| template<typename T> | |
| static bool | get_tex_path (const T &dome_light, const pxr::UsdTimeCode time, pxr::SdfAssetPath *tex_path) |
| template<typename T> | |
| static bool | get_color (const T &dome_light, const pxr::UsdTimeCode time, pxr::GfVec3f *color) |
| static pxr::TfToken | get_pole_axis (const pxr::UsdLuxDomeLight_1 &dome_light, const pxr::UsdTimeCode time) |
| static IntermediateNode | add_normal_map (bNodeTree *ntree, int column, NodePlacementContext &ctx) |
| static IntermediateNode | add_scale_bias (const pxr::UsdShadeShader &usd_shader, bNodeTree *ntree, int column, bool feeds_normal_map, NodePlacementContext &ctx) |
| static IntermediateNode | add_scale_bias_adjust (bNodeTree *ntree, int column, NodePlacementContext &ctx) |
| static IntermediateNode | add_separate_color (const pxr::UsdShadeShader &usd_shader, const pxr::TfToken &usd_source_name, bNodeTree *ntree, int column, NodePlacementContext &ctx) |
| static IntermediateNode | add_lessthan (bNodeTree *ntree, float threshold, int column, NodePlacementContext &ctx) |
| static IntermediateNode | add_oneminus (bNodeTree *ntree, int column, NodePlacementContext &ctx) |
| static void | configure_displacement (const pxr::UsdShadeShader &usd_shader, bNode *displacement_node) |
| static pxr::UsdShadeShader | node_graph_output_source (const pxr::UsdShadeNodeGraph &node_graph, const pxr::TfToken &output_name) |
| void | build_material_map (const Main *bmain, blender::Map< std::string, Material * > &r_mat_map) |
| Material * | find_existing_material (const pxr::SdfPath &usd_mat_path, const USDImportParams ¶ms, const blender::Map< std::string, Material * > &mat_map, const blender::Map< pxr::SdfPath, Material * > &usd_path_to_mat) |
| static KnotsMode | determine_knots_mode (const Span< double > usd_knots, const int order, const bool is_cyclic) |
| static CurveData | calc_curve_offsets (const Span< float3 > usd_points, const Span< int > usd_counts, const Span< int > usd_orders, const Span< double > usd_knots) |
| static bool | curves_topology_changed (const bke::CurvesGeometry &curves, const Span< int > usd_offsets) |
| static IndexRange | get_usd_points_range_de_dup (IndexRange blender_points_range, IndexRange usd_points_range) |
| static bNode * | add_input_named_attrib_node (bNodeTree *ntree, const char *name, int8_t prop_type) |
| static void | decref (USDPrimReader *reader) |
| static Collection * | create_collection (Main *bmain, Collection *parent, const char *name) |
| static void | set_instance_collection (USDInstanceReader *instance_reader, const blender::Map< pxr::SdfPath, Collection * > &proto_collection_map) |
| static void | convert_to_z_up (pxr::UsdStageRefPtr stage, ImportSettings &settings) |
| static void | find_prefix_to_skip (pxr::UsdStageRefPtr stage, ImportSettings &settings) |
| static void | determine_blender_compat (pxr::UsdStageRefPtr stage, ImportSettings &settings) |
| static void | set_string_prop (IDProperty *idgroup, const StringRefNull prop_name, const StringRefNull str_val) |
| static void | set_int_prop (IDProperty *idgroup, const StringRefNull prop_name, const int ival) |
| static void | set_bool_prop (IDProperty *idgroup, const StringRefNull prop_name, const bool bval) |
| static void | set_float_prop (IDProperty *idgroup, const StringRefNull prop_name, const float fval) |
| static void | set_double_prop (IDProperty *idgroup, const StringRefNull prop_name, const double dval) |
| void | set_id_props_from_prim (ID *id, const pxr::UsdPrim &prim, const eUSDPropertyImportMode property_import_mode, const pxr::UsdTimeCode time_code) |
| void | import_blendshapes (Main *bmain, Object *mesh_obj, const pxr::UsdPrim &prim, ReportList *reports, const bool import_anim) |
| static void | set_rest_pose (Main *bmain, Object *arm_obj, bArmature *arm, const pxr::VtArray< pxr::GfMatrix4d > &bind_xforms, const pxr::VtTokenArray &joint_order, const blender::Map< pxr::TfToken, std::string > &joint_to_bone_map, const pxr::UsdSkelTopology &skel_topology, const pxr::UsdSkelSkeletonQuery &skel_query) |
| void | import_skeleton (Main *bmain, Object *arm_obj, const pxr::UsdSkelSkeleton &skel, ReportList *reports, const bool import_anim) |
| void | import_mesh_skel_bindings (Object *mesh_obj, const pxr::UsdPrim &prim, ReportList *reports) |
| void | skel_export_chaser (pxr::UsdStageRefPtr stage, const ObjExportMap &armature_export_map, const ObjExportMap &skinned_mesh_export_map, const ObjExportMap &shape_key_mesh_export_map, const Depsgraph *depsgraph) |
| void | skinned_mesh_export_chaser (pxr::UsdStageRefPtr stage, const ObjExportMap &armature_export_map, const ObjExportMap &skinned_mesh_export_map, pxr::UsdGeomXformCache &xf_cache, const Depsgraph *depsgraph) |
| void | shape_key_export_chaser (pxr::UsdStageRefPtr stage, const ObjExportMap &shape_key_mesh_export_map) |
| void | export_deform_verts (const Mesh *mesh, const pxr::UsdSkelBindingAPI &skel_api, const Span< StringRef > bone_names) |
| void | create_skel_roots (pxr::UsdStageRefPtr stage, const USDExportParams ¶ms) |
| std::string | make_safe_name (const StringRef name, bool allow_unicode) |
| pxr::SdfPath | get_unique_path (pxr::UsdStageRefPtr stage, const std::string &path) |
| static void | create_vector_attrib (const pxr::UsdPrim &prim, const IDProperty *prop, const pxr::TfToken &prop_token, const pxr::UsdTimeCode &time) |
| static void | add_anim_sample (pxr::UsdSkelAnimation &skel_anim, const Object *obj, const pxr::UsdTimeCode time, const blender::Map< blender::StringRef, const Bone * > *deform_map, pxr::UsdUtilsSparseValueWriter &value_writer) |
| static void | camera_sensor_size_for_render (const Camera *camera, const RenderData *rd, float *r_sensor, float *r_sensor_x, float *r_sensor_y) |
| static void | populate_curve_widths (const bke::CurvesGeometry &curves, pxr::VtArray< float > &widths) |
| static pxr::TfToken | get_curve_width_interpolation (const pxr::VtArray< float > &widths, const pxr::VtArray< int > &segments, const pxr::VtIntArray &control_point_counts, const bool is_cyclic, ReportList *reports) |
| static void | populate_curve_verts (const bke::CurvesGeometry &curves, const Span< float3 > positions, pxr::VtArray< pxr::GfVec3f > &verts, pxr::VtIntArray &control_point_counts, pxr::VtArray< int > &segments, const bool is_cyclic, const bool is_cubic) |
| static void | populate_curve_props (const bke::CurvesGeometry &curves, pxr::VtArray< pxr::GfVec3f > &verts, pxr::VtIntArray &control_point_counts, pxr::VtArray< float > &widths, pxr::TfToken &interpolation, const bool is_cyclic, const bool is_cubic, ReportList *reports) |
| static void | populate_curve_verts_for_bezier (const bke::CurvesGeometry &curves, const Span< float3 > positions, const Span< float3 > handles_l, const Span< float3 > handles_r, pxr::VtArray< pxr::GfVec3f > &verts, pxr::VtIntArray &control_point_counts, pxr::VtArray< int > &segments, const bool is_cyclic) |
| static void | populate_curve_props_for_bezier (const bke::CurvesGeometry &curves, pxr::VtArray< pxr::GfVec3f > &verts, pxr::VtIntArray &control_point_counts, pxr::VtArray< float > &widths, pxr::TfToken &interpolation, const bool is_cyclic, ReportList *reports) |
| static void | populate_curve_props_for_nurbs (const bke::CurvesGeometry &curves, pxr::VtArray< pxr::GfVec3f > &verts, pxr::VtIntArray &control_point_counts, pxr::VtArray< float > &widths, pxr::VtArray< double > &knots, pxr::VtArray< double > &weights, pxr::VtArray< int > &orders, pxr::TfToken &interpolation, const bool is_cyclic) |
| static std::optional< pxr::TfToken > | convert_blender_domain_to_usd (const bke::AttrDomain blender_domain, bool is_bezier) |
| static bool | is_excluded_attr (StringRefNull name) |
| static pxr::UsdShadeShader | create_usd_preview_shader (const USDExporterContext &usd_export_context, const pxr::UsdShadeMaterial &material, const StringRef name, int type) |
| static pxr::UsdShadeShader | create_usd_preview_shader (const USDExporterContext &usd_export_context, const pxr::UsdShadeMaterial &material, bNode *node) |
| static pxr::UsdShadeShader | create_primvar_reader_shader (const USDExporterContext &usd_export_context, const pxr::UsdShadeMaterial &material, const pxr::TfToken &primvar_type, const bNode *node) |
| static void | create_uv_input (const USDExporterContext &usd_export_context, bNodeSocket *input_socket, pxr::UsdShadeMaterial &usd_material, pxr::UsdShadeInput &usd_input, const std::string &active_uvmap_name, ReportList *reports) |
| static void | export_texture (const USDExporterContext &usd_export_context, bNode *node) |
| static bNode * | find_bsdf_node (Material *material) |
| static bNode * | find_displacement_node (Material *material) |
| static void | get_absolute_path (const Image *ima, char *r_path) |
| static std::string | get_tex_image_asset_filepath (const USDExporterContext &usd_export_context, bNode *node) |
| static const InputSpecMap & | preview_surface_input_map () |
| static bNodeLink * | traverse_channel (bNodeSocket *input, short target_type) |
| void | set_normal_texture_range (pxr::UsdShadeShader &usd_shader, const InputSpec &input_spec) |
| template<typename T1, typename T2> | |
| void | create_input (pxr::UsdShadeShader &shader, const InputSpec &spec, const void *value, float scale) |
| static void | set_scale_bias (pxr::UsdShadeShader &usd_shader, const pxr::GfVec4f scale, const pxr::GfVec4f bias) |
| static void | process_inputs (const USDExporterContext &usd_export_context, pxr::UsdShadeMaterial &usd_material, pxr::UsdShadeShader &shader, const bNode *node, const std::string &active_uvmap_name, ReportList *reports) |
| static void | create_usd_preview_surface_material (const USDExporterContext &usd_export_context, Material *material, pxr::UsdShadeMaterial &usd_material, const std::string &active_uvmap_name, ReportList *reports) |
| static void | create_usd_viewport_material (const USDExporterContext &usd_export_context, const Material *material, const pxr::UsdShadeMaterial &usd_material) |
| static void | create_uvmap_shader (const USDExporterContext &usd_export_context, const bNodeLink *uvmap_link, const pxr::UsdShadeMaterial &usd_material, const pxr::UsdShadeInput &usd_input, const std::string &active_uvmap_name, ReportList *reports) |
| static void | create_transform2d_shader (const USDExporterContext &usd_export_context, bNodeLink *mapping_link, pxr::UsdShadeMaterial &usd_material, pxr::UsdShadeInput &usd_input, const std::string &uvmap_name, ReportList *reports) |
| static bool | has_generated_tiles (const Image *ima) |
| static bool | is_in_memory_texture (Image *ima) |
| static bool | is_packed_texture (const Image *ima) |
| static std::string | get_in_memory_texture_filename (Image *ima) |
| static void | export_in_memory_imbuf (ImBuf *imbuf, const std::string &export_dir, const char image_abs_path[FILE_MAX], const char file_name[FILE_MAX], const bool allow_overwrite, ReportList *reports) |
| static void | export_in_memory_texture (Image *ima, const std::string &export_dir, const bool allow_overwrite, ReportList *reports) |
| static void | export_packed_texture (Image *ima, const std::string &export_dir, const bool allow_overwrite, ReportList *reports) |
| static pxr::TfToken | get_node_tex_image_color_space (const bNode *node) |
| static pxr::TfToken | get_node_tex_image_wrap (const bNode *node) |
| static std::string | get_tex_image_asset_filepath (const Image *ima) |
| std::string | get_tex_image_asset_filepath (Image *ima, const pxr::UsdStageRefPtr stage, const USDExportParams &export_params) |
| std::string | get_tex_image_asset_filepath (const std::string &path, const std::string &stage_path, const USDExportParams &export_params) |
| std::string | get_tex_image_asset_filepath (bNode *node, const pxr::UsdStageRefPtr stage, const USDExportParams &export_params) |
| static void | copy_tiled_textures (Image *ima, const std::string &dest_dir, const bool allow_overwrite, ReportList *reports) |
| static void | copy_single_file (const Image *ima, const std::string &dest_dir, const bool allow_overwrite, ReportList *reports) |
| void | export_texture (Image *ima, const pxr::UsdStageRefPtr stage, const bool allow_overwrite, ReportList *reports) |
| void | export_texture (bNode *node, const pxr::UsdStageRefPtr stage, const bool allow_overwrite, ReportList *reports) |
| pxr::TfToken | token_for_input (const StringRef input_name) |
| pxr::UsdShadeMaterial | create_usd_material (const USDExporterContext &usd_export_context, pxr::SdfPath usd_path, Material *material, const std::string &active_uvmap_name, ReportList *reports) |
| static const SubsurfModifierData * | get_last_subdiv_modifier (eEvaluationMode eval_mode, Object *obj) |
| static std::optional< pxr::TfToken > | convert_blender_domain_to_usd (const bke::AttrDomain blender_domain) |
| static void | get_positions (const Mesh *mesh, USDMeshData &usd_mesh_data) |
| static void | get_loops_polys (const Mesh *mesh, USDMeshData &usd_mesh_data) |
| static void | get_edge_creases (const Mesh *mesh, USDMeshData &usd_mesh_data) |
| static void | get_vert_creases (const Mesh *mesh, USDMeshData &usd_mesh_data) |
| template<typename T> | |
| static pxr::VtArray< T > | DuplicateArray (const pxr::VtArray< T > &original, size_t copies) |
| template<typename T, typename GetterFunc, typename CreatorFunc> | |
| static void | DuplicatePerInstanceAttribute (const GetterFunc &getter, const CreatorFunc &creator, size_t copies, const pxr::UsdTimeCode &time) |
| template<typename T, typename GetterFunc, typename CreatorFunc> | |
| static void | ExpandAttributePerInstance (const GetterFunc &getter, const CreatorFunc &creator, const Span< std::pair< int, int > > instance_object_map, const pxr::UsdTimeCode &time) |
| static std::optional< pxr::TfToken > | convert_blender_domain_to_usd (const bke::AttrDomain blender_domain) |
| static bool | has_varying_modifiers (const Object *ob) |
| static const bNode * | find_node_for_type_in_graph (const bNodeTree *nodetree, const blender::StringRefNull type_idname) |
| TEST_F (UsdExportTest, usd_export_rain_mesh) | |
| TEST_F (UsdExportTest, usd_export_material) | |
| TEST (utilities, make_safe_name) | |
| TEST_F (USDStageCreationTest, JSONFileLoadingTest) | |
Variables | |
| constexpr char | UDIM_PATTERN [] = "<UDIM>" |
| constexpr char | UDIM_PATTERN2 [] = "%3CUDIM%3E" |
| constexpr int | UDIM_START_TILE = 1001 |
| constexpr int | UDIM_END_TILE = 1100 |
| pxr::TfToken | TempBlendShapeWeightsPrimvarName |
| const StringRefNull | simple_scene_filename = "usd/usd_simple_scene.blend" |
| const StringRefNull | materials_filename = "usd/usd_materials_export.blend" |
| const StringRefNull | output_filename = "output.usd" |
| using blender::io::usd::ImportedPrimMap = Map<pxr::SdfPath, Vector<PointerRNA>> |
Definition at line 62 of file usd_hook.cc.
Definition at line 115 of file usd_writer_material.cc.
| using blender::io::usd::MaterialFaceGroups = Map<short, pxr::VtArray<int>> |
Definition at line 23 of file usd_writer_mesh.hh.
| using blender::io::usd::ObjExportMap = Map<const Object *, pxr::SdfPath> |
Map an object to its USD prim export path.
Definition at line 83 of file usd_skel_convert.hh.
| using blender::io::usd::PathMap = std::map<pxr::SdfPath, pxr::SdfPath> |
Definition at line 28 of file usd_instancing_utils.cc.
| using blender::io::usd::PathSet = Set<pxr::SdfPath> |
Definition at line 29 of file usd_instancing_utils.cc.
| using blender::io::usd::ProtoReaderMap = blender::Map<pxr::SdfPath, blender::Vector<USDPrimReader *>> |
Map a USD prototype prim path to the list of readers that convert the prototype data.
Definition at line 30 of file usd_reader_stage.hh.
| using blender::io::usd::ReferencesMap = Map<pxr::SdfPath, Vector<pxr::SdfPath>> |
Definition at line 32 of file usd_instancing_utils.cc.
| using blender::io::usd::ShaderToNodeMap = Map<std::string, bNode *> |
Definition at line 27 of file usd_reader_material.hh.
| using blender::io::usd::USDHookList = std::list<std::unique_ptr<USDHook>> |
Definition at line 61 of file usd_hook.cc.
| using blender::io::usd::UsdPathSet = blender::Set<pxr::SdfPath> |
Definition at line 32 of file usd_reader_stage.hh.
| using blender::io::usd::XformResult = std::tuple<pxr::GfMatrix4f, bool> |
A transformation matrix and a boolean indicating whether the matrix is constant over time.
Definition at line 24 of file usd_reader_xform.hh.
| anonymous enum |
| Enumerator | |
|---|---|
| USD_NO_ERROR | |
| USD_ARCHIVE_FAIL | |
Definition at line 86 of file usd_capi_import.cc.
| Enumerator | |
|---|---|
| USD_SUBDIV_IGNORE | Subdivision scheme = None, export base mesh without subdivision. |
| USD_SUBDIV_TESSELLATE | Subdivision scheme = None, export subdivided mesh. |
| USD_SUBDIV_BEST_MATCH | Apply the USD subdivision scheme that is the closest match to Blender. Reverts to USD_SUBDIV_TESSELLATE if the subdivision method is not supported. |
|
static |
Definition at line 124 of file usd_writer_armature.cc.
References BLI_assert, bPose::chanbase, CLOG_WARN, blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::contains(), LISTBASE_FOREACH, LOG, parent_relative_pose_mat(), and set_attribute().
Referenced by blender::io::usd::USDArmatureWriter::do_write().
|
static |
Definition at line 62 of file usd_reader_curve.cc.
References add_bezier_control_point(), blender::Span< T >::size(), and to_float3().
Referenced by add_bezier_control_point(), and blender::io::usd::USDBasisCurvesReader::read_curve_sample().
|
static |
Create a node to read a geometry attribute of the given name and type.
Definition at line 30 of file usd_reader_pointinstancer.cc.
References BLI_strncpy(), NodeGeometryInputNamedAttribute::data_type, bNodeSocket::default_value, GEO_NODE_INPUT_NAMED_ATTRIBUTE, MAX_NAME, name, blender::bke::node_add_static_node(), blender::bke::node_find_socket(), SOCK_IN, bNode::storage, and bNodeSocketValueString::value.
Referenced by blender::io::usd::USDPointInstancerReader::read_object_data().
|
static |
Definition at line 882 of file usd_reader_material.cc.
References add_node(), blender::io::usd::NodePlacementContext::compute_node_loc(), bNode::custom1, bNodeSocket::default_value, blender::io::usd::IntermediateNode::node, blender::bke::node_find_socket(), NODE_MATH_LESS_THAN, SH_NODE_MATH, SOCK_IN, blender::io::usd::IntermediateNode::sock_input_name, and blender::io::usd::IntermediateNode::sock_output_name.
Referenced by blender::io::usd::USDMaterialReader::follow_connection().
|
static |
Definition at line 748 of file usd_reader_material.cc.
References add_node(), blender::io::usd::NodePlacementContext::compute_node_loc(), blender::io::usd::IntermediateNode::node, SH_NODE_NORMAL_MAP, blender::io::usd::IntermediateNode::sock_input_name, and blender::io::usd::IntermediateNode::sock_output_name.
Referenced by blender::io::usd::USDMaterialReader::follow_connection().
|
static |
Definition at line 901 of file usd_reader_material.cc.
References add_node(), blender::io::usd::NodePlacementContext::compute_node_loc(), bNode::custom1, bNodeSocket::default_value, blender::io::usd::IntermediateNode::node, blender::bke::node_find_socket(), NODE_MATH_SUBTRACT, SH_NODE_MATH, SOCK_IN, blender::io::usd::IntermediateNode::sock_input_name, and blender::io::usd::IntermediateNode::sock_output_name.
Referenced by blender::io::usd::USDMaterialReader::follow_connection().
|
static |
Definition at line 762 of file usd_reader_material.cc.
References add_node(), usdtokens::bias(), blender::io::usd::NodePlacementContext::cache_node(), blender::io::usd::NodePlacementContext::compute_node_loc(), copy_v3_v3(), bNode::custom1, bNodeSocket::default_value, blender::io::usd::NodePlacementContext::get_cached_node(), blender::io::usd::IntermediateNode::node, blender::bke::node_find_socket(), NODE_VECTOR_MATH_MULTIPLY_ADD, usdtokens::scale(), SH_NODE_VECTOR_MATH, SOCK_IN, blender::io::usd::IntermediateNode::sock_input_name, and blender::io::usd::IntermediateNode::sock_output_name.
Referenced by blender::io::usd::USDMaterialReader::follow_connection().
|
static |
Definition at line 824 of file usd_reader_material.cc.
References add_node(), blender::io::usd::NodePlacementContext::compute_node_loc(), copy_v3_fl3(), bNode::custom1, bNodeSocket::default_value, blender::io::usd::IntermediateNode::node, blender::bke::node_find_socket(), NODE_VECTOR_MATH_MULTIPLY_ADD, SH_NODE_VECTOR_MATH, SOCK_IN, blender::io::usd::IntermediateNode::sock_input_name, and blender::io::usd::IntermediateNode::sock_output_name.
Referenced by blender::io::usd::USDMaterialReader::follow_connection().
|
static |
Definition at line 844 of file usd_reader_material.cc.
References add_node(), usdtokens::b(), blender::io::usd::NodePlacementContext::cache_node(), blender::io::usd::NodePlacementContext::compute_node_loc(), usdtokens::g(), blender::io::usd::NodePlacementContext::get_cached_node(), blender::io::usd::IntermediateNode::node, usdtokens::r(), SH_NODE_SEPARATE_COLOR, blender::io::usd::IntermediateNode::sock_input_name, and blender::io::usd::IntermediateNode::sock_output_name.
Referenced by blender::io::usd::USDMaterialReader::follow_connection().
|
static |
Definition at line 122 of file usd_light_convert.cc.
References bNode::location, blender::bke::node_add_link(), blender::bke::node_add_static_node(), blender::bke::node_find_socket(), SOCK_IN, and SOCK_OUT.
Referenced by dome_light_to_world_material().
| bool blender::io::usd::asset_exists | ( | const std::string & | path | ) |
Invoke the USD asset resolver to determine if the asset with the given path exists.
| path | the path to resolve |
Definition at line 273 of file usd_asset_utils.cc.
Referenced by copy_udim_asset_to_directory(), export_packed_texture(), and should_import_asset().
|
inlinestatic |
Definition at line 35 of file usd_reader_curve.cc.
References is_cyclic().
Referenced by point_count(), and blender::io::usd::USDBasisCurvesReader::read_curve_sample().
|
inline |
References depsgraph, and name.
Referenced by import_skeleton(), and initialize().
| void blender::io::usd::build_material_map | ( | const Main * | bmain, |
| blender::Map< std::string, Material * > & | r_mat_map ) |
Returns a map containing all the Blender materials which allows a fast lookup of the material by name. Note that the material name key might be modified to be a valid USD identifier, to match material names in the imported USD.
Definition at line 1560 of file usd_reader_material.cc.
References blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add_new(), BLI_assert_msg, blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::is_empty(), LISTBASE_FOREACH, and Main::materials.
Referenced by blender::io::usd::USDStageReader::import_all_materials().
| pxr::TfToken blender::io::usd::build_usd_joint_path | ( | const Bone * | bone, |
| bool | allow_unicode ) |
Return the USD joint path corresponding to the given bone. For example, for the bone "Hand", this function might return the full path "Shoulder/Elbow/Hand" of the joint in the hierarchy.
| bone | The bone whose path will be queried. |
| allow_unicode | Whether to allow unicode bone names to be used |
Definition at line 129 of file usd_armature_utils.cc.
References make_safe_name(), Bone::name, and Bone::parent.
Referenced by create_pose_joints(), and initialize().
| std::string blender::io::usd::cache_image_color | ( | const float | color[4] | ) |
Definition at line 360 of file usd_capi_export.cc.
References BLI_exists(), CLOG_ERROR, CLOG_INFO, ImbFormatOptions::flag, ImBuf::foptions, ImBuf::ftype, get_image_cache_file(), IB_float_data, IMB_allocImBuf(), IMB_freeImBuf(), IMB_FTYPE_OPENEXR, IMB_rectfill(), IMB_save_image(), LOG, name, and R_IMF_EXR_CODEC_RLE.
Referenced by blender::io::hydra::WorldData::init(), and world_material_to_dome_light().
| CacheReader * blender::io::usd::CacheReader_open_usd_object | ( | CacheArchiveHandle * | handle, |
| CacheReader * | reader, | ||
| Object * | object, | ||
| const char * | object_path ) |
Definition at line 538 of file usd_capi_import.cc.
References blender::io::usd::USDStageReader::create_reader(), blender::io::usd::USDPrimReader::incref(), blender::io::usd::USDPrimReader::object(), blender::io::usd::USDStageReader::stage(), stage_reader_from_handle(), USD_CacheReader_free(), blender::io::usd::USDPrimReader::valid(), and blender::io::usd::USDStageReader::valid().
Referenced by BKE_cachefile_reader_open().
|
static |
Definition at line 48 of file usd_reader_curve.cc.
References is_cyclic(), and blender::threading::parallel_for().
Referenced by blender::io::usd::USDBasisCurvesReader::read_curve_sample(), and blender::io::usd::USDNurbsReader::read_curve_sample().
| void blender::io::usd::call_export_hooks | ( | pxr::UsdStageRefPtr | stage, |
| Depsgraph * | depsgraph, | ||
| ReportList * | reports ) |
Call the 'on_export' chaser function defined in the registered USDHook classes.
Definition at line 591 of file usd_hook.cc.
References blender::io::usd::USDHookInvoker::call(), depsgraph, and hook_list().
Referenced by export_to_stage().
| void blender::io::usd::call_import_hooks | ( | USDStageReader * | archive, |
| ReportList * | reports ) |
Call the 'on_import' chaser function defined in the registered USDHook classes.
Definition at line 616 of file usd_hook.cc.
References Vector< T, InlineBufferCapacity, Allocator >::append(), blender::io::usd::USDHookInvoker::call(), Object::data, Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::foreach_item(), hook_list(), Material::id, Object::id, blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::lookup_or_add_default(), blender::io::usd::USDStageReader::readers(), blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::reserve(), RNA_id_pointer_create(), blender::io::usd::USDStageReader::settings(), blender::Vector< T, InlineBufferCapacity, Allocator >::size(), Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::size(), blender::io::usd::USDStageReader::stage(), and blender::io::usd::ImportSettings::usd_path_to_mat.
Referenced by import_endjob().
| void blender::io::usd::call_material_export_hooks | ( | pxr::UsdStageRefPtr | stage, |
| Material * | material, | ||
| const pxr::UsdShadeMaterial & | usd_material, | ||
| const USDExportParams & | export_params, | ||
| ReportList * | reports ) |
Call the 'on_material_export' hook functions defined in the registered USDHook classes.
Definition at line 601 of file usd_hook.cc.
References blender::io::usd::USDHookInvoker::call(), and hook_list().
Referenced by create_usd_material().
| bool blender::io::usd::call_material_import_hooks | ( | pxr::UsdStageRefPtr | stage, |
| Material * | material, | ||
| const pxr::UsdShadeMaterial & | usd_material, | ||
| const USDImportParams & | import_params, | ||
| ReportList * | reports ) |
Call the 'on_material_import' hook functions defined in the registered USDHook classes. Returns true if any of the hooks were successful, false otherwise.
Definition at line 668 of file usd_hook.cc.
References blender::io::usd::USDHookInvoker::call(), hook_list(), and blender::io::usd::OnMaterialImportInvoker::result().
Referenced by blender::io::usd::USDStageReader::call_material_import_hooks().
|
static |
Definition at line 29 of file usd_writer_camera.cc.
References BKE_camera_sensor_fit(), BKE_camera_sensor_size(), BLI_assert_msg, CAMERA_SENSOR_FIT_AUTO, CAMERA_SENSOR_FIT_HOR, CAMERA_SENSOR_FIT_VERT, Camera::sensor_fit, Camera::sensor_x, Camera::sensor_y, RenderData::xasp, RenderData::xsch, RenderData::yasp, and RenderData::ysch.
Referenced by blender::io::usd::USDCameraWriter::do_write().
| bool blender::io::usd::can_export_skinned_mesh | ( | const Object & | obj, |
| const Depsgraph * | depsgraph ) |
Query whether exporting a skinned mesh is supported for the given object. Currently, the object can be exported as a skinned mesh if it has an enabled armature modifier and no other enabled modifiers.
Definition at line 189 of file usd_armature_utils.cc.
References depsgraph, eModifierType_Armature, and get_enabled_modifier().
Referenced by blender::io::usd::USDMeshWriter::set_skel_export_flags().
|
static |
Definition at line 388 of file usd_capi_export.cc.
References CLOG_WARN, collect_point_instancer_prototypes_and_set_extent(), and LOG.
Referenced by collect_point_instancer_prototypes_and_set_extent(), and export_startjob().
|
static |
Definition at line 918 of file usd_reader_material.cc.
References usdtokens::bias(), bNodeSocket::default_value, blender::bke::node_find_socket(), usdtokens::scale(), and SOCK_IN.
Referenced by blender::io::usd::USDMaterialReader::follow_connection().
|
static |
Definition at line 202 of file usd_writer_mesh.cc.
References blender::bke::Corner, blender::bke::Face, and blender::bke::Point.
|
static |
Definition at line 62 of file usd_writer_points.cc.
References blender::bke::Point.
|
static |
Definition at line 400 of file usd_writer_curves.cc.
References blender::bke::Curve, and blender::bke::Point.
| std::optional< pxr::SdfValueTypeName > blender::io::usd::convert_blender_type_to_usd | ( | const bke::AttrType | blender_type, |
| bool | use_color3f_type ) |
Definition at line 22 of file usd_attribute_utils.cc.
References blender::bke::Bool, blender::bke::ColorByte, blender::bke::ColorFloat, blender::bke::Float, blender::bke::Float2, blender::bke::Float3, blender::bke::Int32, blender::bke::Int8, blender::bke::Quaternion, and blender::bke::String.
|
static |
Definition at line 36 of file usd_instancing_utils.cc.
References CLOG_ERROR, and LOG.
Referenced by process_scene_graph_instances().
|
static |
Definition at line 124 of file usd_reader_stage.cc.
References axis_angle_normalized_to_mat3(), blender::io::usd::ImportSettings::conversion_mat, copy_m4_m3(), blender::io::usd::ImportSettings::do_convert_mat, M_PI_2, unit_m4(), and z().
Referenced by blender::io::usd::USDStageReader::USDStageReader().
|
static |
Definition at line 113 of file usd_reader_curve.cc.
References blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add_new(), convert_usd_interp_to_blender(), blender::bke::Curve, blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::lookup_ptr(), and blender::bke::Point.
Referenced by convert_usd_interp_to_blender(), and blender::io::usd::USDCurvesReader::read_custom_data().
| std::optional< bke::AttrType > blender::io::usd::convert_usd_type_to_blender | ( | const pxr::SdfValueTypeName | usd_type | ) |
Definition at line 51 of file usd_attribute_utils.cc.
References blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add_new(), blender::bke::Bool, blender::bke::ColorFloat, blender::bke::Float, blender::bke::Float2, blender::bke::Float3, blender::bke::Int32, blender::bke::Int8, blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::lookup_ptr(), and blender::bke::Quaternion.
Referenced by blender::io::usd::USDCurvesReader::read_custom_data(), blender::io::usd::USDPointsReader::read_custom_data(), and read_generic_mesh_primvar().
|
static |
Definition at line 57 of file usd_mesh_utils.cc.
References blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add_new(), blender::bke::Corner, blender::bke::Face, blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::lookup_ptr(), and blender::bke::Point.
Referenced by read_generic_mesh_primvar().
| bool blender::io::usd::copy_asset | ( | const std::string & | src, |
| const std::string & | dst, | ||
| eUSDTexNameCollisionMode | name_collision_mode, | ||
| ReportList * | reports ) |
Invoke the USD asset resolver to copy an asset.
| src | source path of the asset to copy |
| dst | destination path of the copy |
| name_collision_mode | behavior when dst already exists |
| reports | the storage for potential warning or error reports (generated using BKE_report API). |
Definition at line 157 of file usd_asset_utils.cc.
References BKE_reportf(), RPT_ERROR, RPT_INFO, RPT_WARNING, size(), and USD_TEX_NAME_COLLISION_OVERWRITE.
Referenced by copy_asset_to_directory().
|
static |
Definition at line 86 of file usd_asset_utils.cc.
References BKE_reportf(), BLI_is_file(), BLI_path_join, BLI_path_normalize(), copy_asset(), FILE_MAX, get_asset_base_name(), RPT_WARNING, and USD_TEX_NAME_COLLISION_USE_EXISTING.
Referenced by copy_udim_asset_to_directory(), and import_asset().
| void blender::io::usd::copy_blender_attribute_to_primvar | ( | const GVArray & | attribute, |
| const bke::AttrType | data_type, | ||
| const pxr::UsdTimeCode | time, | ||
| const pxr::UsdGeomPrimvar & | primvar, | ||
| pxr::UsdUtilsSparseValueWriter & | value_writer ) |
Definition at line 161 of file usd_attribute_utils.cc.
References BLI_assert_unreachable, blender::bke::Bool, blender::bke::ColorByte, blender::bke::ColorFloat, copy_blender_buffer_to_primvar(), blender::bke::Float, blender::bke::Float2, blender::bke::Float3, blender::bke::Int32, blender::bke::Int8, blender::bke::Quaternion, and blender::GVArray::typed().
| void blender::io::usd::copy_blender_buffer_to_primvar | ( | const VArray< BlenderT > & | buffer, |
| const pxr::UsdTimeCode | time, | ||
| const pxr::UsdGeomPrimvar & | primvar, | ||
| pxr::UsdUtilsSparseValueWriter & | value_writer ) |
Definition at line 160 of file usd_attribute_utils.hh.
References cast, blender::io::usd::detail::convert_value(), data, blender::VArrayCommon< T >::get_if_single(), i, set_attribute(), and blender::VArrayCommon< T >::size().
Referenced by copy_blender_attribute_to_primvar().
| void blender::io::usd::copy_primvar_to_blender_attribute | ( | const pxr::UsdGeomPrimvar & | primvar, |
| const pxr::UsdTimeCode | time, | ||
| const bke::AttrType | data_type, | ||
| const bke::AttrDomain | domain, | ||
| const OffsetIndices< int > | face_indices, | ||
| bke::MutableAttributeAccessor | attributes ) |
Definition at line 97 of file usd_attribute_utils.cc.
References BLI_assert_unreachable, blender::bke::Bool, blender::bke::ColorFloat, copy_primvar_to_blender_buffer(), ELEM, blender::bke::GSpanAttributeWriter::finish(), blender::bke::Float, blender::bke::Float2, blender::bke::Float3, blender::bke::Int32, blender::bke::Int8, blender::bke::MutableAttributeAccessor::lookup_or_add_for_write_span(), blender::bke::Quaternion, blender::bke::GSpanAttributeWriter::span, and blender::GMutableSpan::typed().
Referenced by blender::io::usd::USDCurvesReader::read_custom_data(), blender::io::usd::USDPointsReader::read_custom_data(), and read_generic_mesh_primvar().
| void blender::io::usd::copy_primvar_to_blender_buffer | ( | const pxr::UsdGeomPrimvar & | primvar, |
| const pxr::UsdTimeCode | time, | ||
| const OffsetIndices< int > | faces, | ||
| MutableSpan< BlenderT > | attribute ) |
Definition at line 210 of file usd_attribute_utils.hh.
References cast, blender::io::usd::detail::convert_value(), blender::MutableSpan< T >::copy_from(), faces, blender::MutableSpan< T >::fill(), get_primvar_array(), i, blender::IndexRange::index_range(), blender::MutableSpan< T >::index_range(), blender::IndexRange::last(), blender::MutableSpan< T >::size(), and blender::IndexRange::start().
Referenced by copy_primvar_to_blender_attribute().
|
static |
Definition at line 1338 of file usd_writer_material.cc.
References BKE_reportf(), BLI_copy(), BLI_exists(), BLI_path_cmp_normalized(), BLI_path_join, BLI_path_split_file_part(), CLOG_DEBUG, FILE_MAX, get_absolute_path(), LOG, and RPT_WARNING.
Referenced by export_texture().
|
static |
Definition at line 1284 of file usd_writer_material.cc.
References BKE_image_get_tile_strformat(), BKE_image_set_filepath_from_tile_number(), BKE_reportf(), BLI_copy(), BLI_exists(), BLI_path_cmp_normalized(), BLI_path_join, BLI_path_split_file_part(), CLOG_DEBUG, CLOG_WARN, FILE_MAX, FILE_MAXFILE, get_absolute_path(), LISTBASE_FOREACH, LOG, MEM_SAFE_FREE, RPT_WARNING, tile, Image::tiles, and UDIM_TILE_FORMAT_UDIM.
Referenced by export_texture().
|
static |
Definition at line 114 of file usd_asset_utils.cc.
References asset_exists(), BKE_reportf(), BLI_path_join, copy_asset_to_directory(), FILE_MAX, get_asset_base_name(), i, RPT_ERROR, split_udim_pattern(), UDIM_END_TILE, UDIM_PATTERN, and UDIM_START_TILE.
Referenced by import_asset().
| void blender::io::usd::create_blend_shapes | ( | pxr::UsdStageRefPtr | stage, |
| const Object * | obj, | ||
| const pxr::UsdPrim & | mesh_prim, | ||
| bool | allow_unicode ) |
Convert shape keys on the given object to USD blend shapes. The blend-shapes will be added to the stage as children of the given USD mesh prim. The blend-shape names and targets will also be set as properties on the primitive.
| stage | The stage |
| obj | The mesh object whose shape keys will be converted to blend shapes |
| mesh_prim | The USD mesh that will be assigned the blend shape targets |
| allow_unicode | Whether to allow unicode encoded characters in the blend shape name |
Definition at line 192 of file usd_blend_shape_utils.cc.
References Key::block, CLOG_WARN, data, KeyBlock::data, ListBase::first, float, get_mesh_shape_key(), i, if(), indices, LISTBASE_FOREACH, LOG, make_safe_name(), name, sub_v3_v3v3(), and KeyBlock::totelem.
Referenced by blender::io::usd::USDMeshWriter::init_blend_shapes().
|
static |
Create a collection with the given parent and name.
Definition at line 87 of file usd_reader_stage.cc.
References BKE_collection_add(), and name.
Referenced by blender::io::usd::USDStageReader::create_proto_collections().
| FCurve * blender::io::usd::create_fcurve | ( | blender::animrig::Channelbag & | channelbag, |
| const blender::animrig::FCurveDescriptor & | fcurve_descriptor, | ||
| const int | sample_count ) |
Definition at line 27 of file usd_armature_utils.cc.
References BKE_fcurve_bezt_resize(), BLI_assert_msg, and blender::animrig::Channelbag::fcurve_create_unique().
Referenced by import_blendshapes(), and blender::io::usd::USDCameraReader::read_object_data().
| void blender::io::usd::create_input | ( | pxr::UsdShadeShader & | shader, |
| const InputSpec & | spec, | ||
| const void * | value, | ||
| float | scale ) |
Definition at line 152 of file usd_writer_material.cc.
References blender::io::usd::InputSpec::input_name, blender::io::usd::InputSpec::input_type, T1, and T2.
Referenced by process_inputs().
| USDMeshReadParams blender::io::usd::create_mesh_read_params | ( | const double | motion_sample_time, |
| const int | read_flags ) |
Definition at line 500 of file usd_capi_import.cc.
References params.
Referenced by modify_geometry_set(), blender::io::usd::USDMeshReader::read_object_data(), blender::io::usd::USDPointInstancerReader::read_object_data(), blender::io::usd::USDPointsReader::read_object_data(), and blender::io::usd::USDShapeReader::read_object_data().
| void blender::io::usd::create_pose_joints | ( | pxr::UsdSkelAnimation & | skel_anim, |
| const Object & | obj, | ||
| const Map< StringRef, const Bone * > * | deform_map, | ||
| bool | allow_unicode ) |
Sets the USD joint paths as an attribute on the given USD animation, where the paths correspond to the bones of the given armature.
| skel_anim | The animation whose joints attribute will be set |
| ob_arm | The armature object |
| deform_map | A pointer to a map associating bone names with deform bones and their parents. If the pointer is not null, assume only deform bones are to be exported and bones not found in this map will be skipped |
| allow_unicode | Whether to allow unicode bone names to be used |
Definition at line 142 of file usd_armature_utils.cc.
References BLI_assert, build_usd_joint_path(), bPose::chanbase, blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::contains(), and LISTBASE_FOREACH.
Referenced by initialize().
|
static |
Definition at line 1159 of file usd_writer_material.cc.
References blender::io::usd::USDExportParams::allow_unicode, blender::io::usd::USDExporterContext::export_params, make_safe_name(), bNode::name, and blender::io::usd::USDExporterContext::stage.
Referenced by process_inputs().
| void blender::io::usd::create_skel_roots | ( | pxr::UsdStageRefPtr | stage, |
| const USDExportParams & | params ) |
We must structure the scene graph to encapsulate skinned prim under a UsdSkelRoot prim. Per the USD documentation, a SkelRoot is a:
"Boundable prim type used to identify a scope beneath which skeletally-posed primitives are defined. A SkelRoot must be defined at or above a skinned primitive for any skinning behaviors in UsdSkel."
See: https://openusd.org/23.05/api/class_usd_skel_root.html#details
This function attempts to ensure that skinned primitives and skeletons are encapsulated under SkelRoots, converting existing Xform primitives to SkelRoots to achieve this, if possible. In the case where no common ancestor which can be converted to a SkelRoot is found, this function issues a warning. One way to address such a case is by setting a root prim in the export options, so that this root prim can be converted to a SkelRoot for the entire scene.
| stage | The stage |
| params | The export parameters |
Definition at line 52 of file usd_skel_root_utils.cc.
References BKE_reportf(), CLOG_DEBUG, CLOG_WARN, get_xform_ancestor(), LOG, params, and RPT_WARNING.
Referenced by blender::io::usd::USDHierarchyIterator::process_usd_skel().
|
static |
To create a USDZ file, we must first create a .usd/a/c file and then covert it to .usdz. The temporary files will be created in Blender's temporary session storage. The .usdz file will then be moved to job->usdz_filepath.
Definition at line 737 of file usd_capi_export.cc.
References BKE_tempdir_session, BLI_path_basename(), BLI_path_extension_check(), BLI_path_extension_replace(), BLI_path_join, FILE_MAX, STRNCPY(), blender::io::usd::ExportJobData::unarchived_filepath, and blender::io::usd::ExportJobData::usdz_filepath.
Referenced by set_job_filepath().
|
static |
Definition at line 627 of file usd_writer_material.cc.
References BKE_reportf(), BLI_assert, copy_v3_v3(), create_usd_preview_shader(), create_uv_input(), bNode::custom1, bNodeLink::fromnode, usdtokens::in(), M_PI, blender::bke::node_find_socket(), usdtokens::result(), rot, usdtokens::rotation(), RPT_WARNING, usdtokens::scale(), SH_NODE_MAPPING, SOCK_IN, TEXMAP_TYPE_POINT, usdtokens::translation(), and bNode::type_legacy.
Referenced by create_uv_input().
| pxr::UsdShadeMaterial blender::io::usd::create_usd_material | ( | const USDExporterContext & | usd_export_context, |
| pxr::SdfPath | usd_path, | ||
| Material * | material, | ||
| const std::string & | active_uvmap_name, | ||
| ReportList * | reports ) |
Create USDMaterial from Blender material.
| default_uv | used as the default UV set name sampled by the primvar reader shaders generated for image texture nodes that don't have an attached UVMap node. |
Definition at line 1696 of file usd_writer_material.cc.
References call_material_export_hooks(), create_usd_preview_surface_material(), create_usd_viewport_material(), blender::io::usd::USDExporterContext::export_params, blender::io::usd::USDExportParams::generate_materialx_network, blender::io::usd::USDExportParams::generate_preview_surface, and blender::io::usd::USDExporterContext::stage.
Referenced by blender::io::usd::USDAbstractWriter::ensure_usd_material_created(), and blender::io::hydra::MaterialData::init().
|
static |
Definition at line 1127 of file usd_writer_material.cc.
References create_usd_preview_shader(), usdtokens::file(), get_node_tex_image_color_space(), get_node_tex_image_wrap(), get_tex_image_asset_filepath(), bNode::name, SH_NODE_TEX_IMAGE, usdtokens::sourceColorSpace(), bNode::type_legacy, wrap(), usdtokens::wrapS(), and usdtokens::wrapT().
|
static |
Definition at line 1081 of file usd_writer_material.cc.
References blender::io::usd::USDExportParams::allow_unicode, blender::io::usd::USDExporterContext::export_params, make_safe_name(), name, usdtokens::preview_surface(), usdtokens::primvar_float2(), SH_NODE_BSDF_DIFFUSE, SH_NODE_BSDF_PRINCIPLED, SH_NODE_MAPPING, SH_NODE_TEX_COORD, SH_NODE_TEX_IMAGE, SH_NODE_UVMAP, blender::io::usd::USDExporterContext::stage, usdtokens::surface(), usdtokens::UsdTransform2d(), and usdtokens::uv_texture().
Referenced by create_transform2d_shader(), create_usd_preview_shader(), create_usd_preview_surface_material(), create_uvmap_shader(), and process_inputs().
|
static |
Definition at line 435 of file usd_writer_material.cc.
References CLOG_WARN, create_usd_preview_shader(), usdtokens::displacement(), find_bsdf_node(), find_displacement_node(), blender::io::usd::InputSpec::input_name, blender::io::usd::InputSpec::input_type, bNodeSocket::link, LOG, blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::lookup(), blender::bke::node_find_socket(), preview_surface_input_map(), process_inputs(), SHD_SPACE_OBJECT, and SOCK_IN.
Referenced by create_usd_material().
|
static |
Definition at line 541 of file usd_writer_material.cc.
References Material::b, usdtokens::diffuse_color(), Float, Material::g, Material::metallic, usdtokens::metallic(), usdtokens::preview_shader(), usdtokens::preview_surface(), Material::r, Material::roughness, usdtokens::roughness(), blender::io::usd::USDExporterContext::stage, and usdtokens::surface().
Referenced by create_usd_material().
|
static |
Definition at line 715 of file usd_writer_material.cc.
References create_transform2d_shader(), create_uvmap_shader(), blender::io::usd::USDExporterContext::export_params, blender::io::usd::USDExportParams::rename_uvmaps, SH_NODE_MAPPING, SH_NODE_UVMAP, usdtokens::st(), and traverse_channel().
Referenced by create_transform2d_shader(), and process_inputs().
|
static |
Definition at line 590 of file usd_writer_material.cc.
References blender::io::usd::USDExportParams::allow_unicode, BKE_reportf(), BLI_assert, create_usd_preview_shader(), blender::io::usd::USDExporterContext::export_params, bNodeLink::fromnode, make_safe_name(), bNode::name, blender::io::usd::USDExportParams::rename_uvmaps, usdtokens::result(), RPT_WARNING, SH_NODE_UVMAP, usdtokens::st(), bNode::storage, String, bNode::type_legacy, NodeShaderUVMap::uv_map, and usdtokens::varname().
Referenced by create_uv_input().
|
static |
Definition at line 69 of file usd_writer_abstract.cc.
References CLOG_WARN, IDP_ARRAY, IDP_DOUBLE, IDP_FLOAT, IDP_INT, IDProperty::len, LOG, IDProperty::name, set_vec_attrib(), IDProperty::subtype, and IDProperty::type.
Referenced by blender::io::usd::USDAbstractWriter::write_user_properties().
|
static |
Returns true if the number of curves or the number of curve points in each curve differ.
Definition at line 87 of file usd_reader_curve.cc.
References curves_topology_changed(), and blender::bke::CurvesGeometry::offsets().
Referenced by curves_topology_changed(), blender::io::usd::USDBasisCurvesReader::read_curve_sample(), and blender::io::usd::USDNurbsReader::read_curve_sample().
|
static |
Returns true if the number of curves or the number of curve points in each curve differ.
Definition at line 229 of file usd_reader_nurbs.cc.
References blender::bke::CurvesGeometry::offsets().
|
static |
Definition at line 71 of file usd_reader_stage.cc.
References blender::io::usd::USDPrimReader::decref(), and blender::io::usd::USDPrimReader::refcount().
Referenced by blender::io::usd::USDStageReader::clear_readers().
|
static |
Set compatibility flags if the Stage was written by Blender.
Definition at line 189 of file usd_reader_stage.cc.
References blender::io::usd::ImportSettings::blender_stage_version_prior_44.
Referenced by blender::io::usd::USDStageReader::USDStageReader().
|
static |
Definition at line 124 of file usd_reader_nurbs.cc.
References blender::Array< T, InlineBufferCapacity, Allocator >::as_span(), blender::Vector< T, InlineBufferCapacity, Allocator >::as_span(), blender::Span< T >::begin(), blender::bke::curves::nurbs::calculate_multiplicity_sequence(), blender::Span< T >::end(), blender::Vector< T, InlineBufferCapacity, Allocator >::first(), float, i, blender::Span< T >::index_range(), is_cyclic(), blender::Vector< T, InlineBufferCapacity, Allocator >::last(), NURBS_KNOT_MODE_BEZIER, NURBS_KNOT_MODE_CUSTOM, NURBS_KNOT_MODE_ENDPOINT, NURBS_KNOT_MODE_ENDPOINT_BEZIER, NURBS_KNOT_MODE_NORMAL, blender::Span< T >::size(), and blender::Vector< T, InlineBufferCapacity, Allocator >::size().
Referenced by blender::io::usd::USDNurbsReader::read_curve_sample().
| void blender::io::usd::dome_light_to_world_material | ( | const USDImportParams & | params, |
| Scene * | scene, | ||
| Main * | bmain, | ||
| const USDImportDomeLightData & | dome_light_data, | ||
| const pxr::UsdPrim & | prim, | ||
| const pxr::UsdTimeCode | time ) |
Definition at line 222 of file usd_light_convert.cc.
References append_node(), BKE_ntree_update_after_single_tree_change(), CLOG_WARN, blender::io::usd::USDImportDomeLightData::color, copy_v3_v3(), bNodeSocket::default_value, DEG_id_tag_update(), ELEM, blender::io::usd::USDImportDomeLightData::has_color, blender::io::usd::USDImportDomeLightData::has_tex, World::horr, bNode::id, bNodeTree::id, Image::id, World::id, ID_RECALC_NTREE_OUTPUT, blender::io::usd::USDImportDomeLightData::intensity, bNodeSocket::link, load_image(), LOG, M_PI, mult(), bNodeSocket::next, blender::bke::node_add_static_node(), blender::bke::node_find_socket(), blender::bke::node_remove_link(), blender::bke::node_set_active(), blender::bke::node_tree_add_tree_embedded(), NODE_VECTOR_MATH_MULTIPLY, World::nodetree, output, params, blender::io::usd::USDImportDomeLightData::pole_axis, SH_NODE_BACKGROUND, SH_NODE_MAPPING, SH_NODE_OUTPUT_WORLD, SH_NODE_TEX_COORD, SH_NODE_TEX_ENVIRONMENT, SH_NODE_VECTOR_MATH, SOCK_IN, blender::io::usd::USDImportDomeLightData::tex_path, bNodeSocketValueVector::value, Scene::world, and y.
Referenced by blender::io::usd::USDDomeLightReader::create_object().
|
static |
Definition at line 380 of file usd_writer_pointinstancer.cc.
References i.
Referenced by DuplicatePerInstanceAttribute().
|
static |
Definition at line 392 of file usd_writer_pointinstancer.cc.
References DuplicateArray().
| void blender::io::usd::ensure_blend_shape_skeleton | ( | pxr::UsdStageRefPtr | stage, |
| pxr::UsdPrim & | mesh_prim ) |
USD implementations expect that a mesh with blend shape targets be bound to a skeleton with an animation that provides the blend shape weights. If the given mesh is not already bound to a skeleton this function will create a dummy skeleton with a single joint and will bind it to the mesh. This is typically required if the source Blender mesh has shape keys but not an armature deformer.
This function will also create a skel animation prim as a child of the skeleton and will copy the weight time samples from a temporary primvar on the mesh to the animation prim.
| stage | The stage |
| mesh_prim | The USD mesh to which the skeleton will be bound |
Definition at line 80 of file usd_blend_shape_utils.cc.
References usdtokens::Anim(), CLOG_WARN, usdtokens::joint1(), LOG, usdtokens::Skel(), and TempBlendShapeWeightsPrimvarName.
Referenced by shape_key_export_chaser().
|
static |
Create the root Xform primitive, if the Root Prim path has been set in the export options. In the future, this function can be extended to author transforms and additional schema data (e.g., model Kind) on the root prim.
Definition at line 154 of file usd_capi_export.cc.
References get_meters_per_unit(), IO_AXIS_Y, IO_AXIS_Z, M_PI, mat3_from_axis_conversion(), mat3_to_eul(), mul_v3_fl(), params, and transpose_m3().
Referenced by export_to_stage().
| void blender::io::usd::ensure_usd_source_path_prop | ( | const std::string & | path, |
| ID * | id ) |
Add the given path as a custom property "usd_source_path" on the given id. If the path is a package-relative path (i.e., is relative to a USDZ archive) it will not be added a a property. If custom property "usd_source_path" already exists, this function does nothing.
| path | path to record as a custom property |
| id | id for which to create the custom property |
Definition at line 484 of file usd_asset_utils.cc.
References IDP_AddToGroup(), IDP_EnsureProperties(), IDP_GetPropertyFromGroup(), IDP_New(), IDP_STRING, IDP_STRING_SUB_UTF8, IDPropertyTemplate::len, IDPropertyTemplate::str, IDPropertyTemplate::string, and IDPropertyTemplate::subtype.
Referenced by load_image(), and blender::io::usd::USDMaterialReader::load_tex_image().
|
static |
Definition at line 405 of file usd_writer_pointinstancer.cc.
References i.
| void blender::io::usd::export_deform_verts | ( | const Mesh * | mesh, |
| const pxr::UsdSkelBindingAPI & | skel_api, | ||
| Span< StringRef > | bone_names ) |
Convert deform groups on the given mesh to USD joint index and weight attributes.
| stage | The source mesh with deform groups to export |
| skel_api | API for setting the attributes on the USD prim |
| bone_names | List of armature bone names corresponding to the deform groups |
Definition at line 1326 of file usd_skel_convert.cc.
References blender::Vector< T, InlineBufferCapacity, Allocator >::append(), BLI_assert, BLI_assert_unreachable, MDeformWeight::def_nr, MDeformVert::dw, i, blender::Span< T >::index_range(), blender::Vector< T, InlineBufferCapacity, Allocator >::is_empty(), LISTBASE_FOREACH, blender::Span< T >::size(), blender::Vector< T, InlineBufferCapacity, Allocator >::size(), MDeformVert::totweight, Mesh::vertex_group_names, Mesh::verts_num, and MDeformWeight::weight.
Referenced by blender::io::usd::USDMeshWriter::init_skinned_mesh().
|
static |
Definition at line 701 of file usd_capi_export.cc.
References BLI_delete(), BLI_exists(), data, DEG_graph_free(), export_endjob_usdz_cleanup(), G, perform_usdz_conversion(), report_job_duration(), and WM_locked_interface_set().
Referenced by USD_export().
|
static |
Definition at line 683 of file usd_capi_export.cc.
References BKE_tempdir_session, BLI_assert_msg, BLI_delete(), BLI_exists(), BLI_path_join, BLI_path_split_dir_part(), BLI_strcasecmp(), data, FILE_MAX, and SEP_STR.
Referenced by export_endjob().
|
static |
Definition at line 811 of file usd_writer_material.cc.
References BKE_image_format_from_imbuf(), BKE_imbuf_write_as(), BKE_reportf(), BLI_exists(), BLI_path_cmp_normalized(), BLI_path_join, CLOG_DEBUG, FILE_MAX, image_abs_path(), LOG, and RPT_WARNING.
Referenced by export_in_memory_texture().
|
static |
Definition at line 841 of file usd_writer_material.cc.
References BKE_image_acquire_ibuf(), BKE_image_get_tile_strformat(), BKE_image_release_ibuf(), BKE_image_set_filepath_from_tile_number(), BLI_path_split_file_part(), export_in_memory_imbuf(), FILE_MAX, Image::filepath, get_absolute_path(), get_in_memory_texture_filename(), IMA_SRC_TILED, image_abs_path(), LISTBASE_FOREACH, MEM_freeN(), Image::source, STRNCPY(), ImageUser::tile, tile, Image::tiles, and UDIM_TILE_FORMAT_NONE.
Referenced by export_texture().
|
static |
Definition at line 900 of file usd_writer_material.cc.
References asset_exists(), BKE_ftype_to_imtype(), BKE_image_path_ext_from_imtype_ensure(), BLI_path_join, BLI_path_split_file_part(), BLI_string_replace_char(), BLI_strncpy(), CLOG_DEBUG, FILE_MAX, Image::id, ID_BLEND_PATH_FROM_GLOBAL, IMA_SRC_TILED, image_abs_path(), IMB_FTYPE_NONE, IMB_test_image_type_from_memory(), len, LISTBASE_FOREACH, LOG, ID::name, Image::packedfiles, paths_equal(), pf, SNPRINTF, Image::source, STRNCPY(), STRNCPY_RLEN, USD_path_abs(), and write_to_path().
Referenced by export_texture().
|
static |
Perform validation of export parameter settings.
Definition at line 137 of file usd_capi_export.cc.
References params, and prim_path_valid().
Referenced by USD_export().
|
static |
Definition at line 611 of file usd_capi_export.cc.
References BKE_reportf(), BKE_scene_graph_update_tagged(), collect_point_instancer_prototypes_and_set_extent(), data, wmJobWorkerStatus::do_update, export_to_stage(), G, wmJobWorkerStatus::progress, wmJobWorkerStatus::reports, RPT_ERROR, and WM_locked_interface_set().
Referenced by USD_export().
| void blender::io::usd::export_texture | ( | bNode * | node, |
| const pxr::UsdStageRefPtr | stage, | ||
| const bool | allow_overwrite, | ||
| ReportList * | reports ) |
Definition at line 1418 of file usd_writer_material.cc.
References ELEM, export_texture(), bNode::id, SH_NODE_TEX_ENVIRONMENT, SH_NODE_TEX_IMAGE, and bNode::type_legacy.
|
static |
Definition at line 1400 of file usd_writer_material.cc.
References blender::io::usd::USDExporterContext::export_params, export_texture(), blender::io::usd::USDExportParams::overwrite_textures, wmJobWorkerStatus::reports, blender::io::usd::USDExporterContext::stage, and blender::io::usd::USDExportParams::worker_status.
Referenced by export_texture(), export_texture(), blender::io::usd::USDMaterialExportContext::export_texture(), process_inputs(), and world_material_to_dome_light().
| void blender::io::usd::export_texture | ( | Image * | ima, |
| const pxr::UsdStageRefPtr | stage, | ||
| const bool | allow_overwrite, | ||
| ReportList * | reports ) |
Definition at line 1373 of file usd_writer_material.cc.
References CLOG_ERROR, copy_single_file(), copy_tiled_textures(), export_in_memory_texture(), export_packed_texture(), get_export_textures_dir(), IMA_SRC_TILED, is_in_memory_texture(), is_packed_texture(), LOG, and Image::source.
| pxr::UsdStageRefPtr blender::io::usd::export_to_stage | ( | const USDExportParams & | params, |
| Depsgraph * | depsgraph, | ||
| const char * | filepath ) |
Definition at line 472 of file usd_capi_export.cc.
References BKE_blender_version_string(), BKE_scene_graph_update_for_newframe(), BKE_scene_graph_update_tagged(), call_export_hooks(), RenderData::cfra, DEG_get_bmain(), DEG_get_input_scene(), depsgraph, blender::io::SubdivModifierDisabler::disable_modifiers(), wmJobWorkerStatus::do_update, RenderData::efra, ELEM, ensure_root_prim(), G, get_meters_per_unit(), IO_AXIS_X, IO_AXIS_Y, blender::io::AbstractHierarchyIterator::iterate_and_write(), params, process_scene_graph_instances(), blender::io::usd::USDHierarchyIterator::process_usd_skel(), wmJobWorkerStatus::progress, Scene::r, register_hook_converters(), blender::io::AbstractHierarchyIterator::release_writers(), UnitSettings::scale_length, blender::io::usd::USDHierarchyIterator::set_export_frame(), RenderData::sfra, wmJobWorkerStatus::stop, RenderData::subframe, Scene::unit, USD_SUBDIV_BEST_MATCH, USD_SUBDIV_IGNORE, world_material_to_dome_light(), x, y, and z().
Referenced by export_startjob(), and blender::io::hydra::USDSceneDelegate::populate().
Definition at line 1053 of file usd_writer_material.cc.
References ELEM, Material::nodetree, SH_NODE_BSDF_DIFFUSE, and SH_NODE_BSDF_PRINCIPLED.
Referenced by create_usd_preview_surface_material().
Returns the first occurrence of a scalar Displacement node found in the given material's node tree. Vector Displacement is not supported in the #UsdPreviewSurface. Returns null if no instance of either type was found.
Definition at line 1069 of file usd_writer_material.cc.
References Material::nodetree, and SH_NODE_DISPLACEMENT.
Referenced by create_usd_preview_surface_material().
| Material * blender::io::usd::find_existing_material | ( | const pxr::SdfPath & | usd_mat_path, |
| const USDImportParams & | params, | ||
| const blender::Map< std::string, Material * > & | mat_map, | ||
| const blender::Map< pxr::SdfPath, Material * > & | usd_path_to_mat ) |
Returns an existing Blender material that corresponds to the USD material with the given path. Returns null if no such material exists.
| mat_map | Map a material name to a Blender material. Note that the name key might be the Blender material name modified to be a valid USD identifier, to match the material names in the imported USD. |
| usd_path_to_mat | Map a USD material path to the imported Blender material. |
The usd_path_to_mat is needed to determine the name of the Blender material imported from a USD path in the case when a unique name was generated for the material due to a name collision.
Definition at line 1569 of file usd_reader_material.cc.
References blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::lookup_default(), params, and USD_MTL_NAME_COLLISION_MAKE_UNIQUE.
Referenced by blender::io::usd::utils::assign_materials(), and blender::io::usd::USDStageReader::import_all_materials().
|
static |
Definition at line 238 of file usd_export_test.cc.
Referenced by TEST_F().
|
static |
Find the lowest level of Blender generated roots so that round tripping an export can be more invisible
Definition at line 145 of file usd_reader_stage.cc.
References blender::io::usd::ImportSettings::skip_prefix.
Referenced by blender::io::usd::USDStageReader::USDStageReader().
|
static |
Definition at line 68 of file usd_capi_import.cc.
References BLI_addtail(), gather_objects_paths(), MEM_callocN(), CacheObjectPath::path, and STRNCPY().
Referenced by gather_objects_paths(), and USD_create_handle().
|
static |
Definition at line 968 of file usd_writer_material.cc.
References BLI_path_abs(), BLI_path_normalize(), BLI_strncpy(), FILE_MAX, Image::filepath, Image::id, and ID_BLEND_PATH_FROM_GLOBAL.
Referenced by copy_single_file(), copy_tiled_textures(), export_in_memory_texture(), and get_tex_image_asset_filepath().
| void blender::io::usd::get_armature_bone_names | ( | const Object * | ob_arm, |
| bool | use_deform, | ||
| Vector< StringRef > & | r_names ) |
Return in 'r_names' the names of the given armature object's bones.
| ob_arm | The armature object |
| use_deform | If true, use only deform bone names, including their parents, to match armature export joint indices |
| r_names | The returned list of bone names |
Definition at line 108 of file usd_armature_utils.cc.
References blender::Vector< T, InlineBufferCapacity, Allocator >::append(), blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::contains(), init_deform_bones_map(), Bone::name, and visit_bones().
Referenced by blender::io::usd::USDMeshWriter::init_skinned_mesh().
|
static |
Definition at line 88 of file usd_armature_utils.cc.
References depsgraph, eModifierType_Armature, get_enabled_modifier(), and mod.
Referenced by get_armature_modifier_obj(), and is_armature_modifier_bone_name().
| const Object * blender::io::usd::get_armature_modifier_obj | ( | const Object & | obj, |
| const Depsgraph * | depsgraph ) |
If the given object has an enabled armature modifier, return the armature object bound to the modifier.
| Object to check for the modifier | |
| depsgraph | The dependency graph where the object was evaluated |
Definition at line 168 of file usd_armature_utils.cc.
References depsgraph, get_armature_modifier(), and mod.
Referenced by blender::io::usd::USDMeshWriter::init_skinned_mesh(), and skinned_mesh_export_chaser().
|
static |
Definition at line 62 of file usd_asset_utils.cc.
References BKE_reportf(), BLI_path_split_file_part(), FILE_MAXFILE, RPT_WARNING, and split().
Referenced by copy_asset_to_directory(), and copy_udim_asset_to_directory().
|
static |
If the given attribute has an authored value, return its value in the r_value out parameter.
We wish to support older UsdLux APIs in older versions of USD. For example, in previous versions of the API, shader input attributes did not have the "inputs:" prefix. One can provide the older input attribute name in the 'fallback_attr_name' argument, and that attribute will be queried if 'attr' doesn't exist or doesn't have an authored value.
Definition at line 33 of file usd_reader_domelight.cc.
References T.
Referenced by get_color(), get_intensity(), get_pole_axis(), and get_tex_path().
| pxr::VtFloatArray blender::io::usd::get_blendshape_weights | ( | const Key * | key | ) |
Return the current weight values of the given key.
| key | The key whose values will be queried |
Definition at line 286 of file usd_blend_shape_utils.cc.
References BLI_assert, Key::block, ListBase::first, and LISTBASE_FOREACH.
Referenced by blender::io::usd::USDMeshWriter::add_shape_key_weights_sample().
|
static |
Definition at line 77 of file usd_reader_domelight.cc.
References usdtokens::color(), get_authored_value(), and T.
Referenced by blender::io::usd::USDDomeLightReader::create_object().
|
static |
Definition at line 96 of file usd_reader_curve.cc.
References CURVE_TYPE_BEZIER, CURVE_TYPE_CATMULL_ROM, CURVE_TYPE_NURBS, CURVE_TYPE_POLY, and get_curve_type().
Referenced by get_curve_type(), and blender::io::usd::USDBasisCurvesReader::read_curve_sample().
|
static |
Definition at line 88 of file usd_writer_curves.cc.
References BKE_report(), is_cyclic(), and RPT_WARNING.
Referenced by populate_curve_props(), and populate_curve_props_for_bezier().
|
static |
Definition at line 524 of file usd_writer_mesh.cc.
References Geometry::attributes, blender::io::usd::USDMeshData::crease_lengths, blender::io::usd::USDMeshData::crease_sharpnesses, blender::bke::subdiv::crease_to_sharpness(), blender::io::usd::USDMeshData::crease_vertex_indices, blender::bke::Edge, i, blender::Span< T >::index_range(), and blender::bke::AttributeAccessor::lookup().
| const ModifierData * blender::io::usd::get_enabled_modifier | ( | const Object & | obj, |
| ModifierType | type, | ||
| const Depsgraph * | depsgraph ) |
Return the modifier of the given type enabled for the given dependency graph's evaluation mode (viewport or render).
| obj | Object to query for the modifier |
| depsgraph | The dependency graph where the object was evaluated |
Definition at line 63 of file usd_armature_utils.cc.
References BKE_modifier_is_enabled(), BLI_assert, DEG_get_input_scene(), DEG_get_mode(), depsgraph, and LISTBASE_FOREACH.
Referenced by can_export_skinned_mesh(), and get_armature_modifier().
| std::string blender::io::usd::get_export_textures_dir | ( | const pxr::UsdStageRefPtr | stage | ) |
Invoke the USD asset resolver to return an identifier for a 'textures' directory which is a sibling of the given stage. The resulting path is created by resolving the './textures' relative path with the stage's root layer path as the anchor. If the parent of the stage root layer path resolves to a file system path, the textures directory will be created, if it doesn't exist.
| stage | The stage whose root layer is a sibling of the 'textures' directory |
Definition at line 353 of file usd_asset_utils.cc.
References BLI_dir_create_recursive(), parent_dir_exists_on_file_system(), RPT_WARNING, and WM_global_reportf().
Referenced by export_texture().
| std::string blender::io::usd::get_image_cache_file | ( | const std::string & | file_name, |
| bool | mkdir ) |
Definition at line 348 of file usd_capi_export.cc.
References BLI_dir_create_recursive(), BLI_path_join, FILE_MAX, and image_cache_file_path().
Referenced by cache_image_color(), and blender::io::hydra::cache_image_file().
|
static |
Definition at line 766 of file usd_writer_material.cc.
References BKE_image_acquire_ibuf(), BKE_image_format_from_imbuf(), BKE_image_has_packedfile(), BKE_image_is_dirty(), BKE_image_is_filename_tokenized(), BKE_image_path_ext_from_imformat_ensure(), BKE_image_release_ibuf(), BLI_path_split_file_part(), BLI_string_split_suffix(), FILE_MAX, Image::filepath, has_generated_tiles(), Image::id, IMA_SRC_TILED, ID::name, SNPRINTF, Image::source, and STRNCPY().
Referenced by export_in_memory_texture(), and get_tex_image_asset_filepath().
|
static |
Definition at line 55 of file usd_reader_domelight.cc.
References get_authored_value(), usdtokens::intensity(), and T.
Referenced by blender::io::usd::USDDomeLightReader::create_object().
|
static |
Definition at line 57 of file usd_writer_mesh.cc.
References BLI_assert, DAG_EVAL_RENDER, eModifierMode_Realtime, eModifierMode_Render, eModifierType_Subsurf, ModifierData::mode, and ModifierData::type.
Referenced by blender::io::usd::USDGenericMeshWriter::do_write().
|
static |
Definition at line 499 of file usd_writer_mesh.cc.
References Geometry::attributes, blender::Span< T >::begin(), blender::offset_indices::copy_group_sizes(), blender::Span< T >::end(), blender::bke::Face, blender::io::usd::USDMeshData::face_groups, blender::io::usd::USDMeshData::face_indices, blender::io::usd::USDMeshData::face_vertex_counts, faces, Mesh::faces_num, i, blender::Span< T >::index_range(), blender::VArrayCommon< T >::is_single(), blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::lookup_or_add_default(), blender::bke::AttributeAccessor::lookup_or_default(), and Mesh::totcol.
Return the shape key on the given mesh object.
| obj | The mesh object |
Definition at line 173 of file usd_blend_shape_utils.cc.
References BLI_assert, Mesh::key, and OB_MESH.
Referenced by blender::io::usd::USDMeshWriter::add_shape_key_weights_sample(), create_blend_shapes(), and is_mesh_with_shape_keys().
| double blender::io::usd::get_meters_per_unit | ( | const USDExportParams & | params | ) |
Definition at line 861 of file usd_capi_export.cc.
References params, result, USD_SCENE_UNITS_CENTIMETERS, USD_SCENE_UNITS_CUSTOM, USD_SCENE_UNITS_FEET, USD_SCENE_UNITS_INCHES, USD_SCENE_UNITS_KILOMETERS, USD_SCENE_UNITS_MILLIMETERS, and USD_SCENE_UNITS_YARDS.
Referenced by blender::io::usd::USDCameraWriter::do_write(), blender::io::usd::USDTransformWriter::do_write(), ensure_root_prim(), and export_to_stage().
|
static |
Definition at line 976 of file usd_writer_material.cc.
References Image::colorspace_settings, bNode::id, IMB_colormanagement_space_name_is_data(), IMB_colormanagement_space_name_is_srgb(), ColorManagedColorspaceSettings::name, usdtokens::raw(), and usdtokens::sRGB().
Referenced by create_usd_preview_shader().
|
static |
Definition at line 994 of file usd_writer_material.cc.
References usdtokens::black(), usdtokens::clamp(), NodeTexImage::extension, usdtokens::mirror(), usdtokens::repeat(), SH_NODE_TEX_IMAGE, SHD_IMAGE_EXTENSION_CLIP, SHD_IMAGE_EXTENSION_EXTEND, SHD_IMAGE_EXTENSION_MIRROR, SHD_IMAGE_EXTENSION_REPEAT, bNode::storage, bNode::type_legacy, and wrap().
Referenced by create_usd_preview_shader().
|
static |
Definition at line 84 of file usd_reader_domelight.cc.
References get_authored_value().
Referenced by blender::io::usd::USDDomeLightReader::create_object().
|
static |
Definition at line 493 of file usd_writer_mesh.cc.
References blender::Span< T >::begin(), blender::Span< T >::end(), and blender::io::usd::USDMeshData::points.
| pxr::VtArray< T > blender::io::usd::get_primvar_array | ( | const pxr::UsdGeomPrimvar & | primvar, |
| const pxr::UsdTimeCode | time ) |
Definition at line 195 of file usd_attribute_utils.hh.
Referenced by copy_primvar_to_blender_buffer(), and read_face_display_color().
| std::string blender::io::usd::get_relative_path | ( | const std::string & | path, |
| const std::string & | anchor ) |
Return the given path as a relative path with respect to the given anchor path.
| path | path to make relative with respect to the anchor path |
| anchor | the anchor path |
Definition at line 539 of file usd_asset_utils.cc.
References BLI_is_file(), BLI_path_is_rel(), BLI_path_rel(), BLI_path_split_dir_part(), BLI_string_replace_char(), FILE_MAX, and STRNCPY().
Referenced by get_tex_image_asset_filepath().
If the given object is a mesh with shape keys, return a copy of the object's pre-modified mesh with its verts in the shape key basis positions. The returned mesh must be freed by the caller.
| obj | The mesh object with shape keys |
Definition at line 437 of file usd_blend_shape_utils.cc.
References BKE_keyblock_convert_to_mesh(), BKE_mesh_copy_for_eval(), BKE_object_get_pre_modified_mesh(), Key::block, CLOG_WARN, ListBase::first, Mesh::key, LOG, OB_MESH, KeyBlock::totelem, and Mesh::verts_num.
Referenced by blender::io::usd::USDMeshWriter::get_export_mesh().
| std::string blender::io::usd::get_tex_image_asset_filepath | ( | bNode * | node, |
| const pxr::UsdStageRefPtr | stage, | ||
| const USDExportParams & | export_params ) |
Gets an asset path for the given texture image / node. The resulting path may be absolute, relative to the USD file, or in a 'textures' directory in the same directory as the USD file, depending on the export parameters. The filename is typically the image filepath but might also be automatically generated based on the image name for in-memory textures when exporting textures. This function may return an empty string if the image does not have a filepath assigned and no asset path could be determined.
Definition at line 1274 of file usd_writer_material.cc.
References get_tex_image_asset_filepath(), and bNode::id.
|
static |
Definition at line 1173 of file usd_writer_material.cc.
References FILE_MAX, and get_absolute_path().
| std::string blender::io::usd::get_tex_image_asset_filepath | ( | const std::string & | asset_path, |
| const std::string & | stage_path, | ||
| const USDExportParams & | export_params ) |
Return a USD asset path referencing the given texture file. The resulting path may be absolute, relative to the USD file, or in a 'textures' directory in the same directory as the USD file, depending on the export parameters.
Definition at line 1225 of file usd_writer_material.cc.
References BLI_path_join, BLI_path_split_dir_part(), BLI_path_split_file_part(), BLI_string_replace_char(), blender::io::usd::USDExportParams::export_textures, FILE_MAX, get_relative_path(), and blender::io::usd::USDExportParams::relative_paths.
|
static |
Definition at line 1181 of file usd_writer_material.cc.
References blender::io::usd::USDExporterContext::export_params, get_tex_image_asset_filepath(), and blender::io::usd::USDExporterContext::stage.
Referenced by create_usd_preview_shader(), blender::io::usd::USDMaterialExportContext::export_texture(), get_tex_image_asset_filepath(), get_tex_image_asset_filepath(), get_tex_image_asset_filepath(), and world_material_to_dome_light().
| std::string blender::io::usd::get_tex_image_asset_filepath | ( | Image * | ima, |
| const pxr::UsdStageRefPtr | stage, | ||
| const USDExportParams & | export_params ) |
Definition at line 1188 of file usd_writer_material.cc.
References BLI_path_join, blender::io::usd::USDExportParams::export_textures, FILE_MAX, Image::filepath, get_in_memory_texture_filename(), get_tex_image_asset_filepath(), get_usd_source_path(), Image::id, is_in_memory_texture(), is_packed_texture(), and blender::io::usd::USDExportParams::use_original_paths.
|
static |
Definition at line 64 of file usd_reader_domelight.cc.
References get_authored_value(), T, and usdtokens::texture_file().
Referenced by blender::io::usd::USDDomeLightReader::create_object().
| pxr::SdfPath blender::io::usd::get_unique_path | ( | pxr::UsdStageRefPtr | stage, |
| const std::string & | path ) |
Definition at line 61 of file usd_utils.cc.
Referenced by process_scene_graph_instances(), and world_material_to_dome_light().
|
static |
Definition at line 238 of file usd_reader_nurbs.cc.
References blender::IndexRange::size(), and blender::IndexRange::take_front().
Referenced by blender::io::usd::USDNurbsReader::read_curve_sample().
|
static |
Definition at line 485 of file usd_capi_import.cc.
References blender::io::usd::USDPrimReader::prim(), and RPT_.
Referenced by USD_mesh_topology_changed(), and USD_read_geometry().
| std::string blender::io::usd::get_usd_source_path | ( | ID * | id | ) |
Return the value of the "usd_source_path" custom property on the given id. Return an empty string if the property does not exist.
Definition at line 519 of file usd_asset_utils.cc.
References IDProperty::data, IDP_EnsureProperties(), IDP_GetPropertyFromGroup(), and IDPropertyData::pointer.
Referenced by get_tex_image_asset_filepath().
|
static |
Definition at line 546 of file usd_writer_mesh.cc.
References Geometry::attributes, blender::io::usd::USDMeshData::corner_indices, blender::io::usd::USDMeshData::corner_sharpnesses, blender::bke::subdiv::crease_to_sharpness(), i, blender::Span< T >::index_range(), blender::bke::AttributeAccessor::lookup(), and blender::bke::Point.
|
static |
Definition at line 58 of file usd_capi_import.cc.
Referenced by USD_create_handle().
|
static |
Definition at line 345 of file usd_hook.cc.
References BKE_reportf(), blender::io::usd::USDHook::name, and RPT_ERROR.
Referenced by blender::io::usd::USDHookInvoker::call().
|
static |
Definition at line 742 of file usd_writer_material.cc.
References IMA_GEN_TILE, LISTBASE_FOREACH, tile, and Image::tiles.
Referenced by get_in_memory_texture_filename(), and is_in_memory_texture().
|
static |
Definition at line 33 of file usd_writer_volume.cc.
References ELEM, eModifierType_MeshToVolume, eModifierType_Nodes, eModifierType_VolumeDisplace, ListBase::first, Object::modifiers, ModifierData::next, and ModifierData::type.
Referenced by blender::io::usd::USDVolumeWriter::check_is_animated(), and blender::io::usd::USDVolumeWriter::do_write().
| bool blender::io::usd::have_material_import_hook | ( | pxr::UsdStageRefPtr | stage, |
| const pxr::UsdShadeMaterial & | usd_material, | ||
| const USDImportParams & | import_params, | ||
| ReportList * | reports ) |
Returns true if there is a registered USDHook class that can convert the given material.
Definition at line 653 of file usd_hook.cc.
References blender::io::usd::USDHookInvoker::call(), hook_list(), and blender::io::usd::MaterialImportPollInvoker::result().
Referenced by blender::io::usd::USDStageReader::find_material_import_hook_sources().
|
static |
Definition at line 65 of file usd_hook.cc.
Referenced by blender::io::usd::USDHookInvoker::call(), call_export_hooks(), call_import_hooks(), call_material_export_hooks(), call_material_import_hooks(), have_material_import_hook(), register_hook_converters(), USD_find_hook_name(), USD_register_hook(), and USD_unregister_hook().
| std::string blender::io::usd::image_cache_file_path | ( | ) |
Definition at line 341 of file usd_capi_export.cc.
References BKE_tempdir_session, BLI_path_join, and FILE_MAX.
Referenced by blender::io::hydra::cache_or_get_image_file(), get_image_cache_file(), and blender::io::hydra::MaterialData::init().
| std::string blender::io::usd::import_asset | ( | const std::string & | src, |
| const char * | import_dir, | ||
| eUSDTexNameCollisionMode | name_collision_mode, | ||
| ReportList * | reports ) |
Invoke the USD asset resolver to copy an asset to a destination directory and return the path to the copied file. This function may be used to copy textures from a USDZ archive to a directory on disk. The destination directory will be created if it doesn't already exist. If the copy was unsuccessful, this function will log an error and return the original source file path unmodified.
| src | source path of the asset to import |
| import_dir | path to the destination directory |
| name_collision_mode | behavior when a file of the same name already exists |
| reports | the storage for potential warning or error reports (generated using BKE_report API). |
Definition at line 278 of file usd_asset_utils.cc.
References BKE_main_blendfile_path_from_global(), BKE_reportf(), BLI_dir_create_recursive(), BLI_path_abs(), BLI_path_is_rel(), BLI_path_normalize(), copy_asset_to_directory(), copy_udim_asset_to_directory(), FILE_MAX, FILE_MAXDIR, is_udim_path(), RPT_ERROR, and STRNCPY().
Referenced by blender::io::usd::USDMaterialImportContext::import_texture(), load_image(), and blender::io::usd::USDMaterialReader::load_tex_image().
| void blender::io::usd::import_blendshapes | ( | Main * | bmain, |
| Object * | mesh_obj, | ||
| const pxr::UsdPrim & | prim, | ||
| ReportList * | reports, | ||
| bool | import_anim = true ) |
This file contains utilities for converting between UsdSkel data and Blender armatures and shape keys. The following is a reference on the UsdSkel API:
https://openusd.org/23.05/api/usd_skel_page_front.html Import USD blend shapes from a USD primitive as shape keys on a mesh object. Optionally, if the blend shapes have animating weights, the time-sampled weights will be imported as shape key animation curves. If the USD primitive does not have blend shape targets defined, this function is a no-op.
| bmain | Main pointer |
| mesh_obj | Mesh object to which imported shape keys will be added |
| prim | The USD primitive from which blend-shapes will be imported |
| reports | the storage for potential warning or error reports (generated using BKE_report API). |
| import_anim | Whether to import time-sampled weights as shape key animation curves |
Definition at line 359 of file usd_skel_convert.cc.
References blender::animrig::action_channelbag_ensure(), blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add(), add_v3_v3(), blender::Vector< T, InlineBufferCapacity, Allocator >::append(), blender::Vector< T, InlineBufferCapacity, Allocator >::begin(), BKE_fcurve_handles_recalc(), BKE_key_add(), BKE_keyblock_add(), BKE_keyblock_convert_from_mesh(), BKE_reportf(), CLOG_WARN, blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::contains(), create_fcurve(), data, KeyBlock::data, Object::data, blender::Vector< T, InlineBufferCapacity, Allocator >::end(), i, Key::id, blender::animrig::id_action_ensure(), Mesh::key, KEY_RELATIVE, LOG, OB_MESH, blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::reserve(), blender::Vector< T, InlineBufferCapacity, Allocator >::reserve(), RPT_WARNING, set_fcurve_sample(), blender::Span< T >::size(), blender::Vector< T, InlineBufferCapacity, Allocator >::size(), KeyBlock::totelem, Key::type, and Object::type.
Referenced by blender::io::usd::USDMeshReader::read_object_data().
|
static |
Definition at line 310 of file usd_capi_import.cc.
References BKE_collection_object_add(), BKE_id_free_us(), BKE_layer_collection_get_active(), BKE_report(), BKE_view_layer_base_deselect_all(), BKE_view_layer_base_find(), BKE_view_layer_base_select_and_set_active(), BKE_view_layer_synced_ensure(), call_import_hooks(), LayerCollection::collection, data, DEG_id_tag_update(), DEG_id_tag_update_ex(), DEG_relations_tag_update(), ED_undo_push(), Collection::id, Object::id, ID_RECALC_ANIMATION, ID_RECALC_BASE_FLAGS, ID_RECALC_GEOMETRY, ID_RECALC_SYNC_TO_EVAL, ID_RECALC_TRANSFORM, NA_ADDED, NC_ID, report_job_duration(), RPT_ERROR, USD_ARCHIVE_FAIL, USD_NO_ERROR, WM_locked_interface_set(), and WM_main_add_notifier().
Referenced by USD_import().
|
static |
| void blender::io::usd::import_mesh_skel_bindings | ( | Object * | mesh_obj, |
| const pxr::UsdPrim & | prim, | ||
| ReportList * | reports ) |
Import skinning data from a source USD prim as deform groups and an armature modifier on the given mesh object. If the USD prim does not have a skeleton binding defined, this function is a no-op.
| mesh_obj | Mesh object to which an armature modifier will be added |
| prim | The USD primitive from which skinning data will be imported |
| reports | the storage for potential warning or error reports (generated using BKE_report API). |
Definition at line 1013 of file usd_skel_convert.cc.
References blender::Vector< T, InlineBufferCapacity, Allocator >::append(), blender::Vector< T, InlineBufferCapacity, Allocator >::begin(), BKE_modifier_new(), BKE_modifiers_findby_type(), BKE_modifiers_persistent_uid_init(), BKE_object_defgroup_add_name(), BKE_object_defgroup_data_create(), BKE_object_defgroup_find_name(), BKE_reportf(), BLI_addtail(), CLOG_ERROR, Object::data, ELEM, eModifierType_Armature, blender::Vector< T, InlineBufferCapacity, Allocator >::end(), i, Object::id, interp(), blender::Vector< T, InlineBufferCapacity, Allocator >::is_empty(), LOG, Object::modifiers, ID::name, OB_MESH, RPT_WARNING, Object::type, Mesh::verts_num, blender::ed::object::vgroup_vert_add(), w(), and WEIGHT_REPLACE.
Referenced by blender::io::usd::USDMeshReader::read_object_data().
| void blender::io::usd::import_skeleton | ( | Main * | bmain, |
| Object * | arm_obj, | ||
| const pxr::UsdSkelSkeleton & | skel, | ||
| ReportList * | reports, | ||
| bool | import_anim = true ) |
Import the given USD skeleton as an armature object. Optionally, if the skeleton has an animation defined, the time sampled joint transforms will be imported as bone animation curves.
| bmain | Main pointer |
| arm_obj | Armature object to which the bone hierarchy will be added |
| skel | The USD skeleton from which bones and animation will be imported |
| reports | the storage for potential warning or error reports (generated using BKE_report API). |
| import_anim | Whether to import time-sampled joint transforms as bone animation curves |
Definition at line 726 of file usd_skel_convert.cc.
References blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add(), blender::Vector< T, InlineBufferCapacity, Allocator >::append(), BKE_reportf(), BlenderBoneLengths(), CLOG_WARN, copy_v3_v3(), Object::data, ED_armature_ebone_add(), ED_armature_ebone_from_mat4(), ED_armature_edit_free(), ED_armature_from_edit(), ED_armature_to_edit(), EditBone::head, i, LOG, EditBone::name, OB_ARMATURE, blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::reserve(), RPT_WARNING, set_rest_pose(), blender::Vector< T, InlineBufferCapacity, Allocator >::size(), EditBone::tail, and Object::type.
Referenced by blender::io::usd::USDSkeletonReader::read_object_data().
|
static |
Definition at line 124 of file usd_capi_import.cc.
References BKE_cachefile_add(), BKE_collection_add(), BKE_layer_collection_first_from_scene_collection(), BKE_main_blendfile_path_from_global(), BKE_reportf(), BKE_view_layer_synced_ensure(), BLI_path_abs(), BLI_path_basename(), BLI_path_is_rel(), BLI_path_rel(), BLI_path_to_display_name(), blender::io::usd::USDStageReader::collect_readers(), blender::io::usd::USDDomeLightReader::create_object(), data, DEG_id_tag_update(), DEG_relations_tag_update(), wmJobWorkerStatus::do_update, blender::io::usd::USDStageReader::dome_light_readers(), blender::io::usd::USDStageReader::find_material_import_hook_sources(), float, G, i, Collection::id, ID_RECALC_SYNC_TO_EVAL, id_us_min(), blender::io::usd::USDStageReader::import_all_materials(), MAX_ID_NAME, blender::io::usd::USDPrimReader::object(), blender::io::usd::USDPrimReader::parent(), Object::parent, blender::io::usd::USDStageReader::process_armature_modifiers(), wmJobWorkerStatus::progress, blender::io::usd::USDStageReader::readers(), register_hook_converters(), wmJobWorkerStatus::reports, RPT_ERROR, size(), blender::io::usd::USDStageReader::sort_readers(), wmJobWorkerStatus::stop, STRNCPY(), USD_ARCHIVE_FAIL, and WM_locked_interface_set().
Referenced by USD_import().
| void blender::io::usd::init_deform_bones_map | ( | const Object * | obj, |
| Map< StringRef, const Bone * > * | deform_map ) |
Initialize the deform bones map:
Definition at line 194 of file usd_armature_utils.cc.
References blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add(), BLI_assert, BONE_NO_DEFORM, blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::clear(), Bone::flag, blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::items(), Bone::name, Bone::parent, and visit_bones().
Referenced by blender::io::usd::USDArmatureWriter::do_write(), and get_armature_bone_names().
| bool blender::io::usd::is_armature_modifier_bone_name | ( | const Object & | obj, |
| StringRefNull | name, | ||
| const Depsgraph * | depsgraph ) |
If the given object has an armature modifier, query whether the given name matches the name of a bone on the armature referenced by the modifier.
| obj | Object to query for the modifier |
| name | Name to check |
| depsgraph | The dependency graph where the object was evaluated |
Definition at line 174 of file usd_armature_utils.cc.
References BKE_armature_find_bone_name(), Object::data, depsgraph, get_armature_modifier(), name, and ArmatureModifierData::object.
|
static |
|
static |
Definition at line 754 of file usd_writer_material.cc.
References BKE_image_is_dirty(), and has_generated_tiles().
Referenced by export_texture(), and get_tex_image_asset_filepath().
| bool blender::io::usd::is_mesh_with_shape_keys | ( | const Object * | obj | ) |
Query whether the given object is a mesh with relative shape keys.
| obj | The mesh object |
Definition at line 186 of file usd_blend_shape_utils.cc.
References get_mesh_shape_key(), KEY_RELATIVE, Key::totkey, and Key::type.
Referenced by blender::io::usd::USDMeshWriter::set_skel_export_flags().
|
static |
Definition at line 759 of file usd_writer_material.cc.
References BKE_image_has_packedfile().
Referenced by export_texture(), and get_tex_image_asset_filepath().
| bool blender::io::usd::is_udim_path | ( | const std::string & | path | ) |
Check if the given path contains a UDIM token.
| path | the path to check |
Definition at line 347 of file usd_asset_utils.cc.
References UDIM_PATTERN, and UDIM_PATTERN2.
Referenced by import_asset(), blender::io::usd::USDMaterialReader::load_tex_image(), and should_import_asset().
|
static |
Load the image at the given path. Handle packing and copying based in the import options. Return the opened image on success or a nullptr on failure.
Definition at line 76 of file usd_light_convert.cc.
References BKE_image_has_packedfile(), BKE_image_load_exists(), BKE_image_packfiles(), BLI_delete(), BLI_is_dir(), ensure_usd_source_path_prop(), Image::id, ID_BLEND_PATH, import_asset(), params, should_import_asset(), temp_textures_dir(), USD_TEX_IMPORT_NONE, USD_TEX_IMPORT_PACK, and USD_TEX_NAME_COLLISION_OVERWRITE.
Referenced by dome_light_to_world_material().
| std::string blender::io::usd::make_safe_name | ( | StringRef | name, |
| bool | allow_unicode ) |
Return a valid USD identifier based on the passed in string.
| name | Incoming name to sanitize |
| allow_unicode | Whether to allow unicode encoded characters in the USD identifier |
Definition at line 18 of file usd_utils.cc.
References BLI_str_utf8_from_unicode(), blender::MutableSpan< T >::copy_from(), blender::MutableSpan< T >::data(), name, blender::MutableSpan< T >::size(), and blender::MutableSpan< T >::take_back().
Referenced by build_usd_joint_path(), create_blend_shapes(), create_primvar_reader_shader(), create_usd_preview_shader(), create_uvmap_shader(), blender::io::usd::USDArmatureWriter::do_write(), blender::io::usd::USDVolumeWriter::do_write(), blender::io::usd::USDAbstractWriter::ensure_usd_material_created(), blender::io::usd::USDHierarchyIterator::make_valid_name(), process_inputs(), TEST(), and blender::io::usd::USDAbstractWriter::write_user_properties().
|
static |
Definition at line 944 of file usd_reader_material.cc.
References output.
Referenced by blender::io::usd::USDMaterialReader::follow_connection().
Definition at line 408 of file usd_light_convert.cc.
References blender::io::usd::WorldToDomeLight::color, blender::io::usd::WorldToDomeLight::color_found, blender::io::usd::WorldToDomeLight::color_mult, copy_v3_v3(), bNode::custom1, bNodeSocket::default_value, bNode::id, blender::io::usd::WorldToDomeLight::image, blender::io::usd::WorldToDomeLight::intensity, blender::io::usd::WorldToDomeLight::iuser, NodeTexImage::iuser, M_PI, mul_v3_fl(), blender::io::usd::WorldToDomeLight::mult_found, bNodeSocket::next, blender::bke::node_find_socket(), NODE_VECTOR_MATH_MULTIPLY, rot, SH_NODE_BACKGROUND, SH_NODE_MAPPING, SH_NODE_TEX_ENVIRONMENT, SH_NODE_VECTOR_MATH, SOCK_IN, bNode::storage, blender::io::usd::WorldToDomeLight::transform, bNode::type_legacy, bNodeSocketValueRGBA::value, and bNodeSocketValueVector::value.
Referenced by world_material_to_dome_light().
|
static |
Returns true if the parent directory of the given path exists on the file system.
| path | input file path |
Definition at line 340 of file usd_asset_utils.cc.
References BLI_is_dir(), BLI_path_split_dir_part(), and FILE_MAX.
Referenced by get_export_textures_dir(), and should_import_asset().
| bool blender::io::usd::paths_equal | ( | const std::string & | path1, |
| const std::string & | path2 ) |
Invokes the USD asset resolver to resolve the given paths and returns true if the resolved paths are equal.
| path1 | first path to compare |
| path2 | second path to compare |
Definition at line 406 of file usd_asset_utils.cc.
References BLI_assert_msg, and BLI_path_is_rel().
Referenced by export_packed_texture().
|
static |
For usdz export, we must first create a usd/a/c file and then covert it to usdz. In Blender's case, we first create a usdc file in Blender's temporary working directory, and store the path to the usdc file in unarchived_filepath. This function then does the conversion of that usdc file into usdz.
Definition at line 288 of file usd_capi_export.cc.
References BKE_reportf(), BLI_assert, BLI_change_working_dir(), BLI_current_working_dir(), BLI_delete(), BLI_exists(), BLI_path_join, BLI_path_move(), BLI_path_split_dir_file(), BLI_path_split_file_part(), data, FILE_MAX, process_usdz_textures(), result, and RPT_ERROR.
Referenced by export_endjob().
|
static |
Definition at line 40 of file usd_reader_curve.cc.
References bezier_point_count(), CURVE_TYPE_BEZIER, and is_cyclic().
Referenced by blender::io::usd::USDHairWriter::do_write(), blender::io::usd::USDBasisCurvesReader::read_curve_sample(), and blender::io::usd::USDNurbsReader::read_curve_sample().
|
static |
Definition at line 159 of file usd_writer_curves.cc.
References CurvesGeometry::curve_num, get_curve_width_interpolation(), is_cyclic(), populate_curve_verts(), populate_curve_widths(), blender::bke::CurvesGeometry::positions(), and verts.
Referenced by blender::io::usd::USDCurvesWriter::do_write().
|
static |
Definition at line 244 of file usd_writer_curves.cc.
References CurvesGeometry::curve_num, get_curve_width_interpolation(), blender::bke::CurvesGeometry::handle_positions_left(), blender::bke::CurvesGeometry::handle_positions_right(), is_cyclic(), populate_curve_verts_for_bezier(), populate_curve_widths(), blender::bke::CurvesGeometry::positions(), and verts.
Referenced by blender::io::usd::USDCurvesWriter::do_write().
|
static |
Definition at line 268 of file usd_writer_curves.cc.
References CurvesGeometry::curve_num, blender::bke::CurvesGeometry::curves_range(), is_cyclic(), blender::bke::curves::nurbs::knots_num(), blender::bke::curves::nurbs::load_curve_knots(), blender::bke::CurvesGeometry::nurbs_custom_knots(), blender::bke::CurvesGeometry::nurbs_custom_knots_by_curve(), blender::bke::CurvesGeometry::nurbs_knots_modes(), blender::bke::CurvesGeometry::nurbs_orders(), blender::bke::CurvesGeometry::nurbs_weights(), blender::bke::CurvesGeometry::points_by_curve(), blender::bke::CurvesGeometry::positions(), blender::bke::CurvesGeometry::radius(), blender::IndexRange::size(), blender::IndexRange::take_front(), and verts.
Referenced by blender::io::usd::USDCurvesWriter::do_write().
|
static |
Definition at line 121 of file usd_writer_curves.cc.
References blender::bke::CurvesGeometry::curves_range(), is_cyclic(), blender::bke::CurvesGeometry::points_by_curve(), blender::IndexRange::size(), and verts.
Referenced by populate_curve_props().
|
static |
Definition at line 181 of file usd_writer_curves.cc.
References blender::bke::CurvesGeometry::curves_range(), is_cyclic(), blender::bke::CurvesGeometry::points_by_curve(), blender::IndexRange::size(), and verts.
Referenced by populate_curve_props_for_bezier().
|
static |
Definition at line 78 of file usd_writer_curves.cc.
References i, blender::VArrayCommon< T >::index_range(), blender::bke::CurvesGeometry::radius(), and blender::VArrayCommon< T >::size().
Referenced by populate_curve_props(), and populate_curve_props_for_bezier().
|
static |
Definition at line 560 of file usd_writer_material.cc.
References blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add_new(), usdtokens::clearcoat(), usdtokens::clearcoatRoughness(), usdtokens::diffuse_color(), usdtokens::displacement(), usdtokens::emissive_color(), usdtokens::ior(), usdtokens::metallic(), usdtokens::normal(), usdtokens::opacity(), usdtokens::roughness(), and usdtokens::specular().
Referenced by create_usd_preview_surface_material(), process_inputs(), and token_for_input().
|
static |
Definition at line 98 of file usd_capi_export.cc.
References RPT_ERROR, and WM_global_reportf().
Referenced by export_params_valid().
|
static |
Definition at line 178 of file usd_writer_material.cc.
References usdtokens::a(), blender::io::usd::USDExportParams::allow_unicode, usdtokens::b(), create_input(), create_primvar_reader_shader(), create_usd_preview_shader(), create_uv_input(), bNode::custom1, bNodeSocket::default_value, usdtokens::displacement(), usdtokens::emissive_color(), blender::io::usd::USDExporterContext::export_params, export_texture(), blender::io::usd::USDExportParams::export_textures, Float, bNodeLink::fromnode, bNodeLink::fromsock, usdtokens::g(), bNodeSocket::identifier, blender::io::usd::InputSpec::input_name, blender::io::usd::InputSpec::input_type, bNode::inputs, LISTBASE_FOREACH, blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::lookup_ptr(), make_safe_name(), NodeShaderAttribute::name, blender::bke::node_find_socket(), NODE_MATH_LESS_THAN, NODE_MATH_ROUND, NODE_MATH_SUBTRACT, NODE_VECTOR_MATH_MULTIPLY_ADD, usdtokens::opacity(), usdtokens::opacityThreshold(), preview_surface_input_map(), usdtokens::primvar_float(), usdtokens::primvar_float3(), usdtokens::primvar_vector(), usdtokens::r(), usdtokens::result(), usdtokens::rgb(), blender::io::usd::InputSpec::set_default_value, set_normal_texture_range(), set_scale_bias(), SH_NODE_ATTRIBUTE, SH_NODE_MATH, SH_NODE_SEPARATE_COLOR, SH_NODE_TEX_IMAGE, SH_NODE_VECTOR_MATH, SHD_ATTRIBUTE_GEOMETRY, SOCK_FLOAT, SOCK_IN, SOCK_RGBA, SOCK_VECTOR, usdtokens::st(), bNode::storage, STREQ, String, traverse_channel(), NodeShaderAttribute::type, and usdtokens::varname().
Referenced by create_usd_preview_surface_material().
| void blender::io::usd::process_scene_graph_instances | ( | const USDExportParams & | export_params, |
| pxr::UsdStageRefPtr | stage ) |
This function processes the USD stage generated by the USD hierarchy iterator to change scene graph instancing prototypes from defined USD prims to abstract prims.
In the following example, instance /root/proto/Plane_0 references prototype prim /root/proto_001/Plane_0:
def Xform "root" { def Xform "proto_001" { def Xform "Plane_0" { def Mesh "Plane" { } } }
def Xform "proto" { def Xform "Plane_0" ( instanceable = true prepend references = </root/proto_001/Plane_0> ) { } } }
The function will copy prototype /root/proto_001/Plane_0 under a new class prim named /root/prototypes and convert prim /root/proto_001/Plane_0 to be an instance referencing the copied abstract prim /root/prototypes/Plane_0.
def Xform "root" { def Xform "proto" { def Xform "Plane_0" ( instanceable = true prepend references = </root/prototypes/Plane_0> ) { } }
def Xform "proto_001" { def Xform "Plane_0" ( instanceable = true references = </root/prototypes/Plane_0> ) { } }
class "prototypes" { def Xform "Plane_0" { def Mesh "Plane" { } } } }
| export_params | The export parameters |
| stage | Pointer to the stage to process |
Definition at line 64 of file usd_instancing_utils.cc.
References blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add(), blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add(), blender::Vector< T, InlineBufferCapacity, Allocator >::append(), CLOG_ERROR, CLOG_WARN, convert_proto_to_instance(), get_unique_path(), blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::is_empty(), blender::Vector< T, InlineBufferCapacity, Allocator >::is_empty(), blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::items(), LOG, and blender::io::usd::USDExportParams::root_prim_path.
Referenced by export_to_stage().
|
static |
Definition at line 207 of file usd_capi_export.cc.
References BKE_id_free(), BKE_image_get_size(), BKE_image_load(), BKE_image_save(), BKE_image_save_options_free(), BKE_image_save_options_init(), BKE_image_scale(), BLI_filelist_dir_contents(), BLI_filelist_free(), BLI_is_dir(), BLI_path_append(), BLI_path_slash_ensure(), CLOG_DEBUG, CLOG_ERROR, CLOG_WARN, data, FILE_MAX, float, LOG, direntry::path, result, STRNCPY(), USD_TEXTURE_SIZE_CUSTOM, and USD_TEXTURE_SIZE_KEEP.
Referenced by perform_usdz_conversion().
|
static |
Definition at line 19 of file usd_mesh_utils.cc.
References CLOG_WARN, blender::io::usd::detail::convert_value(), blender::bke::Corner, faces, blender::bke::SpanAttributeWriter< T >::finish(), get_primvar_array(), i, blender::IndexRange::index_range(), LOG, blender::bke::MutableAttributeAccessor::lookup_or_add_for_write_only_span(), blender::bke::SpanAttributeWriter< T >::span, and blender::IndexRange::start().
Referenced by read_generic_mesh_primvar().
| void blender::io::usd::read_generic_mesh_primvar | ( | Mesh * | mesh, |
| const pxr::UsdGeomPrimvar & | primvar, | ||
| const pxr::UsdTimeCode | time, | ||
| const bool | is_left_handed ) |
Definition at line 82 of file usd_mesh_utils.cc.
References CLOG_WARN, convert_usd_type_to_blender(), convert_usd_varying_to_blender(), copy_primvar_to_blender_attribute(), usdtokens::displayColor(), ELEM, blender::bke::Face, faces, LOG, and read_face_display_color().
| void blender::io::usd::register_hook_converters | ( | ) |
Ensure classes and type converters necessary for invoking import and export hooks are registered.
Definition at line 298 of file usd_hook.cc.
References blender::io::usd::USDMaterialExportContext::export_texture(), blender::io::usd::USDSceneExportContext::get_depsgraph(), blender::io::usd::USDSceneImportContext::get_prim_map(), blender::io::usd::USDMaterialExportContext::get_stage(), blender::io::usd::USDMaterialImportContext::get_stage(), blender::io::usd::USDSceneExportContext::get_stage(), blender::io::usd::USDSceneImportContext::get_stage(), hook_list(), and blender::io::usd::USDMaterialImportContext::import_texture().
Referenced by export_to_stage(), and import_startjob().
| void blender::io::usd::remap_blend_shape_anim | ( | pxr::UsdStageRefPtr | stage, |
| const pxr::SdfPath & | skel_path, | ||
| const pxr::SdfPathSet & | mesh_paths ) |
When multiple meshes with blend shape animations are bound to one skeleton, USD implementations typically expect these animations to be combined in a single animation on the skeleton. This function creates an animation prim as a child of the skeleton and merges the blend shape time samples from multiple meshes in a single attribute on the animation. Merging the weight samples requires handling blend shape name collisions by generating unique names for the combined result.
| stage | The stage |
| skel_path | Path to the skeleton |
| mesh_paths | Paths to one or more mesh primitives bound to the skeleton |
Definition at line 303 of file usd_blend_shape_utils.cc.
References usdtokens::Anim(), blender::Vector< T, InlineBufferCapacity, Allocator >::append(), CLOG_WARN, blender::Vector< T, InlineBufferCapacity, Allocator >::first(), blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::is_empty(), blender::Vector< T, InlineBufferCapacity, Allocator >::last(), LOG, name, blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::Set(), and TempBlendShapeWeightsPrimvarName.
Referenced by shape_key_export_chaser().
|
static |
Definition at line 198 of file usd_capi_export.cc.
References data, and blender::timeit::print_duration().
Referenced by export_endjob(), and import_endjob().
|
static |
Definition at line 116 of file usd_capi_import.cc.
References data, and blender::timeit::print_duration().
| void blender::io::usd::set_attribute | ( | const pxr::UsdAttribute & | attr, |
| const USDT | value, | ||
| pxr::UsdTimeCode | time, | ||
| pxr::UsdUtilsSparseValueWriter & | value_writer ) |
Set the USD attribute to the provided value at the given time. The value will be written sparsely.
Definition at line 123 of file usd_attribute_utils.hh.
Referenced by add_anim_sample(), blender::io::usd::USDAbstractWriter::author_extent(), blender::io::usd::USDAbstractWriter::author_extent(), copy_blender_buffer_to_primvar(), blender::io::usd::USDCameraWriter::do_write(), blender::io::usd::USDLightWriter::do_write(), and blender::io::usd::USDPointInstancerWriter::do_write().
| void blender::io::usd::set_attribute | ( | const pxr::UsdAttribute & | attr, |
| pxr::VtArray< USDT > & | value, | ||
| pxr::UsdTimeCode | time, | ||
| pxr::UsdUtilsSparseValueWriter & | value_writer ) |
Set the USD attribute to the provided array value at the given time. The value will be written sparsely. For efficiency, this function swaps out the given value, leaving it empty, so it can leverage the USD API where no additional copy of the data is required.
Definition at line 145 of file usd_attribute_utils.hh.
|
static |
Definition at line 119 of file usd_reader_utils.cc.
References IDPropertyTemplate::i, IDP_AddToGroup(), IDP_BOOLEAN, and IDP_New().
Referenced by set_id_props_from_prim().
|
static |
Definition at line 145 of file usd_reader_utils.cc.
References IDPropertyTemplate::d, IDP_AddToGroup(), IDP_DOUBLE, and IDP_New().
Referenced by set_id_props_from_prim().
| void blender::io::usd::set_fcurve_sample | ( | FCurve * | fcu, |
| int64_t | sample_index, | ||
| const float | frame, | ||
| const float | value ) |
Definition at line 38 of file usd_armature_utils.cc.
References FCurve::bezt, BEZT_IPO_LIN, BLI_assert, BezTriple::f1, BezTriple::f2, BezTriple::f3, BezTriple::h1, BezTriple::h2, HD_AUTO, BezTriple::ipo, SELECT, and BezTriple::vec.
Referenced by import_blendshapes(), and blender::io::usd::USDCameraReader::read_object_data().
|
static |
Definition at line 132 of file usd_reader_utils.cc.
References IDPropertyTemplate::f, IDP_AddToGroup(), IDP_FLOAT, and IDP_New().
Referenced by set_id_props_from_prim().
| void blender::io::usd::set_id_props_from_prim | ( | ID * | id, |
| const pxr::UsdPrim & | prim, | ||
| const eUSDPropertyImportMode | property_import_mode, | ||
| const pxr::UsdTimeCode | time_code ) |
Definition at line 158 of file usd_reader_utils.cc.
References Float, IDP_EnsureProperties(), Int, name, set_bool_prop(), set_double_prop(), set_float_prop(), set_int_prop(), set_string_prop(), blender::StringRefBase::size(), String, and USD_ATTR_IMPORT_ALL.
Referenced by blender::io::usd::USDMaterialReader::add_material(), and blender::io::usd::USDPrimReader::set_props().
|
static |
Set the instance collection on the given instance reader. The collection is assigned from the given map based on the prototype prim path.
Definition at line 101 of file usd_reader_stage.cc.
References CLOG_WARN, LOG, blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::lookup_default(), blender::io::usd::USDPrimReader::prim_path(), blender::io::usd::USDInstanceReader::proto_path(), and blender::io::usd::USDInstanceReader::set_instance_collection().
Referenced by blender::io::usd::USDStageReader::create_proto_collections().
|
static |
Definition at line 106 of file usd_reader_utils.cc.
References IDPropertyTemplate::i, IDP_AddToGroup(), IDP_INT, and IDP_New().
Referenced by set_id_props_from_prim().
|
static |
Definition at line 754 of file usd_capi_export.cc.
References BLI_path_extension_check_n(), create_temp_path_for_usdz_export(), STRNCPY(), blender::io::usd::ExportJobData::unarchived_filepath, and blender::io::usd::ExportJobData::usdz_filepath.
Referenced by USD_export().
| void blender::io::usd::set_normal_texture_range | ( | pxr::UsdShadeShader & | usd_shader, |
| const InputSpec & | input_spec ) |
Definition at line 502 of file usd_writer_material.cc.
References usdtokens::bias(), blender::io::usd::InputSpec::input_name, usdtokens::normal(), usdtokens::raw(), usdtokens::scale(), usdtokens::sourceColorSpace(), and usdtokens::uv_texture().
Referenced by process_inputs().
|
static |
Definition at line 681 of file usd_skel_convert.cc.
References BKE_pchan_apply_mat4(), BKE_pose_channel_find_name(), BKE_pose_ensure(), i, blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::lookup_ptr(), name, and Object::pose.
Referenced by import_skeleton().
|
static |
Definition at line 161 of file usd_writer_material.cc.
References usdtokens::bias(), and usdtokens::scale().
Referenced by process_inputs().
|
static |
Definition at line 87 of file usd_reader_utils.cc.
References blender::StringRefBase::data(), IDP_AddToGroup(), IDP_New(), IDP_STRING, IDP_STRING_SUB_UTF8, IDPropertyTemplate::len, blender::StringRefBase::size(), IDPropertyTemplate::str, IDPropertyTemplate::string, and IDPropertyTemplate::subtype.
Referenced by set_id_props_from_prim().
| void blender::io::usd::shape_key_export_chaser | ( | pxr::UsdStageRefPtr | stage, |
| const ObjExportMap & | shape_key_mesh_export_map ) |
Complete the export process for shape keys.
| stage | The stage |
| shape_key_export_map | Map mesh objects with shape-key to USD meshes with blend shape targets |
Definition at line 1258 of file usd_skel_convert.cc.
References blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add_new(), blender::Vector< T, InlineBufferCapacity, Allocator >::append(), CLOG_WARN, ensure_blend_shape_skeleton(), Object::id, blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::is_empty(), blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::items(), LOG, blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::lookup_ptr(), ID::name, remap_blend_shape_anim(), and TempBlendShapeWeightsPrimvarName.
Referenced by skel_export_chaser().
| bool blender::io::usd::should_import_asset | ( | const std::string & | path | ) |
Return true if the asset at the given path is a candidate for importing with the USD asset resolver. The following heuristics are currently applied for this test:
TODO(makowalski): the test currently requires a file-system stat. Consider possible ways around this, e.g., by determining if the path is a supported URI.
| path | input file path |
Definition at line 385 of file usd_asset_utils.cc.
References asset_exists(), BLI_is_file(), BLI_path_is_rel(), is_udim_path(), and parent_dir_exists_on_file_system().
Referenced by blender::io::usd::USDMaterialImportContext::import_texture(), and load_image().
| void blender::io::usd::skel_export_chaser | ( | pxr::UsdStageRefPtr | stage, |
| const ObjExportMap & | armature_export_map, | ||
| const ObjExportMap & | skinned_mesh_export_map, | ||
| const ObjExportMap & | shape_key_mesh_export_map, | ||
| const Depsgraph * | depsgraph ) |
This function is called after the USD writers are invoked, to complete the UsdSkel export process, for example, to bind skinned meshes to skeletons or to set blend shape animation data.
| stage | The stage |
| armature_export_map | Map armature objects to USD skeletons |
| skinned_mesh_export_map | Map mesh objects to USD skinned meshes |
| shape_key_export_map | Map mesh objects with shape-key to USD meshes with blend shape targets |
| depsgraph | The dependency graph in which objects were evaluated |
Definition at line 1198 of file usd_skel_convert.cc.
References depsgraph, shape_key_export_chaser(), and skinned_mesh_export_chaser().
Referenced by blender::io::usd::USDHierarchyIterator::process_usd_skel().
| void blender::io::usd::skinned_mesh_export_chaser | ( | pxr::UsdStageRefPtr | stage, |
| const ObjExportMap & | armature_export_map, | ||
| const ObjExportMap & | skinned_mesh_export_map, | ||
| pxr::UsdGeomXformCache & | xf_cache, | ||
| const Depsgraph * | depsgraph ) |
Complete the export process for skinned meshes.
| stage | The stage |
| armature_export_map | Map armature objects to USD skeleton paths |
| skinned_mesh_export_map | Map mesh objects to USD skinned meshes |
| xf_cache | Cache to speed up USD prim transform computations |
| depsgraph | The dependency graph in which objects were evaluated |
Definition at line 1213 of file usd_skel_convert.cc.
References CLOG_WARN, depsgraph, get_armature_modifier_obj(), Object::id, blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::items(), LOG, blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::lookup_ptr(), and ID::name.
Referenced by skel_export_chaser().
|
static |
The following is copied from _SplitUdimPattern() in USD library source file materialParamsUtils.cpp. Split a UDIM file path such as /someDir/myFile.<UDIM>.exr into a prefix /someDir/myFile. and suffix .exr.
Definition at line 47 of file usd_asset_utils.cc.
References patterns, pos, UDIM_PATTERN, and UDIM_PATTERN2.
Referenced by copy_udim_asset_to_directory().
|
static |
Definition at line 63 of file usd_capi_import.cc.
Referenced by CacheReader_open_usd_object(), and USD_free_handle().
| const char * blender::io::usd::temp_textures_dir | ( | ) |
Returns path to temporary folder for saving imported textures prior to packing. CAUTION: this directory is recursively deleted after material import.
Definition at line 415 of file usd_asset_utils.cc.
References BKE_tempdir_session, BLI_path_join, FILE_MAXDIR, and SEP_STR.
Referenced by blender::io::usd::USDMaterialImportContext::import_texture(), load_image(), and blender::io::usd::USDMaterialReader::load_tex_image().
| pxr::TfToken blender::io::usd::TempBlendShapeWeightsPrimvarName | ( | "temp:weights" | , |
| pxr::TfToken::Immortal | ) |
| blender::io::usd::TEST | ( | utilities | , |
| make_safe_name | ) |
Definition at line 313 of file usd_export_test.cc.
References make_safe_name().
| blender::io::usd::TEST_F | ( | UsdExportTest | , |
| usd_export_material | ) |
Definition at line 255 of file usd_export_test.cc.
References BKE_libblock_find_name(), BLI_listbase_count(), EXPECT_EQ(), find_node_for_type_in_graph(), ID_MA, materials_filename, bNode::name, Material::nodetree, output_filename, params, result, bNode::storage, and USD_export().
| blender::io::usd::TEST_F | ( | UsdExportTest | , |
| usd_export_rain_mesh | ) |
Definition at line 199 of file usd_export_test.cc.
References BLI_listbase_count(), blender::StringRefNull::c_str(), EXPECT_EQ(), LISTBASE_FOREACH, output_filename, params, result, simple_scene_filename, and USD_export().
| blender::io::usd::TEST_F | ( | USDStageCreationTest | , |
| JSONFileLoadingTest | ) |
Definition at line 15 of file usd_stage_creation_test.cc.
|
inlinestatic |
Definition at line 30 of file usd_reader_curve.cc.
Referenced by add_bezier_control_point().
| pxr::TfToken blender::io::usd::token_for_input | ( | const StringRef | input_name | ) |
Returns a USDPreviewSurface token name for a given Blender shader Socket name, or an empty TfToken if the input name is not found in the map.
Definition at line 1435 of file usd_writer_material.cc.
References blender::io::usd::InputSpec::input_name, blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::lookup_ptr(), and preview_surface_input_map().
Referenced by blender::io::usd::UsdExportTest::compare_blender_node_to_usd_prim().
|
static |
Definition at line 1029 of file usd_writer_material.cc.
References input, bNode::inputs, LISTBASE_FOREACH, traverse_channel(), and bNode::type_legacy.
Referenced by create_uv_input(), process_inputs(), and traverse_channel().
| void blender::io::usd::USD_CacheReader_free | ( | CacheReader * | reader | ) |
Definition at line 580 of file usd_capi_import.cc.
References blender::io::usd::USDPrimReader::decref(), and blender::io::usd::USDPrimReader::refcount().
Referenced by BKE_cachefile_reader_free(), cachefile_handle_free(), and CacheReader_open_usd_object().
| CacheArchiveHandle * blender::io::usd::USD_create_handle | ( | Main * | , |
| const char * | filepath, | ||
| ListBase * | object_paths ) |
Definition at line 590 of file usd_capi_import.cc.
References gather_objects_paths(), handle_from_stage_reader(), and params.
Referenced by BKE_cachefile_eval().
| bool blender::io::usd::USD_export | ( | const bContext * | C, |
| const char * | filepath, | ||
| const USDExportParams * | params, | ||
| bool | as_background_job, | ||
| ReportList * | reports ) |
The USD_export takes a as_background_job parameter, and returns a boolean.
When as_background_job=true, returns false immediately after scheduling a background job.
When as_background_job=false, performs the export synchronously, and returns true when the export was ok, and false if there were any errors.
Definition at line 765 of file usd_capi_export.cc.
References BKE_libblock_find_name(), BKE_reportf(), blender::io::usd::ExportJobData::bmain, C, blender::io::usd::USDExportParams::collection, CTX_data_main(), CTX_data_scene(), CTX_data_view_layer(), CTX_wm_manager(), CTX_wm_window(), DEG_graph_build_from_collection(), DEG_graph_build_from_view_layer(), DEG_graph_new(), blender::io::usd::ExportJobData::depsgraph, export_endjob(), blender::io::usd::ExportJobData::export_ok, export_params_valid(), export_startjob(), ID_GR, NC_SCENE, ND_FRAME, blender::io::usd::ExportJobData::params, params, wmJobWorkerStatus::reports, RPT_ERROR, blender::io::usd::ExportJobData::scene, set_job_filepath(), blender::io::usd::ExportJobData::wm, WM_JOB_PROGRESS, WM_JOB_TYPE_USD_EXPORT, WM_jobs_callbacks(), WM_jobs_customdata_set(), WM_jobs_get(), WM_jobs_start(), and WM_jobs_timer().
| USDHook * blender::io::usd::USD_find_hook_name | ( | const char | idname[] | ) |
Definition at line 88 of file usd_hook.cc.
References begin(), hook_list(), nullptr, and STREQ.
Referenced by USD_register_hook().
| void blender::io::usd::USD_free_handle | ( | CacheArchiveHandle * | handle | ) |
Definition at line 611 of file usd_capi_import.cc.
References stage_reader_from_handle().
Referenced by cachefile_handle_free().
| void blender::io::usd::USD_get_transform | ( | CacheReader * | reader, |
| float | r_mat_world[4][4], | ||
| float | time, | ||
| float | scale ) |
Definition at line 617 of file usd_capi_import.cc.
References BKE_object_get_parent_matrix(), mul_m4_m4m4(), blender::io::usd::USDPrimReader::object(), Object::parent, Object::parentinv, and blender::io::usd::USDXformReader::read_matrix().
Referenced by transformcache_evaluate().
| int blender::io::usd::USD_get_version | ( | ) |
Definition at line 847 of file usd_capi_export.cc.
Referenced by make_usd_info().
| bool blender::io::usd::USD_import | ( | const bContext * | C, |
| const char * | filepath, | ||
| const USDImportParams * | params, | ||
| bool | as_background_job, | ||
| ReportList * | reports ) |
Definition at line 425 of file usd_capi_import.cc.
References blender::io::usd::ImportJobData::archive, blender::io::usd::ImportJobData::bmain, blender::io::usd::ImportJobData::C, C, CTX_data_main(), CTX_data_scene(), CTX_data_view_layer(), CTX_wm_manager(), CTX_wm_window(), blender::io::usd::ImportJobData::error_code, blender::io::usd::ImportJobData::filepath, G, import_endjob(), import_freejob(), blender::io::usd::ImportJobData::import_ok, import_startjob(), blender::io::usd::ImportJobData::is_background_job, NC_SCENE, blender::io::usd::ImportJobData::params, params, wmJobWorkerStatus::reports, blender::io::usd::ImportJobData::scene, STRNCPY(), USD_NO_ERROR, blender::io::usd::ImportJobData::view_layer, blender::io::usd::ImportJobData::was_canceled, blender::io::usd::ImportJobData::wm, WM_JOB_PROGRESS, WM_JOB_TYPE_USD_IMPORT, WM_jobs_callbacks(), WM_jobs_customdata_set(), WM_jobs_get(), WM_jobs_start(), and WM_jobs_timer().
| bool blender::io::usd::USD_mesh_topology_changed | ( | CacheReader * | reader, |
| const Object * | ob, | ||
| const Mesh * | existing_mesh, | ||
| const double | time, | ||
| const char ** | r_err_str ) |
Definition at line 523 of file usd_capi_import.cc.
References get_usd_reader(), and blender::io::usd::USDGeomReader::topology_changed().
| void blender::io::usd::USD_path_abs | ( | char * | path, |
| const char * | basepath, | ||
| bool | for_import ) |
Definition at line 628 of file usd_asset_utils.cc.
References BLI_path_abs(), BLI_path_is_rel(), BLI_strncpy(), FILE_MAX, RPT_ERROR, and WM_global_reportf().
Referenced by export_packed_texture().
| void blender::io::usd::USD_read_geometry | ( | CacheReader * | reader, |
| const Object * | ob, | ||
| blender::bke::GeometrySet & | geometry_set, | ||
| USDMeshReadParams | params, | ||
| const char ** | r_err_str ) |
Either modifies current_mesh in-place or constructs a new mesh.
Definition at line 508 of file usd_capi_import.cc.
References get_usd_reader(), params, and blender::io::usd::USDGeomReader::read_geometry().
Referenced by modify_geometry_set().
| void blender::io::usd::USD_register_hook | ( | std::unique_ptr< USDHook > | hook | ) |
Definition at line 71 of file usd_hook.cc.
References hook_list(), and USD_find_hook_name().
| void blender::io::usd::USD_unregister_hook | ( | const USDHook * | hook | ) |
Remove the given entry from the list of registered hooks and free the allocated memory for the hook instance.
Definition at line 82 of file usd_hook.cc.
References hook_list().
|
static |
Definition at line 50 of file usd_armature_utils.cc.
References Bone::childbase, LISTBASE_FOREACH, and visit_bones().
Referenced by get_armature_bone_names(), init_deform_bones_map(), initialize(), visit_bones(), and visit_bones().
| void blender::io::usd::visit_bones | ( | const Object * | ob_arm, |
| FunctionRef< void(const Bone *)> | visitor ) |
Recursively invoke the given function on the given armature object's bones. This function is a no-op if the object isn't an armature.
| ob_arm | The armature object |
| visitor | The function to invoke on each bone |
Definition at line 96 of file usd_armature_utils.cc.
References bArmature::bonebase, Object::data, LISTBASE_FOREACH, OB_ARMATURE, Object::type, and visit_bones().
| void blender::io::usd::world_material_to_dome_light | ( | const Scene * | scene, |
| WorldToDomeLight & | res ) |
Definition at line 468 of file usd_light_convert.cc.
References blender::bke::node_chain_iterator(), NODE_DO_OUTPUT, node_search(), World::nodetree, and Scene::world.
| void blender::io::usd::world_material_to_dome_light | ( | const USDExportParams & | params, |
| const Scene * | scene, | ||
| pxr::UsdStageRefPtr | stage ) |
If the Blender scene has an environment texture, export it as a USD dome light.
Definition at line 142 of file usd_light_convert.cc.
References BLI_copy(), BLI_dir_create_recursive(), BLI_path_append(), BLI_path_append_dir(), BLI_path_join, BLI_path_split_dir_part(), BLI_path_split_file_part(), BLI_string_replace_char(), cache_image_color(), CLOG_WARN, blender::io::usd::WorldToDomeLight::color, blender::io::usd::WorldToDomeLight::color_found, blender::io::usd::WorldToDomeLight::color_mult, export_texture(), FILE_MAX, get_tex_image_asset_filepath(), get_unique_path(), blender::io::usd::WorldToDomeLight::image, blender::io::usd::WorldToDomeLight::intensity, LOG, blender::io::usd::WorldToDomeLight::mult_found, params, blender::io::usd::WorldToDomeLight::transform, Scene::world, and world_material_to_dome_light().
Referenced by export_to_stage(), blender::io::hydra::WorldData::init(), and world_material_to_dome_light().
| bool blender::io::usd::write_to_path | ( | const void * | data, |
| size_t | size, | ||
| const std::string & | path, | ||
| ReportList * | reports ) |
Invokes the USD asset resolver to write data to the given path.
| data | pointer to data to write |
| size | number of bytes to write |
| path | path of asset to be written |
| reports | the storage for potential warning or error reports (generated using BKE_report API). |
Definition at line 429 of file usd_asset_utils.cc.
References BKE_reportf(), BLI_assert, data, RPT_ERROR, and size().
Referenced by export_packed_texture().
| const StringRefNull blender::io::usd::materials_filename = "usd/usd_materials_export.blend" |
Definition at line 44 of file usd_export_test.cc.
Referenced by TEST_F().
| const StringRefNull blender::io::usd::output_filename = "output.usd" |
Definition at line 45 of file usd_export_test.cc.
Referenced by blender::io::usd::UsdExportTest::TearDown(), TEST_F(), and TEST_F().
| const StringRefNull blender::io::usd::simple_scene_filename = "usd/usd_simple_scene.blend" |
Definition at line 43 of file usd_export_test.cc.
Referenced by TEST_F().
|
extern |
|
constexpr |
Definition at line 39 of file usd_asset_utils.cc.
Referenced by copy_udim_asset_to_directory().
|
constexpr |
Definition at line 31 of file usd_asset_utils.cc.
Referenced by copy_udim_asset_to_directory(), is_udim_path(), and split_udim_pattern().
|
constexpr |
Definition at line 32 of file usd_asset_utils.cc.
Referenced by is_udim_path(), and split_udim_pattern().
|
constexpr |
Definition at line 38 of file usd_asset_utils.cc.
Referenced by copy_udim_asset_to_directory().