diff --git a/resources/Geometry/udim_cube.obj b/resources/Geometry/udim_cube.obj
new file mode 100644
index 0000000000..0892abc4a7
--- /dev/null
+++ b/resources/Geometry/udim_cube.obj
@@ -0,0 +1,41 @@
+# This file uses centimeters as units for non-parametric coordinates.
+g
+v -0.500000 -0.500000 0.500000
+v 0.500000 -0.500000 0.500000
+v -0.500000 0.500000 0.500000
+v 0.500000 0.500000 0.500000
+v -0.500000 0.500000 -0.500000
+v 0.500000 0.500000 -0.500000
+v -0.500000 -0.500000 -0.500000
+v 0.500000 -0.500000 -0.500000
+vt 0.99 0.01
+vt 0.99 1.01
+vt 1.01 0.01
+vt 2.01 0.99
+vt 2.01 1.01
+vt 1.99 0.99
+vt 1.01 1.01
+vt 2.99 2.01
+vt 1.01 1.99
+vt 1.99 1.99
+vt 2.99 0.01
+vt 2.99 0.99
+vt 0.01 0.01
+vt 0.01 0.99
+vt 2.01 0.01
+vt 0.99 1.99
+vt 1.99 0.01
+vt 0.01 1.01
+vt 0.01 1.99
+vt 0.99 0.99
+vt 2.01 2.01
+vt 1.99 1.01
+vt 1.01 0.99
+vt 2.99 1.
+g
+f 1/18 2/2 4/16 3/19
+f 3/3 4/17 6/6 5/23
+f 5/5 6/24 8/8 7/21
+f 7/7 8/22 2/10 1/9
+f 2/15 8/11 6/12 4/4
+f 7/13 1/1 3/20 5/14
diff --git a/resources/Images/udim_bunny/grid_1001.png b/resources/Images/udim_bunny/grid_1001.png
new file mode 100644
index 0000000000..46d670f413
Binary files /dev/null and b/resources/Images/udim_bunny/grid_1001.png differ
diff --git a/resources/Images/udim_bunny/grid_1002.png b/resources/Images/udim_bunny/grid_1002.png
new file mode 100644
index 0000000000..6e25a2a994
Binary files /dev/null and b/resources/Images/udim_bunny/grid_1002.png differ
diff --git a/resources/Images/udim_bunny/grid_1003.png b/resources/Images/udim_bunny/grid_1003.png
new file mode 100644
index 0000000000..f0bc2e469a
Binary files /dev/null and b/resources/Images/udim_bunny/grid_1003.png differ
diff --git a/resources/Images/udim_bunny/grid_1011.png b/resources/Images/udim_bunny/grid_1011.png
new file mode 100644
index 0000000000..f3df995e67
Binary files /dev/null and b/resources/Images/udim_bunny/grid_1011.png differ
diff --git a/resources/Images/udim_bunny/grid_1012.png b/resources/Images/udim_bunny/grid_1012.png
new file mode 100644
index 0000000000..bbd2e4e2fa
Binary files /dev/null and b/resources/Images/udim_bunny/grid_1012.png differ
diff --git a/resources/Images/udim_bunny/grid_1013.png b/resources/Images/udim_bunny/grid_1013.png
new file mode 100644
index 0000000000..67da0224c9
Binary files /dev/null and b/resources/Images/udim_bunny/grid_1013.png differ
diff --git a/resources/Materials/TestSuite/stdlib/udim/multi_udim_bunny.mtlx b/resources/Materials/TestSuite/stdlib/udim/multi_udim_bunny.mtlx
new file mode 100644
index 0000000000..d82911a862
--- /dev/null
+++ b/resources/Materials/TestSuite/stdlib/udim/multi_udim_bunny.mtlx
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/source/MaterialXGraphEditor/RenderView.cpp b/source/MaterialXGraphEditor/RenderView.cpp
index fe419c7908..bca344032a 100644
--- a/source/MaterialXGraphEditor/RenderView.cpp
+++ b/source/MaterialXGraphEditor/RenderView.cpp
@@ -403,15 +403,6 @@ void RenderView::updateMaterials(mx::TypedElementPtr typedElem)
// Check for any udim set.
mx::ValuePtr udimSetValue = _document->getGeomPropValue(mx::UDIM_SET_PROPERTY);
- // Skip material nodes without upstream shaders.
- mx::NodePtr node = typedElem ? typedElem->asA() : nullptr;
- if (node &&
- node->getCategory() == mx::SURFACE_MATERIAL_NODE_STRING &&
- mx::getShaderNodes(node).empty())
- {
- typedElem = nullptr;
- }
-
// Create new materials.
if (!typedElem)
{
@@ -422,6 +413,15 @@ void RenderView::updateMaterials(mx::TypedElementPtr typedElem)
}
}
+ // Skip material nodes without upstream shaders.
+ mx::NodePtr node = typedElem ? typedElem->asA() : nullptr;
+ if (node &&
+ node->getCategory() == mx::SURFACE_MATERIAL_NODE_STRING &&
+ mx::getShaderNodes(node).empty())
+ {
+ typedElem = nullptr;
+ }
+
mx::TypedElementPtr udimElement = nullptr;
mx::NodePtr materialNode = nullptr;
if (typedElem)