Skip to content

USDIMAGINGGL_ENGINE_ENABLE_SCENE_INDEX envvar still has to be has to be set to 1 to enable rendering with RenderSettings #2728

Description

@JamesPedFoundry

Describe the bug

We are finding we still need to manually set up USDIMAGINGGL_ENGINE_ENABLE_SCENE_INDEX envvar to be 1 when trying to use hdArnold to render using RenderSettings. This should no longer be a requirement if using USD 26.03, where it is now on by default. Running without this set produces the following warnings in a scene with valid RenderSettings/Product/Vars:
Error: Failed verification: ' !aovBindings.empty() ' -- No AOV bindings to render into!

From 26.03 onwards this environment variable is expected to be True by default:

From the OpenUSD changelog.md:

  • Important: UsdImaging's scene delegate mode is now deprecated in favor of
    scene index mode. Accordingly, USDIMAGINGGL_ENGINE_ENABLE_SCENE_INDEX
    defaults to 1,

To Reproduce
Steps to reproduce the behavior:

  1. Build hdArnold/arnold-usd with the following settings to ensure Scene indices and using UsdRenderSettings is enabled.
    a. BUILD_SCENE_INDEX_PLUGIN="ON"
    b. ENABLE_HYDRA2_RENDERSETTINGS="ON"
    c. HYDRA_NORMALIZE_DEPTH="ON"
  2. Try to render a scene with valid RenderSettings (attached in additional context, since I couldn't attach the .usda file, and thought that'd be easier than a zip file)
    Expected behavior
    Arnold renders the scene with a single RenderVar of RGBA

Screenshots
If applicable, add screenshots to help explain your problem.

Used Software Versions

  • Arnold: [e.g. 5.4.0.2]
  • USD: 26.03
  • Latest Arnold-usd commits

Additional context

Workaround is to set USDIMAGINGGL_ENGINE_ENABLE_SCENE_INDEX=1 in the local env (but as discussed, this should not be required from USD 26.03+)

#usda 1.0
(
    doc = """Generated from Composed Stage of root layer 
"""
    renderSettingsPrimPath = "/render/rendersettings"
)

def "cameras"
{
    def Camera "camera" (
        kind = "group"
    )
    {
        double centerOfInterest = 105.560628936735
        double3 xformOp:rotateXYZ:UsdCamera = (0, -0, 2.510550800588584e-17)
        double3 xformOp:scale:UsdCamera = (1, 1, 1)
        double3 xformOp:translate:UsdCamera = (0, 0, 10)
        uniform token[] xformOpOrder = ["xformOp:translate:UsdCamera", "xformOp:rotateXYZ:UsdCamera", "xformOp:scale:UsdCamera"]
    }
}


def Scope "geo" (
    kind = "group"
)
{
    def Mesh "primitive" (
        kind = "group"
    )
    {
        float3[] extent = [(-0.5, -0.5, -0.5), (0.5, 0.5, 0.5)]
        int[] faceVertexCounts = [4, 4, 4, 4, 4, 4]
        int[] faceVertexIndices = [3, 2, 1, 0, 0, 1, 5, 4, 1, 2, 6, 5, 2, 3, 7, 6, 3, 0, 4, 7, 5, 6, 7, 4]
        normal3f[] normals = [(0, -1, 0), (0, -1, 0), (0, -1, 0), (0, -1, 0), (0, 0, -1), (0, 0, -1), (0, 0, -1), (0, 0, -1), (1, 0, 0), (1, 0, 0), (1, 0, 0), (1, 0, 0), (0, 0, 1), (0, 0, 1), (0, 0, 1), (0, 0, 1), (-1, 0, 0), (-1, 0, 0), (-1, 0, 0), (-1, 0, 0), (0, 1, 0), (0, 1, 0), (0, 1, 0), (0, 1, 0)] (
            interpolation = "faceVarying"
        )
        uniform token orientation = "leftHanded"
        point3f[] points = [(-0.5, -0.5, -0.5), (0.5, -0.5, -0.5), (0.5, -0.5, 0.5), (-0.5, -0.5, 0.5), (-0.5, 0.5, -0.5), (0.5, 0.5, -0.5), (0.5, 0.5, 0.5), (-0.5, 0.5, 0.5)]
        float2[] primvars:st = [(0.25, 0.33333334), (0.5, 0.33333334), (0.5, 0), (0.25, 0), (1, 0.33333334), (0.75, 0.33333334), (0.75, 0.6666667), (1, 0.6666667), (0.5, 0.6666667), (0.25, 0.6666667), (0, 0.33333334), (0, 0.6666667), (0.5, 1), (0.25, 1)] (
            interpolation = "faceVarying"
        )
        int[] primvars:st:indices = [0, 1, 2, 3, 4, 5, 6, 7, 5, 1, 8, 6, 1, 0, 9, 8, 0, 10, 11, 9, 12, 8, 9, 13]
    }
}

def "lights"
{
    def DistantLight "light" (
    )
    {
    }
}

def "render"
{
    def RenderSettings "rendersettings"
    {
        rel camera = </cameras/camera>
        rel products = </render/rendersettings/renderproduct>
        uniform int2 resolution = (540, 270)

        def RenderProduct "renderproduct"
        {
            rel camera = </cameras/camera>
            uniform bool disableDepthOfField = 1
            uniform bool disableMotionBlur = 1
            uniform bool instantaneousShutter = 1
            rel orderedVars = [
                </render/rendersettings/renderproduct/RGBA>,
            ]
            token productName = "/tmp/outputArnold3.exr"

            def RenderVar "RGBA"
            {
                uniform token dataType = "color4f"
                uniform string sourceName = "RGBA"
            }
        }
    }
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    Status
    Todo

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions