Home 3D Art Showcase & Critiques

3 Week 'Normal Map' learning experience. Need your guys help.

1
polycounter lvl 12
Offline / Send Message
BARDLER polycounter lvl 12
First off if this should be in a different sub forum let me know and I can recreate it over there.

Basic breakdown. If anybody wants to join me and follow along this basic timeline with me that would be awesome. I would love some peers :p


Learning Normal Mapping in 3 weeks – 3/30/12 to 4/22/12

Why:
I have read a bunch of stuff on the internet about normal maps, and have done a bunch of experimenting on my own but I need your help. I have questions and problems that I cannot find answers for by searching the net. I want to start this thread to learn the technical aspects of normal mapping, and I hope the great community of Polycount can help me.

Goals:
Learn normal map baking workflow
Learn high poly to low poly modeling techniques
Learn how to clean up normals in photoshop
Learn how to trouble shoot baking problems
Be more overally awesomer at normal map baking :p

Programs to be used:
Maya 2011
Photoshop
xNormal
Possibly zBrush

3 Week Plan:

Week 1 – Simple Shapes
  • No low poly modeling, the normal maps will be tested on flat planes only
  • Make sure basic work flow is correct
  • Make sure normals are being baked and rendered correctly
Week 1 Objects
  • Square out -done
  • Half sphere in -done
  • Cylinder out -done
  • Screw and Bolt heads - done
  • Simple bathroom style tiles - done
  • Rounded cube to a 6 sided cube - done

Week 2 – Simple Objects
  • Modeling low poly objects around high poly meshes
  • Correctly matching silhouette of high poly with low poly
  • Make sure to cut out unneeded geometry from low poly
Week 2 Objects
  • Oil Barrel - done
  • Mechanical Crate/Box - starting this weekend
  • Heavy Door


Week 3 – Simple Objects
  • Further develop workflow
  • Further develop high/low poly techniques
  • Further develop understanding of normal maps
Week 3 Objects
  • Simple Gun
  • Sci-fi Wall


I feel like at the end of the three weeks I will be able to understand normal maps to the point I can move forward with my modeling. Again any help is appreciated and if any users go above and behind with helping me I would be more then happy to buy you a Steam game or amazon credit, or something to show my gratitude.

