diff --git a/source/blender/io/usd/intern/usd_reader_material.cc b/source/blender/io/usd/intern/usd_reader_material.cc index 2941357d558..c03568841c1 100644 --- a/source/blender/io/usd/intern/usd_reader_material.cc +++ b/source/blender/io/usd/intern/usd_reader_material.cc @@ -72,6 +72,7 @@ static const pxr::TfToken RAW("RAW", pxr::TfToken::Immortal); static const pxr::TfToken black("black", pxr::TfToken::Immortal); static const pxr::TfToken clamp("clamp", pxr::TfToken::Immortal); static const pxr::TfToken repeat("repeat", pxr::TfToken::Immortal); +static const pxr::TfToken mirror("mirror", pxr::TfToken::Immortal); static const pxr::TfToken wrapS("wrapS", pxr::TfToken::Immortal); static const pxr::TfToken wrapT("wrapT", pxr::TfToken::Immortal); @@ -330,6 +331,10 @@ static int get_image_extension(const pxr::UsdShadeShader &usd_shader, const int return SHD_IMAGE_EXTENSION_CLIP; } + if (wrap_val == usdtokens::mirror) { + return SHD_IMAGE_EXTENSION_MIRROR; + } + return default_value; } diff --git a/source/blender/io/usd/intern/usd_writer_material.cc b/source/blender/io/usd/intern/usd_writer_material.cc index 85987539a26..83be0ac1382 100644 --- a/source/blender/io/usd/intern/usd_writer_material.cc +++ b/source/blender/io/usd/intern/usd_writer_material.cc @@ -77,6 +77,7 @@ static const pxr::TfToken Shader("Shader", pxr::TfToken::Immortal); static const pxr::TfToken black("black", pxr::TfToken::Immortal); static const pxr::TfToken clamp("clamp", pxr::TfToken::Immortal); static const pxr::TfToken repeat("repeat", pxr::TfToken::Immortal); +static const pxr::TfToken mirror("mirror", pxr::TfToken::Immortal); static const pxr::TfToken wrapS("wrapS", pxr::TfToken::Immortal); static const pxr::TfToken wrapT("wrapT", pxr::TfToken::Immortal); static const pxr::TfToken in("in", pxr::TfToken::Immortal); @@ -694,6 +695,9 @@ static pxr::TfToken get_node_tex_image_wrap(bNode *node) case SHD_IMAGE_EXTENSION_CLIP: wrap = usdtokens::black; break; + case SHD_IMAGE_EXTENSION_MIRROR: + wrap = usdtokens::mirror; + break; } return wrap;