3
$\begingroup$

In my scene I have a default plane and scaled one edge along the x axis. I have a material that is just a tile texture that is mapped on with a UV map. Here is a screenshot of the setup.

0 Subdiv

This is far from what I would expect. I would expect that it would look like the tiles had been compressed. My expected result shows up as I subdivide the plane. What is subdivide doing that is fixing this mapping?

Here is 1 subdivision 1 Subdiv

Here is 3 subdivisions 3 Subdiv

$\endgroup$
  • $\begingroup$ Even stranger if I undo the subdivide with something like limited dissolve taking the mesh back to 4 vertices it is a different mapping than the start. $\endgroup$ – Striar Jun 14 '17 at 17:28
  • $\begingroup$ Subdivide decreases difference in the faces sides ratio. If you scale the edge on the UV map corresponding to the bottom one of the mesh on the first screenshot the result will be pretty much the same as on the last one (except for a bit distortion on the screenshot). $\endgroup$ – Mr Zak Jun 14 '17 at 17:34
  • $\begingroup$ @MrZak Do you happen to know why the face side ratio is important? I'm still unsure on why this doesn't work with 1 face. Shouldn't the UV just map a shrunken version rather than being distorted? $\endgroup$ – Striar Jun 14 '17 at 17:40
  • $\begingroup$ @Aoradon i believe this is because UV maps are based on vertices, not on faces. subdiving places more vertices at points along the UV map so blender doesn't have to extrapolate the positioning. so far as the image not compressing, this is because you are adding more verts to the mesh, and the map at the same time, so no scale is actually changing, you are merely giving more data to what already exists. $\endgroup$ – Scalia Jun 14 '17 at 17:41
  • 1
    $\begingroup$ One reason is probably the uncertainty if the rectangle is really flat. If you bend a flat square at one point upwards, there are two ways to cut the shape in order to get two triangles, each of them creates a different 3D shape, with different connection lengths of two opposing vertices. It's not directly possible to interpolate quads, that may be bent this way. $\endgroup$ – Cebbi Jun 15 '17 at 4:35
2
$\begingroup$

Ah I figured it out and it's not the vertices. Blender uses a triangulated version of a mesh to do UV mapping.

Looking at this we can see two distinct triangles:

Triang1

Initially this doesn't make much sense since the object only has 4 vertices and should just compress as if it was transformed in Photoshop. However, once the mesh is triangulated with Ctrl + T the problem is clear.

Triang2

All of the UV data is equally split between two uneven triangles. Subdividing makes the all of tris closer in size, creating less distortion.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.