From ed737ea2c8647229fb1f368f0ae72faa9222ab4e Mon Sep 17 00:00:00 2001 From: John Haddon Date: Tue, 7 Apr 2026 12:11:17 +0100 Subject: [PATCH] ArnoldProceduralAlgo : Support loading of ArnoldProcedural UsdPrims --- Changes | 3 +++ contrib/IECoreUSD/src/IECoreUSD/ArnoldProceduralAlgo.cpp | 6 ++++++ 2 files changed, 9 insertions(+) diff --git a/Changes b/Changes index a7e6c5d91a..d03bdabcfb 100644 --- a/Changes +++ b/Changes @@ -1,7 +1,10 @@ 10.6.x.x (relative to 10.6.4.0) ======== +Improvements +------------ +- USDScene : Added loading of ArnoldProcedural prims as Cortex ExternalProcedural objects. 10.6.4.0 (relative to 10.6.3.1) ======== diff --git a/contrib/IECoreUSD/src/IECoreUSD/ArnoldProceduralAlgo.cpp b/contrib/IECoreUSD/src/IECoreUSD/ArnoldProceduralAlgo.cpp index 6d543be0df..4ce6b30269 100644 --- a/contrib/IECoreUSD/src/IECoreUSD/ArnoldProceduralAlgo.cpp +++ b/contrib/IECoreUSD/src/IECoreUSD/ArnoldProceduralAlgo.cpp @@ -55,6 +55,7 @@ namespace const pxr::TfToken g_arnold( "arnold" ); const pxr::TfToken g_arnoldAlembic( "ArnoldAlembic" ); const pxr::TfToken g_arnoldNodeEntry( "arnold:node_entry" ); +const pxr::TfToken g_arnoldProcedural( "ArnoldProcedural" ); const pxr::TfToken g_arnoldProceduralCustom( "ArnoldProceduralCustom" ); const pxr::TfToken g_arnoldUsd( "ArnoldUsd" ); @@ -87,6 +88,10 @@ IECore::ObjectPtr readArnoldProcedural( pxr::UsdGeomGprim &gprim, pxr::UsdTimeCo gprim.GetPrim().GetAttribute( g_arnoldNodeEntry ).Get( &nodeEntry, time ); result->setFileName( nodeEntry ); } + else if( gprim.GetPrim().IsA( g_arnoldProcedural ) ) + { + result->setFileName( "procedural" ); + } else if( gprim.GetPrim().IsA( g_arnoldUsd ) ) { result->setFileName( "usd" ); @@ -157,6 +162,7 @@ bool arnoldProceduralMightBeTimeVarying( pxr::UsdGeomGprim &gprim ) } ObjectAlgo::ReaderDescription g_arnoldAlembicReaderDescription( g_arnoldAlembic, readArnoldProcedural, arnoldProceduralMightBeTimeVarying ); +ObjectAlgo::ReaderDescription g_arnoldProceduralReaderDescription( g_arnoldProcedural, readArnoldProcedural, arnoldProceduralMightBeTimeVarying ); ObjectAlgo::ReaderDescription g_arnoldProceduralCustomReaderDescription( g_arnoldProceduralCustom, readArnoldProcedural, arnoldProceduralMightBeTimeVarying ); ObjectAlgo::ReaderDescription g_arnoldUsdReaderDescription( g_arnoldUsd, readArnoldProcedural, arnoldProceduralMightBeTimeVarying );