Replies

  • BARDLER
    Options
    Offline / Send Message
    BARDLER polycounter lvl 12
    So I have modeled and baked out the first 3 objects. I want to make sure nothing is wrong with these maps.

    3cylinderhighpoly.jpg
    3cylinderoutnormals.jpg
    2sphereinhighpoly.jpg
    2sphereinnormals.jpg
    1squarehighpoly.jpg
    1squareoutnormals.jpg

    I have two questions at this point.
    1) What is the best way to test render these normals? Should I use Maya? UDK? Another rendering program? I really have no idea how to check the quality of the normal map.
    2) Is there anything I need to do in photoshop to sharpen or make the normal map more powerful?
  • Computron
    Options
    Offline / Send Message
    Computron polycounter lvl 7
    If you can use maya, I recommend it because it has a synced workflow between baker and renderer.

    Normals are a derived data type that requires the matching mesh. Most filtering or post work in photoshop will screw this up. Don't sharpen your normals.
  • BARDLER
    Options
    Offline / Send Message
    BARDLER polycounter lvl 12
    Ok thanks, after I get the normal map should I test them out with mental ray? or just check them with the high quality render viewport?
  • BarnabyJones
    Options
    Offline / Send Message
    I just learned today that you can easily edit normal maps in photoshop by editing your normal maps red green and blue channels because the will show up as black and white something they don't tell you on the web... oh and if you mirror your uvws make sure to offset your uvw faces so they match up to the next tiled section. I hope that makes sense or is useful later good luck with your journey. Oh and I have heard that the maya is more accurate then mental ray atleast if your end goal is to export into a real-time engine the best thing to do is to view it in udk that way you can practice importing assets into udk and setting up shaders there. And of course make sure you don't bake at a 90 degree angle or it will not show up as clearly on your normal.
  • BARDLER
    Options
    Offline / Send Message
    BARDLER polycounter lvl 12
    Ok so I tested out the normals in Maya viewport 2.0
    3cylindertestrender.jpg
    2spheretestrender.jpg
    1squaretestrender.jpg
    Left is High Poly, the right is the normal map on a flat plane.
    They look OK to me, do they look right? lol

    Also I am not going to bother putting these in UDK but the later objects I think I will.
  • BARDLER
    Options
    Offline / Send Message
    BARDLER polycounter lvl 12
    I got the screws and bolts done, I sunk a bolt down into hole to see what it would look like.

    High Poly
    4screwsboltshighpoly.jpg
    Normal
    4screwsboltsnormals.jpg
    Viewport 2.0 Render. High poly on left, normal map on right.
    4screwsboltstestrender.jpg
  • Daelus
    Options
    Offline / Send Message
    Word of warning about depth. Sudden changes in depth won't look very good in normal maps, you want a somewhat gradual bevel. That's why the bolt looks so much more shallow on the baked version.
  • BARDLER
    Options
    Offline / Send Message
    BARDLER polycounter lvl 12
    Yea I am try to avoid 90 degree faces. What would you recommend for modeling a bolt you plan on baking down to a normal map?
  • dirigible
    Options
    Offline / Send Message
    dirigible polycounter lvl 8
    I think what Daelus is saying here is, you shouldn't make large changes in depth part of the normal map.

    In your last image, the upper left bolt is sunk ENTIRELY into the plane. When you bake this into a normal map, you it will look alright from a straight-on view, but look much worse from an angle.

    Something like the screws on the bottom will look better, because they do not protrude too far in or out from the surface you will bake onto.
  • WarrenM
    Options
    Offline / Send Message
    The thing I had to learn about normal maps, which is obvious in hindsight but at the time it was confusing, is this : Normal maps show changes in surface angles, NOT depth changes. Remembering that can save you a lot of time and pain. :)
  • AlecMoody
    Options
    Offline / Send Message
    AlecMoody ngon master
    I recorded a video for 3dmotive that I think is the most thorough and accurate video availble. Also, I should note that I don't get royalties or anything so I am not just saying this to make a sale.
  • BARDLER
    Options
    Offline / Send Message
    BARDLER polycounter lvl 12
    dirigible wrote: »
    I think what Daelus is saying here is, you shouldn't make large changes in depth part of the normal map.

    In your last image, the upper left bolt is sunk ENTIRELY into the plane. When you bake this into a normal map, you it will look alright from a straight-on view, but look much worse from an angle.

    Something like the screws on the bottom will look better, because they do not protrude too far in or out from the surface you will bake onto.

    That makes sense. I will keep that in mind for the future, but I think I am going to move onto the next object today. Thanks for the help.
    AlecMoody wrote: »
    I recorded a video for 3dmotive that I think is the most thorough and accurate video availble. Also, I should note that I don't get royalties or anything so I am not just saying this to make a sale.

    I checked the website but didn't see any normal map videos, could you link me?
  • Xelan101
    Options
    Offline / Send Message
    Xelan101 polycounter lvl 10
    I agree with Alec Moody. I was working on a project for school recently and while I had been working with normal maps for a while I never really knew all the ins and outs of things. His tutorial really got me more knowledgeable in a very short amount of time.

    If you have 22 bucks to spend just buy a subscription to 3Dmotive for a month and watch as many of their videos as you can. I highly recommend it.

    Anyways good luck on your 3 Week challenge. I really should be doing more exercise things like this from time to time.
  • Daelus
    Options
    Offline / Send Message
    BARDLER wrote: »
    I checked the website but didn't see any normal map videos, could you link me?

    http://www.3dmotive.com/training/3ds-max/baking-tips-and-tricks/?follow=true

    It's done in 3ds Max, but the principles and ideas are all the same regardless of program.
  • BARDLER
    Options
    Offline / Send Message
    BARDLER polycounter lvl 12
    Daelus wrote: »
    http://www.3dmotive.com/training/3ds-max/baking-tips-and-tricks/?follow=true

    It's done in 3ds Max, but the principles and ideas are all the same regardless of program.

    Oh awesome, before I go drop cash on this right now, how long does it take to do? It says the whole thing is 45 min long, but will I be following along with him doing stuff on my own? or is it more of a lecture type thing to learn some techniques? The reason I ask is because I have to manage my time between this and school lol.
  • Computron
    Options
    Offline / Send Message
    Computron polycounter lvl 7
    Its more of a lecture type thing. It's really short so that you can use the various chapters as reference as you build your high poly.

    I highly recommend it.
  • SanderDL
    Options
    Offline / Send Message
    SanderDL polycounter lvl 7
    This is in 3ds max and I have no idea how well it translates to Maya, but it might be of some help aswell:

    http://cg.tutsplus.com/tutorials/autodesk-3d-studio-max/how-to-bake-a-flawless-normal-map-in-3ds-max/
  • BARDLER
    Options
    Offline / Send Message
    BARDLER polycounter lvl 12
    I watched the cg tutorial and the 3D motive one, thanks for those. I learned a lot of nice tips that I think will help me with the later objects on my list.

    I finished the bathroom tile setup. I made it simple just to make sure it is working correctly.

    Highpoly
    5bathtileshighpoly.jpg
    Normal
    5bathtilesnormals.jpg
    Render in VP 2.0. High on left, low with normal on right.
    5bathtilestestrender.jpg

    Does this look alright?
  • ZacD
    Options
    Online / Send Message
    ZacD ngon master
    yes, now try normal maping a beveled cube onto a 6 sided cube or a rock or something that isn't a plane.
  • BARDLER
    Options
    Offline / Send Message
    BARDLER polycounter lvl 12
    That is the plan. I just want to make sure I got the basics down first. I think I am going to skip the bricks and scifi floor and do a rounded cube next.
  • Jessica Dinh
    Options
    Offline / Send Message
    Jessica Dinh polycounter lvl 10
    Just wanna say it's cool that you have a thought-out plan for all of this. Looking forward to picking up some tips from your coming weeks' projects :]
  • BARDLER
    Options
    Offline / Send Message
    BARDLER polycounter lvl 12
    Thanks for the encouragement :D
    It kind of sucks watching people post all this awesome work, and I am stuck learning boring normal maps lol. Never the less, I am determined to learn!

    So I got the rounded cube done.
    6roundedcubenormals.jpg
    6roundedcubetestrender.jpg
    I rendered in Maya using the hardware settings. Going left to right 1) Low poly with no normal 2) High poly 3) Low poly with normal 4) Low poly with normal smaller.
    The normal map looks alright to me, I followed the tips in the 3Dmotive lesson with separating the faces and using edge padding. Am I doing it right? lol, any tips?

    I rendered it out using a simple blinn shader but does anybody have any tips to potentially get better renders on your normal maps for testing them in Maya?

    Thanks for the help.
  • zakhar2
    Options
    Offline / Send Message
    zakhar2 polycounter lvl 6
    Since this is basically a cube you should probably just overlap and offset the uvs.
  • Hang10
    Options
    Offline / Send Message
    This is great stuff, I'm working on normal maps too, trying to finish my first Hard surface model, going to follow this!
  • BARDLER
    Options
    Offline / Send Message
    BARDLER polycounter lvl 12
    zakhar2 wrote: »
    Since this is basically a cube you should probably just overlap and offset the uvs.

    Excuse my ignorance but could you show me or link me to something to explain what you mean? I know that the 3Dmotive mentioned it, but done fully understand it. I know you can take a face and offset it by 1 unit, but what does that accomplish?
  • AlecMoody
    Options
    Offline / Send Message
    AlecMoody ngon master
    everything outside the 0-1 space is ignored by the renderer. When you place overlapping geometry outside the square you are effectively telling it which copy to use in the baking process and by doing so eliminate z fighting.
  • BARDLER
    Options
    Offline / Send Message
    BARDLER polycounter lvl 12
    So my normal map will have basically 1 face of the square baked on it, and then I will offset the other faces by 1. So when this is applied to the object it will be applied to all 6 sides. Should I still use some edge padding when I bake?

    Am I understanding this correctly?
  • ZacD
    Options
    Online / Send Message
    ZacD ngon master
    Textures can tile in any direction, when you bake a texture it only bakes uv within contained in the 0-1 space, its basically stacking the uv's on top of each other in a way that wont mess up the bake.

    Always use padding.
  • BARDLER
    Options
    Offline / Send Message
    BARDLER polycounter lvl 12
    Awesome, I think I got it, thanks a lot guys. I will try this out when I get home today.
  • BARDLER
    Options
    Offline / Send Message
    BARDLER polycounter lvl 12
    Ok so I did the offset thing and I think it turned out good. I know jack shit about lighting in Maya so maybe I should try to find a basic lighting tutorial so I can get some better renders on these.

    Here is the rounded cube with overlapping.
    6roundedcubenormals2.jpg
    6roundedcubetestrender2.jpg
    Left to right on render. Low poly w/ no normal, high poly, low poly with normal, smaller low poly with normal. Low poly is just simple 6 sided cube.

    I also did a quick high poly barrel.
    1barrelhighpoly.jpg
    Its a tad short but it will work more my purposes.
  • BARDLER
    Options
    Offline / Send Message
    BARDLER polycounter lvl 12
    So I got the barrel done and baked but I would like some feedback if possible. Not really sure if I am on the right track or fucking shit up still lol.


    Low Poly with wires. Its a tad over 600 tris because I tried following the silhouette of the object. It is probably to high for a game, but for practice and learning normals I think its fine.
    1barrellowpolywires.jpg


    This is the normal map. The bottom right of the map has the bottom of the barrel on it but its mostly flat so nothing really showed up.
    1oilbarrelnormals.jpg


    High poly on left, low poly with normal on right. Does it look OK? you can kind of see some jaggedness to it but should I worry about it?
    1barrelrenderwnormal.jpg


    This is my only concern. I tried a couple different things but could not get the seam to go away. It doesn't really show up on the render so should I worry about it? Is there anything I can do to avoid something like that?
    1barrelnormalseam.jpg

    Any tips and feedback would be much appreciated.
  • Minos
    Options
    Offline / Send Message
    Minos polycounter lvl 16
    That's not how normal maps should be used. A normal map won't make a 8-sided cylinder look like a 624-sided one. Your hipoly is just a turbosmoothed version of the lowpoly, there's no reason to use a normal map for that. You are not creating any new details on the hipoly but just making a new geometry that doesn't match the base.

    You can either make the lowpoly a simple cylinder and use the details on the hipoly for the normal map or just leave the lowpoly with the details on it and have only small details on the normal map.

    Your UV is pretty bad as well, the best way to map barrels is like this:
    iISdP.jpg

    Hope that helps.
  • BARDLER
    Options
    Offline / Send Message
    BARDLER polycounter lvl 12
    Yes thank you. I guess I did my UVs like that because I was thinking to much about offsetting for some reason lol.

    So as a test I just baked my normal onto a simple 20 sided cylinder.
    1oilbarrelnormals2.jpg
    1barrelrenderwnormal2.jpg

    It turned out pretty good with the exception of edge around the top, but I have a few questions.
    1) Am I correct in assuming that the dark ring around the top is from the way my highpoly was modeled? If I were to go back and redo the top of it so there is less over lap it would probably turn out better.
    2) I always read and learned about normal maps to follow the silhouette of the highpoly object. Would that not apply in this case because the rings in the barrel are not key to the silhouette?
    3) Should I add some polygons to the top of my low poly to try to get the shape baked out better from my highpoly? Or should I go back and redo my highpoly with a more bake friendly top?

    Thank you again guys, I am learning a lot.
  • Notes
    Options
    Offline / Send Message
    Notes polycounter lvl 4
    give this a read
    http://www.polycount.com/forum/showthread.php?t=81154
    In some cases you might just need to add the extra geometry

    it seems like you have the process of making the normals down...now it's just a matter of fixing the errors...best way to learn i think is from knowing how to fix your mistakes :) gl
  • AlecMoody
    Options
    Offline / Send Message
    AlecMoody ngon master
    Minos wrote: »
    That's not how normal maps should be used. A normal map won't make a 8-sided cylinder look like a 624-sided one. Your hipoly is just a turbosmoothed version of the lowpoly, there's no reason to use a normal map for that. You are not creating any new details on the hipoly but just making a new geometry that doesn't match the base.

    You can either make the lowpoly a simple cylinder and use the details on the hipoly for the normal map or just leave the lowpoly with the details on it and have only small details on the normal map.

    Your UV is pretty bad as well, the best way to map barrels is like this:
    iISdP.jpg

    Hope that helps.

    I am not sure I understand exactly what you are saying but I think I super disagree with you. Yes, a normal map will not change your silhouette. However, a normal map isn't a way to add surface details- It is a system for replacing lowpoly normals with highpoly normals. In fact, an 8 sided cylinder can be made to shade as smoothly as a 624 sided cylinder and in some cases (many in my experience) having some cylinder cap waviness can fake the contour of a higher tessellation object.

    I think the only thing wrong with the OPs 600 tri lowpoly model is the triangle stripping on the top of the barrel.


    Bardler:
    If you want to do something lower triangle count like the revised barrel you posted you should revise the silhouette of the highpoly to match better.
  • Olli.
    Options
    Offline / Send Message
    Olli. polycounter lvl 8
    this seems like an awful lot of trouble to go through just for normal mapping .. i mean 3 weeks? dayum.

    i just watched racer445's binocular baking tutorial and became an expert.
  • WarrenM
    Options
    Offline / Send Message
    I think it's a great plan, actually. Buckle down and really learn one aspect of something. Master it and gain a deep understanding. Then you're done and can leverage that knowledge right away rather than doing it like I generally do - learning bits and pieces over the course of several years. :)
  • gilesruscoe
    Options
    Offline / Send Message
    gilesruscoe polycounter lvl 10
    I think you might be taking this a little too safely and as a result not learning things as quickly as you could be.
    You appear to have the raw basics down and understand how to get a bake to work. What i suggest now is throwing yourself into the deep end and trying to tackle a more complex shaped object. You (and everyone else) learn from their mistakes, if you arn't doing something difficult enough to cause alot of mistakes, then you won't be learning enough.
    By doing something a little more complex you'll have to problem solve alot more and get yourself thinking about why certain things happen and what you could do to correct them. Don't pick anything crazily complex that'll just bog you down. But something with a variety of shapes to it.
  • Racer445
    Options
    Offline / Send Message
    Racer445 polycounter lvl 12
    Olli. wrote: »
    this seems like an awful lot of trouble to go through just for normal mapping .. i mean 3 weeks? dayum.

    i just watched racer445's binocular baking tutorial and became an expert.

    :(
  • AlecMoody
    Options
    Offline / Send Message
    AlecMoody ngon master
  • lefix
    Options
    Offline / Send Message
    lefix polycounter lvl 11
    not really normal map related, but you might want to get used to tri stripping ;)
    just a minor performance optimization thing

    trianglestrip.jpg
  • BARDLER
    Options
    Offline / Send Message
    BARDLER polycounter lvl 12
    AlecMoody wrote: »
    Bardler:
    If you want to do something lower triangle count like the revised barrel you posted you should revise the silhouette of the highpoly to match better.

    Ok thanks, I think i am going to redo the highpoly really quick, and create a better top so it bakes better onto a cylinder.

    Olli. wrote: »
    this seems like an awful lot of trouble to go through just for normal mapping .. i mean 3 weeks? dayum.

    i just watched racer445's binocular baking tutorial and became an expert.

    Well thanks for the help dude, really appreciate it -_- Its 3 weeks because I also have 6 classes at school, and I have been using Maya for less then a year. I am still learning UV mapping, surface topology, and low/high poly techniques. To be honest I am pretty happy with where I am at for how long I have spent using Maya.

    lefix wrote: »
    not really normal map related, but you might want to get used to tri stripping ;)
    just a minor performance optimization thing

    trianglestrip.jpg

    Oh thanks, I will redo that on my new low poly. I don't really know much about low poly modeling either.


    I think you might be taking this a little too safely and as a result not learning things as quickly as you could be.
    You appear to have the raw basics down and understand how to get a bake to work. What i suggest now is throwing yourself into the deep end and trying to tackle a more complex shaped object. You (and everyone else) learn from their mistakes, if you arn't doing something difficult enough to cause alot of mistakes, then you won't be learning enough.
    By doing something a little more complex you'll have to problem solve alot more and get yourself thinking about why certain things happen and what you could do to correct them. Don't pick anything crazily complex that'll just bog you down. But something with a variety of shapes to it.

    Like I said above its 3 weeks because I have 6 classes at school. If I did not have school I could get this done in less than a week. I also posted the objects I will be modeling in the OP, they will get more and more complex week after week. I see no point in trying to UV map and bake normal maps for a complex object before I understand the basics. I have been using Maya for less then a year, and all self taught, cut me some slack.
  • Mgoblue412
    Options
    Offline / Send Message
    Mgoblue412 polycounter lvl 5
    lefix wrote: »
    not really normal map related, but you might want to get used to tri stripping ;)
    just a minor performance optimization thing

    trianglestrip.jpg

    What exactly is Tri stripping? It just seems like you are making the tris more even? Or is just not good for a lot of tries to share the same vertex?
  • AlecMoody
    Options
    Offline / Send Message
    AlecMoody ngon master
    a cylinder cap stripped that way saves a triangle but more importantly it costs less to fill even sized triangles rather than long thin triangles created from fanning.
  • BARDLER
    Options
    Offline / Send Message
    BARDLER polycounter lvl 12
    AlecMoody wrote: »
    a cylinder cap stripped that way saves a triangle but more importantly it costs less to fill even sized triangles rather than long thin triangles created from fanning.

    I did that method but from my testing that method only works if your cap is going to have hard normals instead of soft normals. If you set the normals on the caps to soft you get weird stripes along the sides from the two smallest triangles. It could be because I was using a 24 sided cylinder, but it might be ok if you use a 16 or less.

    Ok so I reworked my highpoly. I think I got better results, and I tried a few different low polys to see what would happen.

    Highpoly
    1barrelrenderhighpoly.jpg

    Low polys with wires. I forgot to triangulate the last 2 before I made this, but its not important so whatever.
    1barrellowpolywires2.jpg

    Render with normal maps applied. The high poly is on the left, and the barrels go in the same order as the picture above.
    1barrelrenderlowpolyswn.jpg

    Personally I think the second to last one is the best looking one, or the 36 sided one if I don't want to follow the silhouette, but let me know what you guys think. Are the tris counts ok? Should I try for a 20 sided or 16 sided cylinder for a lower tris count? any feedback is appreciated.
  • MrOneTwo
    Options
    Offline / Send Message
    MrOneTwo polycounter lvl 12
    Actually I would modify the high poly. This top 'lip' of the barrel can't be baked on most of your low poly models. I would just change this part into something that doesn't change the silhouette that much. Of course the most dense low poly looks the best ;p Wondering if specific poly count is ok is pointless without context. What are you creating prop for ? What type of game ? How important is this asset ? Will it use LODs ? Is it mobile game or next gen UDK game ? Many things to consider. 476 tri model looks most reasonable.
  • BARDLER
    Options
    Offline / Send Message
    BARDLER polycounter lvl 12
    MrOneTwo wrote: »
    Actually I would modify the high poly. This top 'lip' of the barrel can't be baked on most of your low poly models. I would just change this part into something that doesn't change the silhouette that much. Of course the most dense low poly looks the best ;p Wondering if specific poly count is ok is pointless without context. What are you creating prop for ? What type of game ? How important is this asset ? Will it use LODs ? Is it mobile game or next gen UDK game ? Many things to consider. 476 tri model looks most reasonable.

    I was thinking triangle count for your standard UDK level for modern PC and console games.
  • WarrenM
    Options
    Offline / Send Message
    AlecMoody wrote: »
    a cylinder cap stripped that way saves a triangle but more importantly it costs less to fill even sized triangles rather than long thin triangles created from fanning.

    You mean in the render time? I would be surprised if this was true enough to make any actual difference. Where did you hear this?
  • JamesWild
    Options
    Offline / Send Message
    JamesWild polycounter lvl 8
    You mean in the render time? I would be surprised if this was true enough to make any actual difference. Where did you hear this?

    I'd like some clarification on this too. In an ideal multithreaded context with every single polygon being handed out to a different GPU core the draw call completing with the last polygon is rasterised it'd take as long as the biggest polygon does to draw. However, I doubt polygons are "truly" multithreaded like this because if you disable depth testing and throw a batch at the GPU it comes out in order which it wouldn't if it was drawing polygons in parallel.
  • RockSPb
    Options
    Offline / Send Message
    RockSPb polycounter lvl 5
1
Sign In or Register to comment.