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.