Blender V5.0
usd_reader_material.cc File Reference
#include "usd_reader_material.hh"
#include "usd_asset_utils.hh"
#include "usd_hash_types.hh"
#include "usd_reader_utils.hh"
#include "usd_utils.hh"
#include "BKE_image.hh"
#include "BKE_lib_id.hh"
#include "BKE_library.hh"
#include "BKE_main.hh"
#include "BKE_material.hh"
#include "BKE_node.hh"
#include "BKE_node_legacy_types.hh"
#include "BKE_node_tree_update.hh"
#include "BKE_report.hh"
#include "BLI_fileops.h"
#include "BLI_listbase.h"
#include "BLI_map.hh"
#include "BLI_math_vector.h"
#include "BLI_math_vector_types.hh"
#include "BLI_path_utils.hh"
#include "BLI_string.h"
#include "BLI_string_ref.hh"
#include "BLI_string_utf8.h"
#include "BLI_vector.hh"
#include "DNA_material_types.h"
#include "IMB_colormanagement.hh"
#include <pxr/base/gf/vec3f.h>
#include <pxr/usd/ar/packageUtils.h>
#include <pxr/usd/usdShade/material.h>
#include <pxr/usd/usdShade/shader.h>
#include "CLG_log.h"

Go to the source code of this file.

Classes

struct  blender::io::usd::IntermediateNode

Namespaces

namespace  usdtokens
namespace  blender
namespace  blender::io
namespace  blender::io::usd

Typedefs

using ShaderToNodeMap

Functions

