UsdPreviewSurface
Overview
The UsdPreviewSurface material is part of the USD Preview Surface spec.
From openusd.org:
The UsdPreviewSurface is meant to model a “modern” physically based surface that strikes a balance between expressiveness and reliable interchange between current day DCC’s and game engines and other real-time rendering clients.
Attribute Reference
General attributes
clearcoat
Float bindable
default: 0.0
Second specular lobe amount. The color is white.
clearcoatRoughness
Float bindable
default: 0.01
Roughness for the second specular lobe.
diffuseColor
Rgb bindable
default: [ 0.18, 0.18, 0.18 ]
When using metallic workflow this is interpreted as albedo.
displacement
Float bindable
default: 0.0
Displacement in the direction of the normal.
emissiveColor
Rgb bindable
default: [ 0, 0, 0 ]
Emissive component.
extra_aovs
Map
default: None
Bind this attribute to a 'ListMap' that contains references to ExtraAovMaps that specify additional outputs that can be assigned to a RenderOutput "light aov" result
ior
Float bindable
default: 1.5
Index of Refraction to be used for translucent objects and objects with specular components, including the clearcoat if clearcoat > 0.
label
String
default:
label used in material and light aovs
metallic
Float bindable
default: 0.0
Use 1 for metallic surfaces and 0 for non-metallic. If metallic is 1, then both F0 (reflectivity at 0 degree incidence) and edge F90 reflectivity will simply be the Albedo. If metallic is 0, then Albedo is ignored in the calculation of F0 and F90; F0 is derived from ior via ( (1-ior)/(1+ior) )^2 and F90 is white. In between, we interpolate.
normal
Vec3f bindable
default: [ 0, 0, 1 ]
Expects normal in tangent space [(-1,-1,-1), (1,1,1)]
occlusion
Float bindable
default: 1.0
Ignored by Moonray
opacity
Float bindable
default: 1.0
When opacity is 1.0 then the geometry is fully opaque, if it is smaller than 1.0 then the geometry is translucent, when it is 0 the geometry is transparent. Note that even a fully transparent object still receives lighting as, for example, perfectly clear glass still has a specular response.
opacityThreshold
Float bindable
default: 0.0
The opacityThreshold input is useful for creating geometric cut-outs based on the opacity input. A value of 0.0 indicates that no masking is applied to the opacity input, while a value greater than 0.0 indicates that rendering of the surface is limited to the areas where the opacity is greater or equal to that value.
priority
Int
default: 0
The material's place in an order of precedence for overlapping dielectrics. A value of 0 means the priority should be ignored. Materials with lower numbers (higher priority) "override" materials with higher numbers (lower priority). To enable automatic removal of self-overlapping geometry, a non-zero priority must be set on the geometry's material.
record_reflected_cryptomatte
Bool
default: False
Indicates whether the next reflected surface should appear in the reflected cryptomatte layers
record_refracted_cryptomatte
Bool
default: False
Indicates whether the next refracted surface should appear in the refracted cryptomatte layers
roughness
Float bindable
default: 0.5
Roughness for the specular lobe. The value ranges from 0 to 1, which goes from a perfectly specular surface at 0.0 to maximum roughness of the specular lobe.
specularColor
Rgb bindable
default: [ 0, 0, 0 ]
Specular color to be used. This is the color at 0 incidence. Edge color is assumed white. Transition between the two colors according to Schlick fresnel approximation.
useSpecularWorkflow
Int enum
0 = “Metalness workflow” (default)
1 = “Specular workflow”
This node can fundamentally operate in two modes : Specular workflow where you provide a texture/value to the 'specularColor' input. Or, Metallic workflow where you provide a texture/value to the 'metallic' input.