UsdPreviewSurface#
Note
In order to be compliant with Pixar’s UsdPreviewSurface Specification, we have refactored the native Omniverse representation. Workflows can now include a multi-node approach to define a surface. We now support the relevant nodes from the specification.
Overview#
The UsdPreviewSurface shading model aims to provide a simple and intuitive set of parameters for defining a surface appearance. It is part of the larger USD ecosystem and provides a standard way to describe surface appearances in USD files. It facilitates interoperability and asset exchange between different software tools and rendering engines, making it easier to share and collaborate on 3D scenes and assets, and as such does not require MDL.
The USD Preview Surface shading model supports various features listed below. These parameters can be defined and adjusted within a USD file, allowing for consistent material representation across different applications and renderers that support USD.
Parameters
Parameters |
Description |
---|---|
diffuseColor |
The color of the material
|
emissiveColor |
The emissive color of the material
|
useSpecularWorkflow |
Uses Specular workflow instead of Physical workflow
|
specularColor |
Tint color for specular reflections
|
metallic |
A range from 0-1 describing whether the surface is Dielectric or Conductive
|
0 is Dielectric (non metal) |
|
1 is Conductive (metallic) |
|
roughness |
The amount of reflectivity a surface has. Range is 0-1
|
0 = perfectly reflective surface |
|
1 = no reflectivity |
|
clearcoat |
Adjusts how “thick” the clearcoat is.
|
clearcoatRoughness |
The amount of reflectivity a surface has. Range is 0-1
|
0 = perfectly reflective surface |
|
1 = no reflectivity |
|
opacity |
The opacity of the surface in a range from 0-1
|
0 = No Opacity or “See Through” |
|
1 = Fully Opaque |
|
opacityThreshold |
The opacity threshold is a clamp that cuts opacity to 0 if opacity is below the threshold amount
|
ior |
Incidence of Refraction controls how much the light is “bent” when passing through a surface
|
normal |
Sets the normal of the surface
|
displacement |
Shifts the rendered surface by the displacement amount
|
occlusion |
Artificially adds shading to the surface
|
UsdPreviewSurface Nodes#
The material graph now allows you to author a shading graph composed of multiple nodes to represent a UsdPreviewSurface. You will need supply a simple graph for compliance with USD standards that must include a UsdPrimvarReader_float2(1) set to “st” to look up UV coordinates, that plugs into the “st” port on a UsdUVTexture(2) node which then plugs into the corresponding texture port on the UsdPreviewSurface(3) node per the following example.
Note
Older scenes containing UsdPreviewSurfaces may not display correctly. If this is the case then you will need to add a UsdPrimvar_float2(1) and UsdUVTexture(2).
Nodes
Node |
Description |
---|---|
UsdPreviewSurface |
Base Definition of UsdPreviewSurface
|
UsdUVTexture |
Node that can be used to read UV textures, including tiled textures such as Mari UDIM’s
|
UsdTransform2d |
Node that takes a 2d input and applies an affine transformation to it
|
UsdPrimvarReader_float |
Node that provides the ability for shading networks to consume surface-varying data defined on geometry of type float
|
UsdPrimvarReader_float2 |
Node that provides the ability for shading networks to consume surface-varying data defined on geometry of type float 2
|
UsdPrimvarReader_float3 |
Node that provides the ability for shading networks to consume surface-varying data defined on geometry of type float 3
|
UsdPrimvarReader_float4 |
Node that provides the ability for shading networks to consume surface-varying data defined on geometry of type float 4
|
UsdPrimvarReader_int |
Node that provides the ability for shading networks to consume surface-varying data defined on geometry of type integer
|
UsdPrimvarReader_normal |
Node that provides the ability for shading networks to consume surface-varying data defined on geometry of vector type normal
|
UsdPrimvarReader_point |
Node that provides the ability for shading networks to consume surface-varying data defined on geometry of type point
|
UsdPrimvarReader_vector |
Node that provides the ability for shading networks to consume surface-varying data defined on geometry of type vector
|
Note
Unsupported Nodes The following nodes are provided as null objects until they are fully supported.
UsdPrimvarReader_string
UsdPrimvarReader_matrix