From 16d4b7e9beadcc8bdb19a87a29607238a7bfea9f Mon Sep 17 00:00:00 2001 From: Jerry Gamache Date: Fri, 16 Jul 2021 11:25:06 -0400 Subject: [PATCH] MAYA-111068 - Handle UDIM in MaterialX shaders Properly set the texture scale/offset attributes that adjust ST for UDIM support. --- lib/mayaUsd/render/vp2RenderDelegate/material.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/lib/mayaUsd/render/vp2RenderDelegate/material.cpp b/lib/mayaUsd/render/vp2RenderDelegate/material.cpp index 0b57800776..b3cb71a795 100644 --- a/lib/mayaUsd/render/vp2RenderDelegate/material.cpp +++ b/lib/mayaUsd/render/vp2RenderDelegate/material.cpp @@ -2241,12 +2241,22 @@ void HdVP2Material::_UpdateShaderInstance(const HdMaterialNetwork& mat) } status = _surfaceShader->setParameter(paramName, isSRGB); } + // These parameters allow scaling texcoords into the proper coordinates of the + // Maya UDIM texture atlas: if (status) { +#ifdef WANT_MATERIALX_BUILD + paramName = nodeName + (isMaterialXNode ? "uv_scale" : "stScale"); +#else paramName = nodeName + "stScale"; +#endif status = _surfaceShader->setParameter(paramName, info._stScale.data()); } if (status) { +#ifdef WANT_MATERIALX_BUILD + paramName = nodeName + (isMaterialXNode ? "uv_offset" : "stOffset"); +#else paramName = nodeName + "stOffset"; +#endif status = _surfaceShader->setParameter(paramName, info._stOffset.data()); } }