Home Technical Talk

Transfer or Project Normal/Height to High Poly Mesh possible?

Greetings everyone,

I have the following conundrum, I accidentally deleted the high poly mesh and now I have just the very low poly mesh, its all quads if that matters,  but I do have the very detailed normal map already created, is there any chance or any miracle out there that I can perform of any sort to transfer or projection the actual normal map back to the mesh as long as I increase its count to sculpt more on it or add details and such, please help if possible, what software might allow me to do this?


I understand already that there are ways to have a high poly mesh, render a normal map and then transfer that to a low poly, but id like to know how do you reverse that so to speak from a highly detailed normal back to a high poly mesh where you can actually see 3D results on the mesh as if it was freshly sculpted to add even more details?

Sorry if I am not using the right technical terms I hope someone can understand what I mean, I am still new to this sort of things :)

Replies

  • Alex_J
    Offline / Send Message
    Alex_J grand marshal polycounter
    In zbrush you can convert a displacement map to geometry. Pretty simple, you just have to have enough subdivisions and then its a one button click. If you have a height map, that may work, or at least get you kind of started... i don't know about converting a normal map to geometry.
  • Alanick

    About displacement is kind of easy so to speak.

    I am not talking about converting normal to geometry, is that even possible?

    I simply want to transfer back the details off of the normal map back to its actual mesh, it has to be somewhere some sort of reverse process, right?

  • Eric Chadwick
    No, unfortunately.

    A normal map encodes angles, not distances. That means they're all relative... angles relative to the current lowpoly mesh.

    There are software filters that try to approximate a height map from a normal map, but they're all pretty crappy, no where near enough detail to recreate the original high poly model.

    Sorry. Implement a better backup system, nothing like a hard lesson to incentivize proper backups.
  • Alanick

    Well, I guess it is what it is, thanks.

  • pior
    Offline / Send Message
    pior grand marshal polycounter
    If you don't need a really accurate result then yes, it is somewhat possible and actually a pretty interesting thing to do when it comes to resculpting a "v2" version of a character, after the high and low got way out of sync because of too many edits for instance. I've done it a few times in the past, up to a point where this became a bit of a habit to go from a very rough V1 sculpt to a cleaner V2 (for character faces and surface anatomy).

    - Loading the normal map in Crazybump (or similar), to create an approximation of a displacement map. This is 100% eyeballing and playing with the settings until things look smooth. Getting the Normalmap Yup/Ydown correct on import is important here.

    - Then in Mudbox, adding a displacement operation using this hacked in displacement map. Here too some eyeballing of settings will be necessary to find the displacement 0 and the appropriate multiplier but it's quite straightforward.

    Once applied it will appear as a regular sculpt layer. Then it's just a matter of sculpting ahead to clean up everything.
  • elmirage
    hello and i pickup this thread after a while sorry for that.

    I read all the above and it still hurts my logic NOT to be able to reverse what is essentially a math process.

    If you feed substance painter or equivalent with a high and low poly, it will calculate all the maps as a way to reconcile both. It is a simple equation then. If you give the low poly and all the maps to a software; why the heck is it not possible to reverse this math process, ie derive the high poly?

    thanks
  • rollin
    Offline / Send Message
    rollin polycounter
    Old thread, still an interesting topic
    @elmirage
    Because math is not always reversible. Like it's not possible to get back x from y = round(x).

    Anyhow it should be possible with a fitting algorithm to reconstruct the highpoly. 
    The algorithm would run as many itterations as necessary until the resulting normals from the normal-map + lowpoly match the normals of the reconstructed highpoly. But as this is not required very often I guess no one did the effort yet 
  • Eric Chadwick
    Normal maps do not record depth, only angles. So you can't derive the highpoly vertex positions from a lowpoly model.

    However if you had a displacement map, then you could tesselate and displace the lowpoly to get closer to the highpoly shape.

    Be aware though, greyscale displacement maps cannot record undercuts.

    Similar to this.

  • Alex_J
    Offline / Send Message
    Alex_J grand marshal polycounter
    zbrush does have a certain kind of brush called a VDM brush (vector displacement) that can record undercuts. Doesn't solve teh OP problem at all, but just worth mentioning.
  • cptSwing
    Offline / Send Message
    cptSwing polycounter lvl 11
    Normal maps do not record depth, only angles. So you can't derive the highpoly vertex positions from a lowpoly model.

    However if you had a displacement map, then you could tesselate and displace the lowpoly to get closer to the highpoly shape.

    Be aware though, greyscale displacement maps cannot record undercuts.

    Similar to this.

    Omg where can I find that life-size pin thing?
  • poopipe
    Offline / Send Message
    poopipe grand marshal polycounter
    Normal maps do not record depth, only angles. So you can't derive the highpoly vertex positions from a lowpoly model.

    However if you had a displacement map, then you could tesselate and displace the lowpoly to get closer to the highpoly shape.

    Be aware though, greyscale displacement maps cannot record undercuts.

    Similar to this.

    Exactly. 

    Given height and  normal information you could derive an approximation of the original highpoly mesh  quite easily.  It's not actually feasibly given the tools available in designer/painter  but a standalone tool could be written to do it. 
  • ActionDawg
    Offline / Send Message
    ActionDawg greentooth
    I have done a version of this before for my old 3D Wood Generator. At that point in time, Substance could not bake position maps from HP, only LP, but could bake HP->LP normals and height. So I derived an approximate HP position by inputting the baked height and normal and giving a user-defined scale threshold.

    Like was said in other posts though, this is very much an approximation and can't capture features like undercuts.

    The other big problem is unless you store your heightmap in un-normalized floating point *and* know how the units are getting mapped, you have no idea how much the height should contribute as a position offset factor.
Sign In or Register to comment.