Home 3D Art Showcase & Critiques

Tutorial - Normal maps from photos. Version 2!

Sean McBride
polycounter lvl 18
Offline / Send Message
Sean McBride polycounter lvl 18
Take 2! This is a more in-depth version of the tutorial. I'm now using an action i made to generate a blue channel from a normal map. It pumps up the details and makes them VERY punchy so they stick out and actualy look much more convincing.

The tutorial files. - Sorry had to save a 512 to save on space.

So i've been seeing quite a few new environmental artists trying to use the nvidia filter to generate normal maps from photos on your textures. Just a note, its not a "generate a good normal map for me please!" button! The normal maps that come straight out of a non tweeked photographs are poo poo. Please stop using them. frown.gif You can get great results in just a few more minutes and the results are much more impressive.


th_Step1.jpg

Step 1: Start with your diffuse. This is a cropped image from mayang. Nothing done to it at all.

th_Step2.jpg

Step 2: Contrast/Brightness adjustment Basicly just trying to darken the areas that are going to recess and get the brightest highs i can. You can also try auto contrast.

th_Step3.jpg

Step 3: Blur it untill you get a medium type level of detail.

th_Step4.jpg

Step 4: Blur it again untill you get a high level of detail. High level as in what you would see from a distance.

th_Step5.jpg

Step 5: take step 3 and step 4 and make those layers multiply layers. Then add a brightness/contrast adjustment layer and try to adjust the contrast to represent the lowest areas and the highest highs without blowing out all your high detail or crushing out your low details. Collapse these adjustment layers untill you're back to 3 layers. Small details, Medium Details, Large details.

th_Step6.jpg

Step 6: Run the nidia filter on all of these layers leaving the small detail layer set to normal. go to the medium level normal map. Run my Fix Blue Channel action (or set it to overlay, go to the blue channel and fill it with 128,128,128). Now do the same to the large level of detail normal map. Clone these layers untill you get a good looking normal map with plenty of contrast. You can tell its a good normal map because of the large areas of transition. This means you'll be able to see all of that high level of detail. If you zoom out of your normal map and you can't see hardly anything but blue you need to clone the layers more untill you get more of a punch as picture above. Here are how many times I cloned the layers.
th_Step6-2.jpg

th_Step7.jpg
Step 7: Ok, so you could stop there but here's another action i wrote. This one generates a blue channel based on the normal map. No, it cant TRUELY generate a blue channel to show depth but it can get damn close. You can add depth by painting the cracks or lower areas but it works ok without doing that. Save the normal map as a flat TGA and load up that TGA. Run the Generate Blue Channel action on the tga and it will come up with this black and white map. Copy this layer back into your normal map and name it "NewBlueChannel" just like that... no quotes. Now run my NewBlueChannel (named the same as what your layer should be). It will copy this black and white layer into your normal map's blue channel. I havn't gotten around to combinding these two actions yet but i'll release a one click action later...

th_Step8.jpg vs th_Step8-2.jpg
Here is the resulting normal map just from the tweeked photo. I think it shows that a simple photo can produce quite a good looking normal map without any modeling. Of course you're going to need to model anything specific but this technique mixed with modeling can generate awesome results.

th_Step9.jpg vs th_Step9-2.jpg
The final Image.

So spend a little more time on your normal maps! laugh.gif They aren't something you just generate and then dont touch. They are quite fun to tweek.

My Normal map actions that will be posted soon.

Fix Blue Channel - Sets the layer to Overlay and fills the blue channel with 128,128,128 grey.

Flip X - Flips the X (aka Red channel) of the normal map.
Flip Y - Flips the Y (aka Green channnel) of the normal map.
Grab Z Depth - Grabs the Blue channel and creats a new layer you can use to overlay on top of your textures. Useful for adding depth to specularity.
Grap Y Light - Grabs the Red channel to be used as a fake light from above. Again, useful in some specular situations.
Gen. Blue Channel - Generates a layer based on the normal map's Red and Green channels to simulate a blue channel. This can be used to pump up the value of a normal map if pasted into the blue channel. You can also use this layer as a specular overlay.

NewBlueChannel - RUN ONLY ON A FLAT TGA! Clone the layer created from the above action back onto a flattened TGA version of your normal map. Name this layer "NewBlueChannel"; the same as the action. It will paste the layer into the blue channel. I've gotten some great results using this technique!

