Home Technical Talk

Lowpoly to lowpoly (?) workflows

polycounter lvl 10
Offline / Send Message
bac9-flcl polycounter lvl 10
Hello there!

I've been meaning to ask about that long time ago: can you recommend any techniques or workflows fitting for a model that does not have any high-poly source mesh available?

In particular, I'm very interested to know about the following:
  • First question: ambient occlusion baking. Are there any caveats or problems involved if you're using the same lowpoly mesh both as a source and as a target in xNormal/Mudbox bake setups? Obviously, these tools were originally intended for capturing detail from highpoly meshes, maybe there are some issues that could arise when I use identical lowpoly meshes. If there are indeed potential issues, how should I avoid them? Are there any specific tricks that can be used to make AO bakes from lowpoly better in quality?

  • Hard/soft edges. I am very frequently using hard and soft edges to define how my geometry should be lit (faceted designs etc). But, as I see from some brilliantly detailed threads here (especially this one from EarthQuake), best way to go about using hard edges is to leave them ONLY at UV seams (if they are even necessary there, of course - otherwise use none at all). They help avoid artifacts in baked normal maps too. Unfortunately, it's does not sound like my models at all.

    And that's alright, and I'm willing to remake my lowpoly geometry to use as few hard edges as possible. Only one problem: as I have mentioned, most of the models I have to deal with have no source highpoly geometry, therefore I can't just bake a normal map from it, leave everything smooth, and get a nice looking e.g. hardsurface prop with defined hard edges.

    So, second question is: Is there a simple way to bake a normal map from lowpoly mesh that will represent the shading I currently have (lots of hard edges, soft edges used only to give smooth look to "curved" parts)? I could then optimize my lowpoly to use as few hard edges as possible, and apply such a normal map onto it to get the desired look back. I have already tried baking normals from lowpoly to lowpoly, but I don't think that's how things work - as you can guess, the result is completely empty normal map. The process of getting the desired map I have described probably involves more steps. Any ideas?

  • Third question: what is the best way to go about creating normal maps for lowpoly meshes without highpoly source available? Of course, baking is out of the question. Is there any other way than using nDo? What I'm currently doing is painting grayscale height map over my texture in Photoshop, and then feed it to any normal map converter, be it NVIDIA plugin, CrazyBump or Unity importer). I guess nDo is the only other option for models like these?

    And out of the subject of manually painted details: I would like to know if there is a simple way to make blank normal map with tiny, properly oriented areas of normals representing bevels placed on every hard edge. You know, something that would make hard edges more natural, and less sharp.

***

To elaborate a bit: I'm not talking about extremely tiny models for mobile devices or other similar applications, but rather about meshes around 500-2000 polygons in size with typical texture size of x512 or x1024 and advanced materials available (emissive, specular, normals). Think RTS games. Or, I don't know, Kerbal Space Program. Not a very limited environment.

I should post some examples, sorry. I'm looking to spice up models like these:

dlnVdMN.jpg

ADspa.jpg

ScreenShot0040_860.jpg

scheme_04_860.jpg

scheme_05_860.jpg

Thanks in advance for any answers!

