3
$\begingroup$

I'm using Geometry Nodes to create a sort of template object, with geometry being joined together from other objects and materials assigned to the different parts.

While creating the node setup I found that joining additional geometry breaks one of my materials. This is a material that relies on the original geometry's UV data.

They way it breaks is as follows: In the joining process, somehow the UV data is interfered with, apparently causing a Factor value of 0 to be sent to the Mix node instead of a gradient of 0-1 float values.

I created a simplified example file that illustrates the problem.

Here is a GIF for comparison (before and after joining):

enter image description here

Above: The cube is the original object with the Geometry Nodes modifier on it. When any other mesh source is joined (in this case an Ico Sphere), the mapping of the original object breaks, turning from a purple/green gradient to solid light green.

Does anyone know why this happens and how to get around it? It seems like it might be a bug. It occurs in both Eevee and Cycles. Thanks

(Created using Blender 3.0.1)

$\endgroup$
5
  • 4
    $\begingroup$ This is one of the hottest known limitations right now, it's being worked on : developer.blender.org/T85962 $\endgroup$
    – Gorgious
    Commented Feb 20, 2022 at 9:24
  • $\begingroup$ @vklidu That's too bad, because a typical boolean will transfer UV data too. And simply selecting multiple objects and pressing Ctrl J will also join UV data. So I think the expectation of most people would be for UV data to carry over. Hopefully this will be improved on. $\endgroup$
    – Mentalist
    Commented Feb 20, 2022 at 10:31
  • $\begingroup$ @Gorgious Thank you for the link. Nice to know it's being worked on, as many people seem to be in need of the ability to join UV data. $\endgroup$
    – Mentalist
    Commented Feb 20, 2022 at 13:02
  • $\begingroup$ I deleted my comment (since it seems I was wrong) ... $\endgroup$
    – vklidu
    Commented Feb 20, 2022 at 15:08
  • $\begingroup$ I found out that if I use "Instance on points" node to add the textured object before joining the geometry with the other objects, then the uv map is preserved and works as expected. $\endgroup$
    – ofekp
    Commented Mar 30, 2023 at 13:32

1 Answer 1

3
$\begingroup$

According to Gorgious's link to dev ... Jacques is mentioning to access UV via Attribute node with specific uvmap name. Currently it works for Cycles only.

For me it seems to be working with UV Map node too ... just set UV map, don't keep it empty.

enter image description here

$\endgroup$
2
  • $\begingroup$ Thanks. Bummer about being Cycles only, but better than nothing. I tried it in Cycles, and when I applied the Geometry Nodes modifier it still looked okay in the viewport but... the UV Map node's data field turned red, and no map shows in the UV Editor. So I guess texture baking etc = out of the question. Still, I'm optimistic that we will see improvements on this functionality in the near future. $\endgroup$
    – Mentalist
    Commented Feb 22, 2022 at 15:12
  • 1
    $\begingroup$ As workaround ... if you keep original object you can use Data Transfer modifier > Face Corner Data > UVs to get it back ... it is not efficient I know, but that is what it is. $\endgroup$
    – vklidu
    Commented Feb 22, 2022 at 18:48

You must log in to answer this question.

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