Replies

  • ironbearxl
    Options
    Offline / Send Message
    ironbearxl polycounter lvl 18
    Nice, thanks for sharing this! smile.gif
  • Slum
    Options
    Offline / Send Message
    Slum polycounter lvl 18
    yeah man, people fear the blue channel. LOVE YOUR BLUE CHANNEL LIKE A FAT KID LOVES CAKE.
  • tacit math
    Options
    Offline / Send Message
    tacit math polycounter lvl 17
    .

    thanks dude. good sharing
  • Lord McMutton
    Options
    Offline / Send Message
    Lord McMutton polycounter lvl 17
    What program is this on?
  • JordanW
    Options
    Offline / Send Message
    JordanW polycounter lvl 19
    Ok, one thing i would be careful with is step one...Often times if you use photos for your diffuse or even if you've painted it, simply converting it to a normal map is a very bad thing. The reason being one element on your diffuse may have darker paint than another area but truely be higher than the lighter one. Or there's simply some lighting in it throwing the heightmap off.

    For example you may have a bright metal surface painted with grey paint. Now if you simply convert that to a normal map it will appear the grey metal sits on top of the dark paint and that's not good. While it's good to take the extra steps to make the normal map "pop" I think it's equally as important to make sure you're feeding the normal mapper correct height information first by painting and adjusting your heightmap before converting.
  • Sean McBride
    Options
    Offline / Send Message
    Sean McBride polycounter lvl 18
    Tinman: Yeah totaly. I picked a photo that had depth some values that would represent the depth. If your photo has lighting in it you're going to need to do alot of painting to make a height map out of the photo itself. Using the adjustment layers can really help speed up the process.

    slum: absolutely. smile.gif I'll cover using your blue channel more in depth a little later. I need one of my actions that I don't have on me at the moment.

    Marshal Banana: its just photoshop and max. It works the same for any application though.
  • _Shimmer
    Options
    Offline / Send Message
    _Shimmer polycounter lvl 18
    Agreeing with tinman here. Actually if you spend more time on the bumpmap you later convert to a normalmap the results are pretty much as good as yours.
    Or i find it easier to work on a 2D schematic instead of a 3 dimensional surface on a 2d canvas...

    However, pretty nifty, but at the end you just edit a colorful bumpmap. Though, maybe you can vibrate the surface via the normalmap leading to some natural forms?
  • Nate Broach
    Options
    Offline / Send Message
    Nate Broach polycounter lvl 17
    Awesome thanks alot for taking the time to write that out Sean. This definately helps me out and Ive been trying to find tutorials about this everywhere.

    Anyways I have a quick question, is it totally acceptable in the industry for environmental artists to have normal maps that are completely made by the Nvidia filter? Or is the Nvidia filter normally a follow up to some other normal map generator (i.e. high poly mesh or zbrush)? Hopefully its fine for me to ask this here. Im one of these new lower level entry guys who needs help. Thanks again!
  • JordanW
    Options
    Offline / Send Message
    JordanW polycounter lvl 19
    It depends, you should definatly show that you have the ability to make normal maps in a variety of ways, using heightmaps, photos(as a base), highpoly geometry etc...
  • Sean McBride
    Options
    Offline / Send Message
    Sean McBride polycounter lvl 18
    Shimmer: Its true, you can get the same results from painting. At least with this overlay technique i try to cut down painting time. It seems like a waste to do something that creats a normal map that is just as good looking as a few blurs/duplications. smile.gif Its true, its just one way to get to that end result but i find its easier to get there because you can see the step by step process of how each layer affects the normal map end result. smile.gif

    For details like cracks and grit. Possibly some rock surfaces using photo's is perfectly fine. In fact if someone handed me a portfolio to look at that had all of the detail zbrushed out i'd think the person was crazy. You need to show the use of photo's as overlays because people in the industry use them all the time. It saves tons of time. However, at least one piece with crazy detail would be good to show off your modeling skills. smile.gif
  • _Shimmer
    Options
    Offline / Send Message
    _Shimmer polycounter lvl 18
    Agreed, I think the best to expect is that the candidate has the ability to both model and "texture" a normalmap.

    For Example, It makes sense to build some bricks in 3d App of choice, load them into zbrush or mudbox and add some details (mostly irregularities, dont go over the top). Later you can reuse the normalmap in several other textures and overlay it with a nvidia filter generated normalmap. Also it is worth to take the time to work with multiple normalmaps (things from highpoly, highpoly presets, photosourced and mixed) also feel free to mask them out!.

    But to totally agree with you Sean.But, I think the main problem is people dont even know what a normal map really is (no foundated knowledge). Its so simple, but for some its some sort of "detailing map", seeing a lot of contrast and weird contextless shapes ontop of their washy textures...Next-Gen.

    Defintly worth a try, so no pun intended or so Sean ,S r. Character Artist, Hi-Rez Studios wink.gif
  • rawkstar
    Options
    Offline / Send Message
    rawkstar polycounter lvl 18
    or... you could just avoid all this and use crazybump smile.gif
    http://www.crazybump.com/beta/download.html
  • spacemonkey
    Options
    Offline / Send Message
    spacemonkey polycounter lvl 18
    [ QUOTE ]
    or... you could just avoid all this and use crazybump smile.gif
    http://www.crazybump.com/beta/download.html

    [/ QUOTE ]

    ftw cool.gif
  • Jarrod1937
    Options
    Offline / Send Message
    Jarrod1937 polycounter lvl 15
    can you show us what your finished normal map looks after you've done all of your steps? or even better upload the psd file?
  • Jarrod1937
    Options
    Offline / Send Message
    Jarrod1937 polycounter lvl 15
    [ QUOTE ]
    or... you could just avoid all this and use crazybump smile.gif
    http://www.crazybump.com/beta/download.html

    [/ QUOTE ]
    i never used that program untill now. its reallllllyyy helpful.
    after its beta is the author going to charge for it or is it going to be a free app?
  • Joao Sapiro
    Options
    Offline / Send Message
    Joao Sapiro sublime tool
    too bad it isnt a photoshop plugin, i would kill for it !
  • Jarrod1937
    Options
    Offline / Send Message
    Jarrod1937 polycounter lvl 15
    why is it that my normal maps created in crazybump don't look as good when i test them out in 3ds max (7)?
  • Sean McBride
    Options
    Offline / Send Message
    Sean McBride polycounter lvl 18
    _Shimmer: Exactly. smile.gif

    rawkstar: crazy bump is ok. I still find if you mix its maps with photoshop maps you're going to get much better result. Nothing is ever going to generate you a good normal map just by sliding a slider or clicking some buttons.

    Jarrod: The results are up there in the form of a max render. I'm at work right now but i'll try to find a place to upload the PSD as i dont have a webpage anymore.

    In the end to each his own method. I still think you'll never get the right results from something that crunches everything down into one layer and does all the work for you. Get your hand dirty. Rawkstar, i know you know how normal maps work. Alot of people at PC do. smile.gif but the new people to the next gen process need to understand exactly why a normal map looks how it looks and how they can paint things to either help pop things out or tone things back. smile.gif
  • Jarrod1937
    Options
    Offline / Send Message
    Jarrod1937 polycounter lvl 15
  • cholden
    Options
    Offline / Send Message
    cholden polycounter lvl 18
    looks like you're applying that as a bump map in max and not a normal map.
    Material Editor > Maps > Bump (set to 100) > click None (under Map) > select Normal Bump > under Normal tab click None > select Bitmap > apply the normal there.
  • Jarrod1937
    Options
    Offline / Send Message
    Jarrod1937 polycounter lvl 15
    edit: yeah, crazybump is crazy! now on my list of must have programs.

    i got this from crazybump. the nice thing about crazy bump is its fast to create a pretty good normal map. although some of the details are a bit too harsh for my liking, but that is my mistake in my greyscale map:
    wall_normal_mapped_2.jpg

    however i would still be interested in seeing the .psd file so i can learn how to produce even better normal maps, and without the assistance of another app.
  • Spark
    Options
    Offline / Send Message
    Spark polycounter lvl 18
    Nice tutorial Mcbride, though maybe you could post the psd of this process, as I get something close to yours but not quite. So was curious as to what exactly you are doing.

    Thanks
    Spark
    www.bbriley.com
  • Sean McBride
    Options
    Offline / Send Message
    Sean McBride polycounter lvl 18
    No problem spark, I'm actualy re-doing the tut now including pics on the stages and i'll try to find a place to host the PSD.
  • Jarrod1937
    Options
    Offline / Send Message
    Jarrod1937 polycounter lvl 15
    [ QUOTE ]
    No problem spark, I'm actualy re-doing the tut now including pics on the stages and i'll try to find a place to host the PSD.

    [/ QUOTE ]
    exellent, images would help, you kind of skipped items in your description at times which made it hard to follow exactly what you were doing.
    i could host the .psd for you if you want, or even better you can put together a quick html tutorial page and i'll host it.
    e-mail it to me at metalgearsolido8@hotmail.com
  • Sean McBride
    Options
    Offline / Send Message
    Sean McBride polycounter lvl 18
    updated to version 2. smile.gif I'll get those actions and PSD's your way jarrod.
  • Jarrod1937
    Options
    Offline / Send Message
    Jarrod1937 polycounter lvl 15
    [ QUOTE ]
    updated to version 2. smile.gif I'll get those actions and PSD's your way jarrod.

    [/ QUOTE ] .psd and other files
  • Sean McBride
    Options
    Offline / Send Message
    Sean McBride polycounter lvl 18
    Bad ass jarrod, thanks! smile.gif

    Let me know what you think of version 2 everyone. smile.gif
  • okkun
    Options
    Offline / Send Message
    okkun polycounter lvl 18
    Nice one, now stop sucking and come work here! wink.gif
  • Jarrod1937
    Options
    Offline / Send Message
    Jarrod1937 polycounter lvl 15
    wow! just look through the .psd file and its all pretty self explanatory. thanks for the tutorial, it'll be put to good use very soon.
  • Sean McBride
    Options
    Offline / Send Message
    Sean McBride polycounter lvl 18
    [ QUOTE ]
    Nice one, now stop sucking and come work here! wink.gif

    [/ QUOTE ]

    hahaha! If I can convince my wife to move all the way across the US then maybe eventualy. smile.gif

    Jarrod: glad to help!
  • Renaud Galand
    Options
    Offline / Send Message
    Renaud Galand polycounter lvl 19
    nice tut dude !
  • Sean McBride
    Options
    Offline / Send Message
    Sean McBride polycounter lvl 18
    Thanks man. smile.gif Any other feedback?
  • conte
    Options
    Offline / Send Message
    conte polycounter lvl 18
    Sean, nice tutorial. thanks for time!
    but in my opinion crazybump is just god gift=)
  • Jarrod1937
    Options
    Offline / Send Message
    Jarrod1937 polycounter lvl 15
    [ QUOTE ]
    Sean, nice tutorial. thanks for time!
    but in my opinion crazybump is just god gift=)

    [/ QUOTE ]
    yes it is, but i've actually found seans method to produce slightly better results.
  • MackXX
    Options
    Offline / Send Message
    MackXX polycounter lvl 17
  • Sean McBride
    Options
    Offline / Send Message
    Sean McBride polycounter lvl 18
    Thanks Jarrod. its not always the better meathod. Its a little slower than crazy bump. but in my experiance it does a hell of a lot better job at capturing all the details. Crazy bump does its best and i've used it many times. I would be using it right now if i didn't think that i couldn't create better results with photoshop. smile.gif

    I always want to encorage people to try tweeking normal maps and depend less on filters and "do it for you" programs.
  • Jarrod1937
    Options
    Offline / Send Message
    Jarrod1937 polycounter lvl 15
    [ QUOTE ]

    I always want to encorage people to try tweeking normal maps and depend less on filters and "do it for you" programs.

    [/ QUOTE ]
    i try to do this myself. i feel that if i say i can do something on a resume, then i must be able to do it with the minimum amount of tools required. after i can do that then i feel ok to use "do it for me" programs.
    reason being for this is, you are not always going to have the luxury of having those "do it for me" programs with you all the time with every instance you need to do something.
  • fr0gg1e
    Options
    Offline / Send Message
    fr0gg1e polycounter lvl 17
    Great tut! Altho i have a problem with the Generate Blue Channel action you posted, for some reason when I launch it over my flat TGA it starts, then when it load the 1st merge layer command there is a pop up message saying that the command "Merge layers" is not currently available. PS CS 1.
  • Nysuatro
    Options
    Offline / Send Message
    Thanks for this nice tut.

    I am sorry but i have to ask you this maybe stupid question.
    But how can i collaps my adjustment layers?
    If i merg down, it affects and other layer, and it changes the way i want it to be.
  • JDinges
    Options
    Offline / Send Message
    JDinges polycounter lvl 18
    Either flatten image (if that works for your situation), or group them (ctrl G) and select the base layer and "merge group". They won't fuck themselves up that way smile.gif
  • Nysuatro
    Options
    Offline / Send Message
    [ QUOTE ]
    Either flatten image (if that works for your situation), or group them (ctrl G) and select the base layer and "merge group". They won't fuck themselves up that way smile.gif

    [/ QUOTE ]

    Thanks for the help
  • jgarland
    Options
    Offline / Send Message
    Thanks for the tutorial. I just started trying out using normal maps, and this helped a great deal. Top notch. smile.gif
  • Jenn0
    Options
    Offline / Send Message
    I just followed a link to this tutorial, really good tut by the way, certainly going to put this to good use smile.gif. But i am suffereing from the same problem as fr0gg1e, when i run the generate blue channel action, it reaches the merge layers and pops up with "The command "merge layers" is currently not available." im also using Photoshop CS1. Help would be much apperciated.
Sign In or Register to comment.