static const pxr::TfToken usdtokens::a ("a", pxr::TfToken::Immortal)
static const pxr::TfToken usdtokens::b ("b", pxr::TfToken::Immortal)
static const pxr::TfToken usdtokens::bias ("bias", pxr::TfToken::Immortal)
static const pxr::TfToken usdtokens::clearcoat ("clearcoat", pxr::TfToken::Immortal)
static const pxr::TfToken usdtokens::clearcoatRoughness ("clearcoatRoughness", pxr::TfToken::Immortal)
static const pxr::TfToken usdtokens::diffuseColor ("diffuseColor", pxr::TfToken::Immortal)
static const pxr::TfToken usdtokens::displacement ("displacement", pxr::TfToken::Immortal)
static const pxr::TfToken usdtokens::emissiveColor ("emissiveColor", pxr::TfToken::Immortal)
static const pxr::TfToken usdtokens::file ("file", pxr::TfToken::Immortal)
static const pxr::TfToken usdtokens::g ("g", pxr::TfToken::Immortal)
static const pxr::TfToken usdtokens::ior ("ior", pxr::TfToken::Immortal)
static const pxr::TfToken usdtokens::in ("in", pxr::TfToken::Immortal)
static const pxr::TfToken usdtokens::metallic ("metallic", pxr::TfToken::Immortal)
static const pxr::TfToken usdtokens::normal ("normal", pxr::TfToken::Immortal)
static const pxr::TfToken usdtokens::occlusion ("occlusion", pxr::TfToken::Immortal)
static const pxr::TfToken usdtokens::opacity ("opacity", pxr::TfToken::Immortal)
static const pxr::TfToken usdtokens::opacityThreshold ("opacityThreshold", pxr::TfToken::Immortal)
static const pxr::TfToken usdtokens::r ("r", pxr::TfToken::Immortal)
static const pxr::TfToken usdtokens::rgb ("rgb", pxr::TfToken::Immortal)
static const pxr::TfToken usdtokens::rgba ("rgba", pxr::TfToken::Immortal)
static const pxr::TfToken usdtokens::roughness ("roughness", pxr::TfToken::Immortal)
static const pxr::TfToken usdtokens::scale ("scale", pxr::TfToken::Immortal)
static const pxr::TfToken usdtokens::sourceColorSpace ("sourceColorSpace", pxr::TfToken::Immortal)
static const pxr::TfToken usdtokens::specularColor ("specularColor", pxr::TfToken::Immortal)
static const pxr::TfToken usdtokens::st ("st", pxr::TfToken::Immortal)
static const pxr::TfToken usdtokens::varname ("varname", pxr::TfToken::Immortal)
static const pxr::TfToken usdtokens::auto_ ("auto", pxr::TfToken::Immortal)
static const pxr::TfToken usdtokens::sRGB ("sRGB", pxr::TfToken::Immortal)
static const pxr::TfToken usdtokens::raw ("raw", pxr::TfToken::Immortal)
static const pxr::TfToken usdtokens::RAW ("RAW", pxr::TfToken::Immortal)
static const pxr::TfToken usdtokens::black ("black", pxr::TfToken::Immortal)
static const pxr::TfToken usdtokens::clamp ("clamp", pxr::TfToken::Immortal)
static const pxr::TfToken usdtokens::repeat ("repeat", pxr::TfToken::Immortal)
static const pxr::TfToken usdtokens::mirror ("mirror", pxr::TfToken::Immortal)
static const pxr::TfToken usdtokens::wrapS ("wrapS", pxr::TfToken::Immortal)
static const pxr::TfToken usdtokens::wrapT ("wrapT", pxr::TfToken::Immortal)
static const pxr::TfToken usdtokens::rotation ("rotation", pxr::TfToken::Immortal)
static const pxr::TfToken usdtokens::translation ("translation", pxr::TfToken::Immortal)
static const pxr::TfToken usdtokens::UsdPreviewSurface ("UsdPreviewSurface", pxr::TfToken::Immortal)
static const pxr::TfToken usdtokens::UsdPrimvarReader_float2 ("UsdPrimvarReader_float2", pxr::TfToken::Immortal)
static const pxr::TfToken usdtokens::UsdUVTexture ("UsdUVTexture", pxr::TfToken::Immortal)
static const pxr::TfToken usdtokens::UsdTransform2d ("UsdTransform2d", pxr::TfToken::Immortal)
static bNodeadd_node (bNodeTree *ntree, const int type, const blender::float2 loc)
static void link_nodes (bNodeTree *ntree, bNode *source, const blender::StringRefNull sock_out, bNode *dest, const blender::StringRefNull sock_in)
static pxr::SdfLayerHandle get_layer_handle (const pxr::UsdAttribute &attribute)
static blender::Vector< int > get_udim_tiles (const std::string &file_path)
static void add_udim_tiles (Image *image, const blender::Vector< int > &indices)
static bool needs_blend (const pxr::UsdShadeShader &usd_shader)
static float get_opacity_threshold (const pxr::UsdShadeShader &usd_shader, float default_value=0.0f)
static pxr::TfToken get_source_color_space (const pxr::UsdShadeShader &usd_shader)
static int get_image_extension (const pxr::UsdShadeShader &usd_shader, const int default_value)
static bool get_usd_preview_surface (const pxr::UsdShadeMaterial &usd_material, pxr::UsdShadeShader &r_preview_surface)
static void set_viewport_material_props (Material *mtl, const pxr::UsdShadeShader &usd_preview)
static pxr::UsdShadeInput get_input (const pxr::UsdShadeShader &usd_shader, const pxr::TfToken &input_name)
static bNodeSocketget_input_socket (bNode *node, const blender::StringRefNull identifier, ReportList *reports)
static IntermediateNode blender::io::usd::add_normal_map (bNodeTree *ntree, int column, NodePlacementContext &ctx)
static IntermediateNode blender::io::usd::add_scale_bias (const pxr::UsdShadeShader &usd_shader, bNodeTree *ntree, int column, bool feeds_normal_map, NodePlacementContext &ctx)
static IntermediateNode blender::io::usd::add_scale_bias_adjust (bNodeTree *ntree, int column, NodePlacementContext &ctx)
static IntermediateNode blender::io::usd::add_separate_color (const pxr::UsdShadeShader &usd_shader, const pxr::TfToken &usd_source_name, bNodeTree *ntree, int column, NodePlacementContext &ctx)
static IntermediateNode blender::io::usd::add_lessthan (bNodeTree *ntree, float threshold, int column, NodePlacementContext &ctx)
static IntermediateNode blender::io::usd::add_oneminus (bNodeTree *ntree, int column, NodePlacementContext &ctx)
static void blender::io::usd::configure_displacement (const pxr::UsdShadeShader &usd_shader, bNode *displacement_node)
static pxr::UsdShadeShader blender::io::usd::node_graph_output_source (const pxr::UsdShadeNodeGraph &node_graph, const pxr::TfToken &output_name)
void blender::io::usd::build_material_map (const Main *bmain, blender::Map< std::string, Material * > &r_mat_map)
Materialblender::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)

