diff --git a/python/IECoreDelightTest/ShaderNetworkAlgoTest.py b/python/IECoreDelightTest/ShaderNetworkAlgoTest.py index c52bde8aabc..4f5295b903c 100644 --- a/python/IECoreDelightTest/ShaderNetworkAlgoTest.py +++ b/python/IECoreDelightTest/ShaderNetworkAlgoTest.py @@ -513,7 +513,7 @@ def testConvertUSDPrimvarReader( self ) : reader = network.getShader( "reader" ) self.assertEqual( reader.name, convertedShaderType ) - self.assertEqual( len( reader.parameters ), 2 ) + self.assertEqual( len( reader.parameters ), 3 if convertedShaderType == "dlPrimitiveAttribute" else 2 ) self.assertEqual( reader.parameters["attribute_name" if convertedShaderType == "dlPrimitiveAttribute" else "name"].value, "test" ) self.assertEqual( reader.parameters["fallback_value" if convertedShaderType == "dlPrimitiveAttribute" else "defaultValue"].value, convertedDefault ) diff --git a/src/IECoreDelight/ShaderNetworkAlgo.cpp b/src/IECoreDelight/ShaderNetworkAlgo.cpp index 7c9a168cc64..29b46d5d14c 100644 --- a/src/IECoreDelight/ShaderNetworkAlgo.cpp +++ b/src/IECoreDelight/ShaderNetworkAlgo.cpp @@ -398,6 +398,7 @@ Color3f blackbody( float kelvins ) const InternedString g_angleParameter( "angle" ); const InternedString g_attributeNameParameter( "attribute_name" ); +const InternedString g_attributeTypeParameter( "attribute_type" ); const InternedString g_aParameter( "a" ); const InternedString g_bParameter( "b" ); const InternedString g_baseParameter( "base" ); @@ -903,6 +904,7 @@ void convertUSDShaders( ShaderNetwork *shaderNetwork ) else if( shader->getName() == "UsdPrimvarReader_float2" ) { newShader = new Shader( "dlPrimitiveAttribute", "osl:surface" ); + newShader->parameters()[g_attributeTypeParameter] = new IntData( 3 ); // UV transferUSDParameter( shaderNetwork, handle, shader.get(), g_varnameParameter, newShader.get(), g_attributeNameParameter, std::string() ); transferUSDParameter( shaderNetwork, handle, shader.get(), g_fallbackParameter, newShader.get(), g_fallbackValueParameter, V2f( 0 ) ); convertVecToColor( newShader.get(), g_fallbackValueParameter );