Home Technical Talk

A Question about 3D Models and Normal Maps

polycounter lvl 2
Offline / Send Message
LDKSuperDante polycounter lvl 2

I did a little research on this, but most answers were on forums from some time ago, so I thought it might be helpful to ask here. Is it possible to reverse engineer a high poly model from a normal map? It'd be great if I or someone else could re-create a pre-existing high poly model to bake better normal maps with.

The reason I ask is because I have a game I'm remastering, but besides wanting to remain as faithful to the original design as possible, model editing isn't yet possible so I can't make new models or UV's for the game yet, so I'm currently limited to texture improvements. I also don't have any experience with 3D modeling or baking yet. My experience is mostly with GIMP. I commissioned a high poly piece of armor recently, and it made a great normal map, but long story short it was misaligned with the game's low poly, so a person helping me wasn't able to use substance painter to make the diffuse and specular maps for it.

Thanks in advance for anyone with any info!

Replies

  • pior
    Options
    Offline / Send Message
    pior grand marshal polycounter

    Convert the normalmap to a curvature map using any tool you have access to (either using a Photoshop script, of something like good old Xnormal and Crazybump, or anything else really) and apply that as a displacement map to a subdvided copy of the low.

    It's a very dirty hack but it can work surpisingly well.

  • LDKSuperDante
    Options
    Offline / Send Message
    LDKSuperDante polycounter lvl 2

    Thank you! I'll see what I can do. Is there anything else I should know?

  • LDKSuperDante
    Options
    Offline / Send Message
    LDKSuperDante polycounter lvl 2

    Just thought I'd give this topic a bump. I got busy with other things for a while there so haven't tried the suggestion above yet, but I plan to soon. I'm trying to find the absolute highest quality versions of the normal maps I want to start with before attempting this method. If anyone else has any tips or any other kind of help or advice, I'd greatly appreciate it :).

    As stated above, I'm trying to recreate textures for a game in HD while staying as faithful as possible to the original design, and I'm inexperienced with 3D modeling, not to mention we aren't able to put new models in the game yet, so I'm trying to make very high quality Normal Maps. The game uses the old Diffuse, Specular, and Normal Map method, not PBR. Thanks in advance to anyone able to help!

  • Alex_J
    Options
    Online / Send Message
    Alex_J grand marshal polycounter

    hey is this for dragons dogma?

    i wouldnt mind taking a few textures and i can make a short tutorial covering the technique. I havent actually done it before but I think i understand it well enogh from piors description.

    I'd love to play a remaster of that game. If it is feel free to send me a pm sometime about it.

  • pior
    Options
    Offline / Send Message
    pior grand marshal polycounter

    "haven't tried the suggestion above yet"

    Well ... what about taking the time to try it now then, as opposed to asking for other suggestions ?


     "I'm trying to find the absolute highest quality versions of the normal maps I want to start with"

    IMHO that's the perfect recipe for wasting time. I understand that it comes from a desired to do great work, but I would advise to start by doing what you can with what you already have at hand.

  • LDKSuperDante
    Options
    Offline / Send Message
    LDKSuperDante polycounter lvl 2

    I actually managed to find higher quality normal maps recently, that's why I mentioned that. Weirdly enough, the enemies have better normal maps than the player for lots of equipment and even the normal map for muscles. I've ported better normal maps to over 200 pieces of equipment which is pretty nice, and will definitely help with the process. The normal maps are pretty low resolution in the game, so I wanted to make sure I started with the best base for the technique you mentioned.

    I wasn't trying to ignore your advice by any means, I'm very thankful for it. It's probably some of the most straight forward and immediately helpful pieces of advice I've gotten in terms of remastering this game, so I really appreciate it. I just wanted to have a pool of ideas to try for future reference, and I was also asking if there was anything else I needed to know about the method, such as problems I may run in to, or if there's another step to refine things after the initial method you mentioned had been done.

    Awesome! I'll send you a PM, much appreciated.

  • Alex_J
    Options
    Online / Send Message
    Alex_J grand marshal polycounter

    Okay, so I got some time to test Pior's method out and initial results look pretty good.

    This was my first attempt so ofcourse we might achieve better results with some iteration. I'll try to make a step-by-step video soon to cover the whole process, but it's pretty simple.

    Programs I used:

    Affinity Photo - for conversion of original normal map to a curvature map

    Marmoset Toolbag 4 - for baking

    Results:

    top is original model subdivided to about 1.5 million tris, bottom is original model with baked normal map applied (no color map applied, I just wanted to show the normal maps effect in isolation)



    Curvature map created in affinity photo from the original normal map

    So - no surprise - it's definitely a viable method and not too time intensive. A programmer might even setup an automated solution if the baking could be accomplished in a single application? At the minimum, the convert normal map to curvature steps could be automated into an action - I know photoshop can do that, probably affinity photo can I'd expect.

    A tech artist might be able to provide some insight about best ways to handle conversion processes involved here. The first thing I do is convert the .dds format to a .png because affinity photo doesn't recognize .dds. I use marmoset to make the conversion - it just does whatever it does I have no idea.

    For the conversion in Affinity from normal to curvature I just followed the steps shown here:

    Curvature map from Normal map in Photoshop - quick and easy - YouTube

    but it is slightly different in Affinity photo. I had to use the 3d filter rather than emboss, and I just left default settings except for the azimuth/angle. I am sure you could tweak the other values to fine-tune your results.

    In Marmoset I subdivided the mesh to about 1.5 million triangles to get a decent result. If you have a slow computer that may be an issue. On my machine it was still an instant bake, so I think subdividing entire characters with very high polycounts may be okay.

    Well, like I said I'll try to get a video to cover the step-by-steps tomorrow or ASAP.


    Some additional things I'll explore when I have time:

    Some AI algorithms to upscale color textures? Would this look good, or just create artifacts?

    Apply some subtle microdetail patterns to color map or microsurface maps to give impression of greater detail?

    Tweak the curvature map and see how it might effect the subdivided mesh - also if there would be any automation, got to make sure a standardized output is created - i.e. the middle gray value needs to be the same on every curvature map.

  • Alex_J
    Options
    Online / Send Message
    Alex_J grand marshal polycounter

    And here is comparison of original model versus "higher res"

    The new, higher res normal map is top, original is bottom.

    Zoomed in pretty close you can notice a difference... I'm not sure it is a big improvement. It looks slightly higher res, but in some places that just reads noisy to me. For instance the criss cross things on the blade of the sword.

    The banding around the grip looks a little more crisp, maybe?

    To me the original reads cleaner, with more definite artist-like strokes.

    In either case, I am not sure that from the games camera perspective a difference could be noticed here. Perhaps on larger environment textures or monsters it may make more of a difference.


    Perhaps a bigger effect might be made by introducing some high resolution microsurface maps? I'm not sure but it looks like the game is using specular workflow. Probably just adding some detail maps to the specular channel may make a more noticeable visual impact.

    I also wonder if it is possible to introduce more modern reflections - maybe as a post process effect? To me that is probably the major thing lacking in older games - especially a game with lots of swords and armor and magic effects, some nice reflections probably add a lot.

    Just some additional thoughts.

Sign In or Register to comment.