Replies

  • trebor777
    Offline / Send Message
    trebor777 polycounter lvl 10
    To bake a lowpoly AO without the need of a "highpoly", have a look at FAOgen :) nice little software that works great for lowpoly AO :)

    Question: why don't you want to model a highpoly ? Seems to me you can't escape either highpoly to normal map or using Hard edges on the final lowpoly. Maybe an objectSpace map would do the trick, but you still need to bake it (and afaik, objectspace map means the mesh has to be static in game worldspace).

    For normal map details, without highpoly (which is not recommended...IMO), crazy bump and ndo2 are what you probably need which means photoshoped details.
  • EarthQuake
    If you're not baking normal maps from a high res source, the use of uvs/hard edges is mostly trivial, I wouldn't worry about it.
  • Harbinger
    Offline / Send Message
    Harbinger polycounter lvl 8
    1- I've gotten pretty good low poly AO results with XNormal. Avoid using the "Simple AO" tool in the Utilities and simply plug in the low poly mesh for both the high res and low res and bake like normal. I have used Faogen in the past as well, it worked pretty nicely. It has built-in options for hemispherical occluders so you can add ground occlusion into assets pretty easily.

    2 - Use hard/soft edges according to how those edges should light on your mesh. Hard/soft edges really means split or averaged vertex normals, which dictate how lighting is calculated across your surface. A low-poly cube with soft edges or averaged vertex normals will light like it is "round". So, don't over think it. If your edge is supposed to look "hard", make it hard. If it's supposed to be smooth and rounded, make it soft.

    3 - You can use nDo, Crazybump, and many other heightmap based normal generators. You can also use baking methods. Bake details like bolts, seams, panels, and other things onto a flat plane. Then it's fairly easy to cut out these details and layer them onto your textures in Photoshop.
  • ivanzu
    Offline / Send Message
    ivanzu polycounter lvl 10
    I use blender to bake AO,works great and its simple to set up!
  • Bek
    Offline / Send Message
    Bek interpolator
    Harbinger wrote: »
    Avoid using the "Simple AO" tool in the Utilities
    First time I've heard this, could you elaborate as to why?

    Regarding your idea to bake a normal map from the correctly shaded lowpoly and then optimise your low, I'm no expert but it might be that the cost of using a normal map would be more than just spending the extra vertices to have the hard edges. That depends on a lot of factors obviously, but something you should figure out first. I certainly haven't heard of anyone doing anything like that before.
  • bac9-flcl
    Offline / Send Message
    bac9-flcl polycounter lvl 10
    trebor777 wrote: »
    To bake a lowpoly AO without the need of a "highpoly", have a look at FAOgen :) nice little software that works great for lowpoly AO :)
    Thanks! Just tried it, works nicely, I think I'm pretty much hooked.
    trebor777 wrote: »
    Question: why don't you want to model a highpoly ? Seems to me you can't escape either highpoly to normal map or using Hard edges on the final lowpoly. Maybe an objectSpace map would do the trick, but you still need to bake it (and afaik, objectspace map means the mesh has to be static in game worldspace).
    Well, truth to be said, I don't know any highpoly workflow that will work with these meshes. They are mostly comprised of polygons, and feature tons of poles. While there are some flat areas that can be converted to quads and n-gons, and while I don't get visible pinching due to lots of hard edges in right places, I don't think it's possible to make good subdivided geometry from these meshes.

    pRTM66o.jpg

    Or is it? Maybe there is some tool that can create a retopologized mesh using existing mesh as a base?

    And what else is there? Replicating the shape from scratch in something like Mudbox seems a little bit excessive and imprecise, not to mention the time it would take to do that.
    trebor777 wrote: »
    For normal map details, without highpoly (which is not recommended...IMO), crazy bump and ndo2 are what you probably need which means photoshoped details.
    Thanks!
    EarthQuake wrote: »
    If you're not baking normal maps from a high res source, the use of uvs/hard edges is mostly trivial, I wouldn't worry about it.
    Great to hear, thanks for clearing that up! So only issue with hard edges in my case would be an aesthetic one - that they are a bit too sharp and a hard edge baked from highpoly onto a normal map would've just looked softer and better.
    Harbinger wrote: »
    1- I've gotten pretty good low poly AO results with XNormal. Avoid using the "Simple AO" tool in the Utilities and simply plug in the low poly mesh for both the high res and low res and bake like normal. I have used Faogen in the past as well, it worked pretty nicely. It has built-in options for hemispherical occluders so you can add ground occlusion into assets pretty easily.
    Yeah, Simple AO tool in xNormal seems to use completely different algorithm, and result usually looks very flat. It's probably best suited for cavity maps or something.
    Harbinger wrote: »
    2 - Use hard/soft edges according to how those edges should light on your mesh. Hard/soft edges really means split or averaged vertex normals, which dictate how lighting is calculated across your surface. A low-poly cube with soft edges or averaged vertex normals will light like it is "round". So, don't over think it. If your edge is supposed to look "hard", make it hard. If it's supposed to be smooth and rounded, make it soft.
    That's a relief, same as EarthQuake's reply! I'm using hard edges like that, yeah, but I figure less vertices from splits would be nice to have. Not to mention smooth, natural-looking hard edges you see on baked normal maps. That's why I'm interested in how I can achieve that look with meshes at hand.
    Harbinger wrote: »
    3 - You can use nDo, Crazybump, and many other heightmap based normal generators. You can also use baking methods. Bake details like bolts, seams, panels, and other things onto a flat plane. Then it's fairly easy to cut out these details and layer them onto your textures in Photoshop.
    Oh, great idea! I guess I can make some very detailed floaters like bolts, bake a normal map from the scene with them, and paste the results from that atlas onto my normal maps when needed. One thing though. I guess I must avoid rescaling them in Photoshop, as that is bound to produce interpolated pixels with colors representing incorrect normals. Is that right?
    Bek wrote: »
    Regarding your idea to bake a normal map from the correctly shaded lowpoly and then optimise your low, I'm no expert but it might be that the cost of using a normal map would be more than just spending the extra vertices to have the hard edges. That depends on a lot of factors obviously, but something you should figure out first. I certainly haven't heard of anyone doing anything like that before.

    I am usually using a normal map anyway, as it fits in performance budget alright. So I'm looking for ways to make better use of it, other than adding bolts and seams to flat color, - like improving the look of hard edges somehow.
  • Harbinger
    Offline / Send Message
    Harbinger polycounter lvl 8
    Bek wrote: »
    First time I've heard this, could you elaborate as to why?

    In my experiments I've found that I simply got better results with doing a high -> low bake with the same mesh. It sounds counter intuitive, I know :)

    bac9-flcl, if you really want to invest the production time into smoothing out those edges with baked normal maps, a zBrush trick might get you there. Try importing those low poly meshes into zBrush and subdivide them a few times with the "Smt" smooth button disabled. Once you have a few subdivisions, which in this case will sort of act like support loops, do one more subdivide with smooth turned on. It might work, it also might produce a lot of inconsistent results.
  • bac9-flcl
    Offline / Send Message
    bac9-flcl polycounter lvl 10
    Success!

    I have managed to make it: the normal map baked from one identical lowpoly to another that stores all the hard edges. This allows me to use one smoothing group on the final mesh while preserving the intended look with all the hard edges. Hard edges aren't razor-sharp anymore. Neat!

    Vi3L3TH.jpg

    I was stupid not to consider that idea earlier: making two versions of the mesh, one completely smooth and one completely hard, then using hard one as high definition mesh does the trick.
  • trebor777
    Offline / Send Message
    trebor777 polycounter lvl 10
    Cool interesting results but
    Just FYI: this will cost more in term of memory. textureSpace > vertex count even splitted. And since you're quite lowpoly in the end, I don't really see the point of not using smoothing groups on the final mesh.
  • bac9-flcl
    Offline / Send Message
    bac9-flcl polycounter lvl 10
    You mean it will cost more because of the normal map? But I was already going to use normal map anyway, for detail like seams and rivets so I don't think it makes a difference.

    There is an interesting side effect which can be useful even if you're not going to use the normals, by the way. The resulting normal map allows you to extract detail maps with CrazyBump and dDo - that normal does an okay job on explaining where concave and convex, sharp and soft stuff is on your mesh.
Sign In or Register to comment.