Variables

static CLG_LogRef LOG = {"io.usd"}

Typedef Documentation

◆ ShaderToNodeMap

Definition at line 27 of file usd_reader_material.hh.

Function Documentation

◆ add_node()

◆ add_udim_tiles()

◆ get_image_extension()

◆ get_input()

pxr::UsdShadeInput get_input ( const pxr::UsdShadeShader & usd_shader,
const pxr::TfToken & input_name )
static

Definition at line 372 of file usd_reader_material.cc.

References input.

Referenced by blender::nodes::node_composite_tonemap_cc::ToneMapOperation::compute_average_color(), blender::nodes::node_composite_tonemap_cc::ToneMapOperation::compute_average_log_luminance(), blender::nodes::node_composite_tonemap_cc::ToneMapOperation::compute_average_luminance(), blender::nodes::node_composite_bokehblur_cc::BokehBlurOperation::compute_blur_kernel(), blender::nodes::node_composite_defocus_cc::DefocusOperation::compute_defocus_radius_from_depth(), blender::nodes::node_composite_defocus_cc::DefocusOperation::compute_defocus_radius_from_depth_cpu(), blender::nodes::node_composite_defocus_cc::DefocusOperation::compute_defocus_radius_from_depth_gpu(), blender::nodes::node_composite_defocus_cc::DefocusOperation::compute_defocus_radius_from_scale(), blender::nodes::node_composite_defocus_cc::DefocusOperation::compute_defocus_radius_from_scale_cpu(), blender::nodes::node_composite_defocus_cc::DefocusOperation::compute_defocus_radius_from_scale_gpu(), blender::nodes::node_composite_double_edge_mask_cc::DoubleEdgeMaskOperation::compute_gradient_cpu(), blender::nodes::node_composite_double_edge_mask_cc::DoubleEdgeMaskOperation::compute_gradient_gpu(), blender::nodes::node_composite_keying_cc::KeyingOperation::compute_image_cpu(), blender::nodes::node_composite_keying_cc::KeyingOperation::compute_image_gpu(), blender::nodes::node_composite_inpaint_cc::InpaintOperation::compute_inpainting_region_cpu(), blender::nodes::node_composite_inpaint_cc::InpaintOperation::compute_inpainting_region_gpu(), blender::nodes::node_composite_tonemap_cc::ToneMapOperation::compute_log_maximum_luminance(), blender::nodes::node_composite_tonemap_cc::ToneMapOperation::compute_log_minimum_luminance(), blender::nodes::node_composite_tonemap_cc::ToneMapOperation::compute_luminance_scale_blend_factor(), blender::nodes::node_composite_vec_blur_cc::VectorBlurOperation::compute_max_tile_velocity(), blender::nodes::node_composite_blur_cc::BlurOperation::compute_maximum_blur_size(), blender::nodes::node_composite_vec_blur_cc::VectorBlurOperation::compute_motion_blur(), blender::nodes::node_composite_kuwahara_cc::ConvertKuwaharaOperation::compute_structure_tensor_cpu(), blender::nodes::node_composite_kuwahara_cc::ConvertKuwaharaOperation::compute_structure_tensor_gpu(), blender::nodes::node_composite_keying_cc::KeyingOperation::compute_tweaked_matte(), blender::nodes::node_composite_keying_cc::KeyingOperation::compute_tweaked_matte_cpu(), blender::nodes::node_composite_keying_cc::KeyingOperation::compute_tweaked_matte_gpu(), blender::nodes::node_composite_bokehblur_cc::BokehBlurOperation::compute_variable_size_search_radius(), blender::io::usd::USDMaterialReader::convert_usd_transform_2d(), blender::nodes::node_composite_group_output_cc::GroupOutputOperation::execute(), blender::nodes::node_composite_vec_blur_cc::VectorBlurOperation::execute(), blender::nodes::node_composite_vec_blur_cc::VectorBlurOperation::execute_cpu(), blender::nodes::node_composite_dilate_cc::DilateErodeOperation::execute_distance(), blender::nodes::node_composite_dilate_cc::DilateErodeOperation::execute_distance_feather(), blender::nodes::node_composite_dilate_cc::DilateErodeOperation::execute_distance_threshold_cpu(), blender::nodes::node_composite_dilate_cc::DilateErodeOperation::execute_distance_threshold_gpu(), blender::nodes::node_composite_glare_cc::GlareOperation::execute_mix_cpu(), blender::nodes::node_composite_glare_cc::GlareOperation::execute_mix_gpu(), blender::nodes::node_composite_tonemap_cc::ToneMapOperation::execute_photoreceptor_cpu(), blender::nodes::node_composite_tonemap_cc::ToneMapOperation::execute_photoreceptor_gpu(), blender::nodes::node_composite_bokehblur_cc::BokehBlurOperation::execute_variable_size_cpu(), blender::nodes::node_composite_bokehblur_cc::BokehBlurOperation::execute_variable_size_gpu(), blender::nodes::node_composite_inpaint_cc::InpaintOperation::fill_inpainting_region_cpu(), blender::nodes::node_composite_inpaint_cc::InpaintOperation::fill_inpainting_region_gpu(), blender::nodes::node_composite_keying_cc::KeyingOperation::get_black_level(), blender::nodes::node_composite_bilateralblur_cc::BilateralBlurOperation::get_blur_radius(), blender::nodes::node_composite_bokehblur_cc::BokehBlurOperation::get_blur_radius(), blender::nodes::node_composite_blur_cc::BlurOperation::get_blur_size(), blender::nodes::node_composite_tonemap_cc::ToneMapOperation::get_chromatic_adaptation(), blender::nodes::node_composite_glare_cc::GlareOperation::get_color_modulation(), blender::nodes::node_composite_despeckle_cc::DespeckleOperation::get_color_threshold(), blender::nodes::node_composite_tonemap_cc::ToneMapOperation::get_contrast(), blender::nodes::node_composite_keying_cc::KeyingOperation::get_despill_balance(), blender::nodes::node_composite_keying_cc::KeyingOperation::get_despill_strength(), blender::nodes::node_composite_glare_cc::GlareOperation::get_diagonal_star(), blender::nodes::node_composite_kuwahara_cc::ConvertKuwaharaOperation::get_eccentricity(), blender::nodes::node_composite_keying_cc::KeyingOperation::get_edge_search_size(), blender::nodes::node_composite_keying_cc::KeyingOperation::get_edge_tolerance(), blender::nodes::node_composite_blur_cc::BlurOperation::get_extend_bounds(), blender::nodes::node_composite_bokehblur_cc::BokehBlurOperation::get_extend_bounds(), blender::nodes::node_composite_glare_cc::GlareOperation::get_fade(), blender::nodes::node_composite_dilate_cc::DilateErodeOperation::get_falloff(), blender::nodes::node_composite_dilate_cc::DilateErodeOperation::get_falloff_size(), blender::nodes::node_composite_keying_cc::KeyingOperation::get_feather_falloff(), blender::nodes::node_composite_flip_cc::FlipOperation::get_flip_x(), blender::nodes::node_composite_flip_cc::FlipOperation::get_flip_y(), blender::nodes::node_composite_tonemap_cc::ToneMapOperation::get_gamma(), blender::nodes::node_composite_kuwahara_cc::ConvertKuwaharaOperation::get_high_precision(), blender::nodes::node_composite_tonemap_cc::ToneMapOperation::get_intensity(), blender::nodes::node_composite_glare_cc::GlareOperation::get_jitter_factor(), blender::nodes::node_composite_glare_cc::GlareOperation::get_kernel_data_type(), blender::nodes::node_composite_glare_cc::GlareOperation::get_kernel_input(), blender::nodes::node_composite_tonemap_cc::ToneMapOperation::get_key(), blender::nodes::node_composite_keying_cc::KeyingOperation::get_key_balance(), blender::nodes::node_composite_tonemap_cc::ToneMapOperation::get_light_adaptation(), blender::nodes::node_composite_inpaint_cc::InpaintOperation::get_max_distance(), blender::nodes::node_composite_despeckle_cc::DespeckleOperation::get_neighbor_threshold(), blender::nodes::node_composite_glare_cc::GlareOperation::get_number_of_iterations(), blender::nodes::node_composite_glare_cc::GlareOperation::get_number_of_streaks(), blender::nodes::node_composite_keying_cc::KeyingOperation::get_postprocess_blur_size(), blender::nodes::node_composite_keying_cc::KeyingOperation::get_postprocess_dilate_size(), blender::nodes::node_composite_keying_cc::KeyingOperation::get_postprocess_feather_size(), blender::nodes::node_composite_glare_cc::GlareOperation::get_quality(), blender::nodes::node_composite_vec_blur_cc::VectorBlurOperation::get_samples_count(), blender::nodes::node_composite_glare_cc::GlareOperation::get_saturation(), blender::nodes::node_composite_blur_cc::BlurOperation::get_separable(), blender::nodes::node_composite_kuwahara_cc::ConvertKuwaharaOperation::get_sharpness(), blender::nodes::node_composite_vec_blur_cc::VectorBlurOperation::get_shutter(), blender::nodes::node_composite_dilate_cc::DilateErodeOperation::get_size(), blender::nodes::node_composite_glare_cc::GlareOperation::get_size(), blender::nodes::node_composite_glare_cc::GlareOperation::get_streaks_angle(), blender::nodes::node_composite_glare_cc::GlareOperation::get_strength(), blender::nodes::node_composite_glare_cc::GlareOperation::get_sun_position(), blender::nodes::node_composite_bilateralblur_cc::BilateralBlurOperation::get_threshold(), blender::nodes::node_composite_glare_cc::GlareOperation::get_tint(), blender::nodes::node_composite_blur_cc::BlurOperation::get_type(), blender::nodes::node_composite_dilate_cc::DilateErodeOperation::get_type(), blender::nodes::node_composite_filter_cc::FilterOperation::get_type(), blender::nodes::node_composite_glare_cc::GlareOperation::get_type(), blender::nodes::node_composite_kuwahara_cc::ConvertKuwaharaOperation::get_type(), blender::nodes::node_composite_tonemap_cc::ToneMapOperation::get_type(), blender::nodes::node_composite_kuwahara_cc::ConvertKuwaharaOperation::get_uniformity(), blender::nodes::node_composite_keying_cc::KeyingOperation::get_white_level(), blender::nodes::node_composite_double_edge_mask_cc::DoubleEdgeMaskOperation::include_all_inner_edges(), blender::nodes::node_composite_double_edge_mask_cc::DoubleEdgeMaskOperation::include_edges_of_image(), blender::nodes::node_composite_kuwahara_cc::ConvertKuwaharaOperation::is_constant_size(), blender::nodes::node_composite_blur_cc::BlurOperation::is_identity(), blender::nodes::node_composite_bokehblur_cc::BokehBlurOperation::is_identity(), blender::nodes::node_composite_dilate_cc::DilateErodeOperation::is_identity(), blender::nodes::node_composite_glare_cc::GlareOperation::write_glare_output_cpu(), and blender::nodes::node_composite_glare_cc::GlareOperation::write_glare_output_gpu().

◆ get_input_socket()

◆ get_layer_handle()

pxr::SdfLayerHandle get_layer_handle ( const pxr::UsdAttribute & attribute)
static

◆ get_opacity_threshold()

float get_opacity_threshold ( const pxr::UsdShadeShader & usd_shader,
float default_value = 0.0f )
static

◆ get_source_color_space()

pxr::TfToken get_source_color_space ( const pxr::UsdShadeShader & usd_shader)
static

◆ get_udim_tiles()

◆ get_usd_preview_surface()

bool get_usd_preview_surface ( const pxr::UsdShadeMaterial & usd_material,
pxr::UsdShadeShader & r_preview_surface )
static

◆ link_nodes()

◆ needs_blend()

bool needs_blend ( const pxr::UsdShadeShader & usd_shader)
static

◆ set_viewport_material_props()

void set_viewport_material_props ( Material * mtl,
const pxr::UsdShadeShader & usd_preview )
static

Variable Documentation

◆ LOG

CLG_LogRef LOG = {"io.usd"}
static

Definition at line 42 of file usd_reader_material.cc.