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 );