I have a group of faces generated in Geometry Nodes. They will be procedurally arranged in different shapes and the grid size will vary, depending on the image I use and the number of faces I need (it's a part of a bigger project).

I use these faces to display an image. Currently I get the bounding box of the original plane and save the vector to an attribute that I use in the shader.

I would like to scale individual faces, but keep their positions in the UV map as they are now (so that the part of the image that is on the face before scaling stays the same after scaling; now the image is just projected over the faces regardless of their size - see the pictures below, they explain better what I mean). How can I achieve that? I'm using Blender 3.4.1.

This is how it looks now:


Nodes close-up: Nodes close-up

Shader: Shader

Current result after scaling faces: Current result

What I want to achieve: Needed result

*** EDIT *** Here's the solution, if anyone is interested: The solution


1 Answer 1


all you have to do is capture the uv map (you generated) before you scale elements.

  • $\begingroup$ Yes, that's it, thanks. I actually figured that out the next day, but got caught up in the project and forgot to add the answer here. I'll add a screenshot with all the nodes in case someone in future has the same issue. $\endgroup$
    – Karolina
    Commented Apr 23, 2023 at 10:35

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .