1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
//! Token constants for the [UsdShade](super) schema family.
//!
//! Centralised so consumers match against canonical strings instead of
//! retyping literals. Mirrors the grouping in Pixar's
//! `pxr/usd/usdShade/tokens.h`.
// Concrete prim type names
pub const T_MATERIAL: &str = "Material";
pub const T_NODE_GRAPH: &str = "NodeGraph";
pub const T_SHADER: &str = "Shader";
// API schemas
pub const API_NODE_DEF: &str = "NodeDefAPI";
pub const API_MATERIAL_BINDING: &str = "MaterialBindingAPI";
// Property namespace prefixes
/// Node-definition properties are authored under `info:`.
pub const NS_INFO: &str = "info:";
/// Input attributes are authored as `inputs:<base>`.
pub const NS_INPUTS: &str = "inputs:";
/// Output attributes are authored as `outputs:<base>`.
pub const NS_OUTPUTS: &str = "outputs:";
// NodeDefAPI (Shader) attribute names
pub const A_INFO_ID: &str = "info:id";
pub const A_INFO_IMPLEMENTATION_SOURCE: &str = "info:implementationSource";
pub const A_INFO_SOURCE_ASSET: &str = "info:sourceAsset";
pub const A_INFO_SOURCE_CODE: &str = "info:sourceCode";
pub const A_INFO_SOURCE_ASSET_SUBIDENTIFIER: &str = "info:sourceAsset:subIdentifier";
// `info:implementationSource` token values.
pub const IMPL_SOURCE_ID: &str = "id";
pub const IMPL_SOURCE_SOURCE_ASSET: &str = "sourceAsset";
pub const IMPL_SOURCE_SOURCE_CODE: &str = "sourceCode";
/// Source-asset sub-identifier suffix used after an optional source type.
pub const SOURCE_ASSET_SUBIDENTIFIER: &str = "sourceAsset:subIdentifier";
// Material / NodeGraph terminal output base names
pub const TERMINAL_SURFACE: &str = "surface";
pub const TERMINAL_DISPLACEMENT: &str = "displacement";
pub const TERMINAL_VOLUME: &str = "volume";
/// Universal render context — authored with no context segment, i.e.
/// the bare `outputs:surface` rather than `outputs:<ctx>:surface`.
pub const UNIVERSAL_RENDER_CONTEXT: &str = "";
// `outputs:surface` etc. on the universal render context.
pub const A_OUTPUTS_SURFACE: &str = "outputs:surface";
pub const A_OUTPUTS_DISPLACEMENT: &str = "outputs:displacement";
pub const A_OUTPUTS_VOLUME: &str = "outputs:volume";
// Connectability metadata (UsdShadeInput)
pub const META_CONNECTABILITY: &str = "connectability";
pub const CONNECTABILITY_FULL: &str = "full";
pub const CONNECTABILITY_INTERFACE_ONLY: &str = "interfaceOnly";
// `renderType` metadata on a connectable input / output — a renderer-specific
// type hint (C++ `UsdShadeInput`/`UsdShadeOutput::SetRenderType`).
pub const META_RENDER_TYPE: &str = "renderType";
/// Shader-registry metadata on a shader, input, or output.
pub const META_SDR_METADATA: &str = "sdrMetadata";
// MaterialBindingAPI relationship names + binding metadata
pub const REL_MATERIAL_BINDING: &str = "material:binding";
pub const REL_MATERIAL_BINDING_COLLECTION: &str = "material:binding:collection";
/// `bindMaterialAs` metadata on a binding relationship records the
/// binding strength.
pub const META_BIND_MATERIAL_AS: &str = "bindMaterialAs";
// Binding-strength token values (`bindMaterialAs`).
pub const STRENGTH_WEAKER_THAN_DESCENDANTS: &str = "weakerThanDescendants";
pub const STRENGTH_STRONGER_THAN_DESCENDANTS: &str = "strongerThanDescendants";
// Material-binding purpose token values. `allPurpose` is the empty
// token (the fallback binding `material:binding`).
pub const PURPOSE_ALL: &str = "";
pub const PURPOSE_FULL: &str = "full";
pub const PURPOSE_PREVIEW: &str = "preview";
// Canonical UsdPreviewSurface shader id + input/output names
pub const SHADER_ID_PREVIEW_SURFACE: &str = "UsdPreviewSurface";
pub const SHADER_ID_UV_TEXTURE: &str = "UsdUVTexture";
pub const SHADER_ID_PRIMVAR_READER_FLOAT2: &str = "UsdPrimvarReader_float2";
// UsdPreviewSurface inputs (`inputs:<name>`).
pub const PS_DIFFUSE_COLOR: &str = "diffuseColor";
pub const PS_EMISSIVE_COLOR: &str = "emissiveColor";
pub const PS_METALLIC: &str = "metallic";
pub const PS_ROUGHNESS: &str = "roughness";
pub const PS_CLEARCOAT: &str = "clearcoat";
pub const PS_CLEARCOAT_ROUGHNESS: &str = "clearcoatRoughness";
pub const PS_OPACITY: &str = "opacity";
pub const PS_OPACITY_THRESHOLD: &str = "opacityThreshold";
pub const PS_IOR: &str = "ior";
pub const PS_NORMAL: &str = "normal";
pub const PS_DISPLACEMENT: &str = "displacement";
pub const PS_OCCLUSION: &str = "occlusion";
pub const PS_SPECULAR_COLOR: &str = "specularColor";
pub const PS_USE_SPECULAR_WORKFLOW: &str = "useSpecularWorkflow";
// UsdUVTexture inputs / outputs.
pub const TEX_FILE: &str = "file";
pub const TEX_ST: &str = "st";
pub const TEX_WRAP_S: &str = "wrapS";
pub const TEX_WRAP_T: &str = "wrapT";
pub const TEX_FALLBACK: &str = "fallback";
pub const TEX_SCALE: &str = "scale";
pub const TEX_BIAS: &str = "bias";
pub const TEX_SOURCE_COLOR_SPACE: &str = "sourceColorSpace";
pub const TEX_OUT_R: &str = "r";
pub const TEX_OUT_G: &str = "g";
pub const TEX_OUT_B: &str = "b";
pub const TEX_OUT_A: &str = "a";
pub const TEX_OUT_RGB: &str = "rgb";
// UsdPrimvarReader inputs / outputs.
pub const PVR_VARNAME: &str = "varname";
pub const PVR_OUT_RESULT: &str = "result";