Normal Map inverted when Merging Geograft using Geometry Node

Issue #1268 resolved
Miki3d created an issue

Hi there!
I noticed a strange artifact, one of the normal map channels gets inverted when using geometry node for merging meshes.
I attach a GIF that shows the issue.
Thanks :)

Comments (19)

  1. Alessandro Padovani

    Normal maps are usually inverted in iray when used with translucency, this is because the translucency effect inverts the normal map itself being it viewed from backlight. If this is the case you’re reporting then it’s not a bug but the correct behavior.

    If you have nothing to add I’ll mark as invalid.

  2. Miki3d reporter

    Mmm I guess it’s not something related to the material, I’m using my own material on blender, it looks like the geometry node merge changes the mesh normals in some way.

  3. Alessandro Padovani

    I tested your scene and here it seems it’s a viewport artifact, if you render the scene it looks fine. Let me know if you can confirm.

  4. Alessandro Padovani

    Yes I get the same behavior with cycles. It seems the join geometry node loses the normal map, if we bypass the join the bump works fine. No idea why sorry, may be this is a bug with geometry nodes in blender 3.3.1, but I never use geometry nodes myself so I’m definitely not an expert here.

    May be @Thomas or @Midnight can help better.

    note. My previous test render was with eevee where I get the same result if I enable/disable the geonode for the viewport. So eevee delivers different results than cycles, that could be a clue for a blender bug.

  5. Miki3d reporter

    Mmm strange, with eevee I get a different behavious, what blender version are you using? I’m on 3.3.1
    Anyway it’s not a problem of inverted normal, I tried inverting it manually and I get a different result, I think it’s more a problem of mesh normals/tangents

  6. Alessandro Padovani

    I’m on 3.3.1 too. Yes with eevee it’s different and that’s the first test I did above. I can confirm your results, it seems somehow the join geometry node doubles the bump with eevee and clears the bump with cycles. Don’t know if this is a bug or some settings/nodes that have to be added.

  7. Alessandro Padovani

    UPDATE. SOLUTION (for Thomas to fix)

    daz studio 4.21.0.5, blender 3.3.1, diffeomorphic 1.7.0.1286

    Ok I believe I got it. Please note that I’m no expert at all on geonodes so I found this fix just by tweaking around and have no idea how/why it works. But the fix is simple, we just have to set all the object info nodes “as instance“, this way the normal maps are preserved.

    Test scene included geo-bump.duf, it’s G8F with the Headlights geograft by Meipe.

    https://www.renderotica.com/store/sku/57579_Headlights-For-Genesis-8-Female

    steps:

    1. import the test scene geo-bump.duf and merge rigs
    2. merge geografts with geometry nodes, with or without “merge to new mesh“

    Below there’s the fix applied to the test scene, works fine with cycles and eevee, also with the “merge to new mesh“ option.

    From the blender documentation, please note that there are limits on what the join node can do, for example it can’t work with multiple volumes so the volumetric skin may not work fine. In general I believe geometry nodes are inefficient and not to be used for figures anyway, I don’t use them myself.

    https://docs.blender.org/manual/en/latest/modeling/geometry_nodes/geometry/join_geometry.html

    The node cannot handle the case when more than one geometry input has a volume component.

    note. This may also help #635, since using instances should improve the viewport performance.

  8. Miki3d reporter

    Believe me or not but I tried that instance flag too… but probably not all at the same time ^_^'!
    Thanks a lot Alessandro for your time and help!

  9. Alessandro Padovani

    @Thomas If you can fix this we can close as resolved. You have to set “as instance“ in all the object info nodes as shown above. Or please let us know if there’s any reason for not to fix this.

  10. Miki3d reporter

    Hi Alessandro, I only had time now to better control the scene, and it looks like using the “as instance” flag doesn’t merge the geografts anymore :(

  11. Alessandro Padovani

    Well I’ve no more ideas but I know very little of geonodes and don’t use them myself, not for figures anyway. So more experienced guys as @Thomas or @Midnight may help better. It may also be that this is a geonode bug.

    edit. note. Here the geografts appear as merged when rendering, as shown in my image above, though in the viewport doesn’t seem so.

  12. Alessandro Padovani

    diffeomorphic 1.7.3, blender 3.6 and 4.0

    This is fixed in blender 3.6.7 LTS and 4.0.2 with diffeomorphic 1.7.3. Below the results with the test scene geo-bump.duf it’s the same in iray and cycles/eevee. So probably this was a geonode bug in blender 3.3.1.

    Closing as resolved.

  13. Log in to comment