22 #include <pxr/base/tf/stringUtils.h>
29 static const pxr::TfToken
diffuse_color(
"diffuseColor", pxr::TfToken::Immortal);
30 static const pxr::TfToken
metallic(
"metallic", pxr::TfToken::Immortal);
31 static const pxr::TfToken
preview_shader(
"previewShader", pxr::TfToken::Immortal);
32 static const pxr::TfToken
preview_surface(
"UsdPreviewSurface", pxr::TfToken::Immortal);
33 static const pxr::TfToken
roughness(
"roughness", pxr::TfToken::Immortal);
34 static const pxr::TfToken
surface(
"surface", pxr::TfToken::Immortal);
40 : usd_export_context_(usd_export_context), frame_has_been_written_(false), is_animated_(false)
56 static pxr::UsdTimeCode default_timecode = pxr::UsdTimeCode::Default();
57 return default_timecode;
83 static pxr::SdfPath material_library_path(
"/_materials");
88 pxr::SdfPath
usd_path = material_library_path.AppendChild(material_name);
89 pxr::UsdShadeMaterial usd_material = pxr::UsdShadeMaterial::Get(
stage,
usd_path);
93 usd_material = pxr::UsdShadeMaterial::Define(
stage,
usd_path);
97 pxr::UsdShadeShader
shader = pxr::UsdShadeShader::Define(
stage, shader_path);
111 const pxr::UsdTimeCode timecode,
112 pxr::UsdGeomImageable &usd_geometry)
114 pxr::UsdAttribute attr_visibility = usd_geometry.CreateVisibilityAttr(pxr::VtValue(),
true);
116 const bool is_visible =
context.is_object_visible(
118 const pxr::TfToken visibility = is_visible ? pxr::UsdGeomTokens->inherited :
119 pxr::UsdGeomTokens->invisible;
121 usd_value_writer_.SetAttribute(attr_visibility, pxr::VtValue(visibility), timecode);
130 printf(
"USD ref error: export path is reference path: %s\n",
context.export_path.c_str());
135 pxr::SdfPath ref_path(
context.original_export_path);
136 if (!prim.GetReferences().AddInternalReference(ref_path)) {
140 printf(
"USD Export warning: unable to add reference from %s to %s, not instancing object\n",
142 context.original_export_path.c_str());
Group RGB to Bright Vector Camera Vector Combine Material Light Line Style Layer Add Ambient Diffuse Glossy Refraction Transparent Toon Principled Hair Volume Principled Light Particle Volume Image Sky Noise Wave Voronoi Brick Texture Vector Combine Vertex Separate Vector White RGB Map Separate Set Z Dilate Combine Combine Color Channel Split ID Combine Luminance Directional Alpha Distance Hue Movie Ellipse Bokeh View Corner Anti Mix RGB Hue Separate TEX_NODE_PROC TEX_NODE_PROC TEX_NODE_PROC TEX_NODE_PROC TEX_NODE_PROC Boolean Random Float
virtual std::string get_id_name(const ID *id) const
virtual bool check_is_animated(const HierarchyContext &context) const
virtual void do_write(HierarchyContext &context)=0
bool frame_has_been_written_
const pxr::SdfPath & usd_path() const
void write_visibility(const HierarchyContext &context, const pxr::UsdTimeCode timecode, pxr::UsdGeomImageable &usd_geometry)
pxr::UsdShadeMaterial ensure_usd_material(Material *material)
virtual bool mark_as_instance(const HierarchyContext &context, const pxr::UsdPrim &prim)
pxr::UsdTimeCode get_export_time_code() const
pxr::UsdUtilsSparseValueWriter usd_value_writer_
USDAbstractWriter(const USDExporterContext &usd_export_context)
virtual void write(HierarchyContext &context) override
virtual bool is_supported(const HierarchyContext *context) const
const USDExporterContext usd_export_context_
const pxr::UsdTimeCode & get_export_time_code() const
void KERNEL_FUNCTION_FULL_NAME() shader(KernelGlobals *kg, uint4 *input, float4 *output, int type, int filter, int i, int offset, int sample)
static const pxr::TfToken preview_shader("previewShader", pxr::TfToken::Immortal)
static const pxr::TfToken surface("surface", pxr::TfToken::Immortal)
static const pxr::TfToken roughness("roughness", pxr::TfToken::Immortal)
static const pxr::TfToken metallic("metallic", pxr::TfToken::Immortal)
static const pxr::TfToken diffuse_color("diffuseColor", pxr::TfToken::Immortal)
static const pxr::TfToken preview_surface("UsdPreviewSurface", pxr::TfToken::Immortal)
struct SELECTID_Context context
enum eEvaluationMode evaluation_mode
const USDExportParams & export_params
const pxr::SdfPath usd_path
const pxr::UsdStageRefPtr stage
const USDHierarchyIterator * hierarchy_iterator