UV interpolation distortion

   288   3   0
User Avatar
Member
10 posts
Joined: 10月 2015
オフライン
Hi! I'm looking to understand the underlying cause and possible fixes for the triangular UV interpolation artifacts on non-rectangular polygons. Here's an example of what I'm seeing:




In this example, It appears that the center of the U component of the UV is not resolving to the center of the polygon. The uv interpolation problem seems to be in both vulkan viewport and in Karma renders, and exists when the polygon is a quad or triangulated.

The docs page that discusses primitive spaces [www.sidefx.com] indicates:

"non-convex quads will usually still be treated as bilinear patches"

This seems to be occurring, though in the above example each point is on the same plane.

There are some ways to reduce it that have undesirable externalizes. Subdividing the surface does diminish the effect by making the quads smaller, but it requires a huge increase in poly count. (Which I'd like to avoid.) Using a UV project will remove the distortion, though in my case I'd like to map a full image to the polygon to have a consistent texture along the edges. Triangulating the quads will at least make the render consistent with the viewport, but it doesn't help the distortion.

There is evidence that Houdini does understand the uv space correctly when using uvsample, as here the line of points is straight as expected, but by default textures themselves appear to be using a different method to sample the UVs.




Any insight on this behavior how this could avoided?
Edited by KaleWeaver - 2026年4月26日 01:22:52

Attachments:
UV_interpolation_sampleScene_v01.hiplc (90.1 KB)
Uv_interpolation_example.png (1.7 MB)
uvSample_example.png (2.4 MB)

User Avatar
Member
8259 posts
Joined: 9月 2011
オフライン
I've submitted issues with respect to Karma and barycentric only interpolation. I'm not sure what the reason of the limitation was, but it didn't seem likely the limitation would go away.

Flagging the surface as a catrom subdivision interpolated surface does resolve the issue but will smooth the surface and change the shape slightly, and cannot be used with all topologies so isn't a perfect work around.

KaleWeaver
The docs page that discusses primitive spaces indicates:

"non-convex quads will usually still be treated as bilinear patches"
This help document is Mantra specific and doesn't mention how Karma treats surfaces. Karma is closer to the viewport in the way it interpolates attributes, using barycentric interpolation of triangles rather than bilinear patches.

Mantra is still a quad-native renderer and does bilinear interpolation if you don't mind giving up gpu rendering and materialx shaders and usd support. It's still an excellent renderer.
Edited by jsmack - 2026年4月26日 00:48:55
User Avatar
Member
10 posts
Joined: 10月 2015
オフライン
Thanks for your insight!

Sounds like submitting my own report that this is an unexpected behavior wouldn't be a terrible idea. It can be hard for me to tell when an issue is my understanding or the software itself.

Yeah, Mantra resolves the UVs as expected. Cool.



My primary reason for using karma and LOPs, at least for my current project, is due to support for copernicus's texture building capabilities and see it as I work. Using mantra, I can set up a principle shader with a texture reference to a COP node and it works in viewport, but Mantra doesn't seem to like that... I can write out files as a workaround. I get the impression that Mantra is getting reduced support for the newer updates.


EDIT: Made a bug report!
Edited by KaleWeaver - 2026年4月26日 20:03:31

Attachments:
Mantra_vs_viewport.png (1.9 MB)

User Avatar
Member
8259 posts
Joined: 9月 2011
オフライン
KaleWeaver
I get the impression that Mantra is getting reduced support for the newer updates.

Correct, mantra is on maintenance--it's not being removed but won't get new feature support like loading textures from the new composite network. It works with the old composite network though.
  • Quick Links