UsdTransform2d is not working when UsdPreviewSurace is specified in material

Hi,
I am checking to see if the USD material UsdPreviewSurface specification is reflected.
I use UsdTransform2d to specify texture iterations, etc., but this does not seem to be reflected in the RTX rendering.

Below are the specifications for Transform2d.
https://graphics.pixar.com/usd/release/spec_usdpreviewsurface.html#transform2d

I have created a sample usda file.
UsdPreviewSurface_transform_test.zip (14.3 KB)

When UsdPreviewSurface_transform_test.zip is unzipped, it is extracted into a usda file and one texture.

The material was specified as follows.

def Material "texture_mat"
{
    token inputs:frame:stPrimvarName = "st"
    token outputs:surface.connect = </World/Looks/texture_mat/PBRShader.outputs:surface>

    def Shader "PBRShader"
    {
        uniform token info:id = "UsdPreviewSurface"
        color3f inputs:diffuseColor = (1, 1, 1)
        color3f inputs:diffuseColor.connect = </World/Looks/texture_mat/diffuseTexture.outputs:rgb>
        float inputs:metallic = 0
        float inputs:roughness = 0.45599997
        token outputs:surface
    }

    def Shader "stReader"
    {
        uniform token info:id = "UsdPrimvarReader_float2"
        token inputs:varname.connect = </World/Looks/texture_mat.inputs:frame:stPrimvarName>
        float2 outputs:result
    }

    def Shader "diffuseTexture"
    {
        uniform token info:id = "UsdUVTexture"
        asset inputs:file = @./tile_image.png@
        token inputs:sourceColorSpace = "sRGB" (
            allowedTokens = ["auto", "raw", "sRGB"]
        )
        float2 inputs:st.connect = </World/Looks/texture_mat/transform2d.outputs:result>
        token inputs:wrapS = "repeat"
        token inputs:wrapT = "repeat"
        float3 outputs:rgb
    }

    def Shader "transform2d"
    {
        uniform token info:id = "UsdTransform2d"
        token inputs:in.connect = </World/Looks/texture_mat/stReader.outputs:result>
        float inputs:rotation = 0
        float2 inputs:scale = (1.5, 1.2)
        float2 inputs:translation = (0.5, 0.2)
        float2 outputs:result
    }
}

RTX-Real-Time, RTX Interactive(Path Tracing) and Iray do not appear to reference transform2d in UsdPreviewSurface.

I believe this feature is often used, especially when passing shapes via Connector.
I have also confirmed that it can be reflected in Apple’s AR Quick Look.

Check Environment

  • OS : Windows 10
  • Omniverse Create 2022.2.1

Confirmation Procedure

I have specified transform2d on the right Cube, but it is not reflected.
Switch to Pixar Storm and you will see it reflected.

1 Like

Thank you @ft-lab for the repro scene. I’ve logged OM-63160 for this.

1 Like