diff --git a/source/blender/io/usd/intern/usd_writer_material.cc b/source/blender/io/usd/intern/usd_writer_material.cc index e683a24ca1249658c2d050e77c4adda548fd432e..cf8b22c7eef38685f9b34941ef712de980bd8010 100644 --- a/source/blender/io/usd/intern/usd_writer_material.cc +++ b/source/blender/io/usd/intern/usd_writer_material.cc @@ -174,16 +174,17 @@ static void create_usd_preview_surface_material(const USDExporterContext &usd_ex pxr::UsdShadeShader usd_shader = create_usd_preview_shader( usd_export_context, usd_material, input_node); - /* Determine the name of the USD texture node attribute that should be - * connected to this input. */ + /* Create the UsdUVTexture node output attribute that should be connected to this input. */ pxr::TfToken source_name; if (input_spec.input_type == pxr::SdfValueTypeNames->Float) { /* If the input is a float, we connect it to either the texture alpha or red channels. */ source_name = STREQ(input_link->fromsock->identifier, "Alpha") ? usdtokens::a : usdtokens::r; + usd_shader.CreateOutput(source_name, pxr::SdfValueTypeNames->Float); } else { source_name = usdtokens::rgb; + usd_shader.CreateOutput(usdtokens::rgb, pxr::SdfValueTypeNames->Float3); } /* Create the preview surface input and connect it to the shader. */