View Full Version : Texturing generating Normal Maps
Levitateme 07-17-2003, 04:37 AM In this tutorial I am going to teach people the method I learned from http://www.drone.org/ . All the shader networks, all the info on how to do this can be found there. The tutorial on drone works, but I have simplified it for people who want the look you might see in DOOM 3 for exp. If you want to do what they are doing in games like Half Life 2, Doom 3.
I think this will be a good place to learn. The main benefit I have found from using Normal Bump maps is, having a high detailed look on your low polygon object, fast render times also. I hope people have checked out the 2 games I mentioned above, you can really see the benefits from using these Normal Maps. As I said, I did learn how to do this from http://www.drone.org/ ,but I had some difficulty with it, so I had to figure this out my self eventually. You can head to drone for more detailed info like if you want to use Normal Maps for Displacement, on your low poly objects. This tutorial is mostly for game models. So lets get in it now why don’t cha now hey?
The first thing you MUST do is have your UV’s laid out, as if ready to start texturing. Duplicate the low poly, then smooth it “I smooth 1 subdivision, you see why later”. In the picture below I have 2 models. The smoothed model has the uvs from the low poly model, once your normal map is made it will project onto your low poly exactly. “I mention this because I have had a few people ask how will they be applied to a low version of the geometry”.
http://home.bresnan.net/~waveofmutilation/step1.jpg
Now using the sculpt poly tool add the details you want. Since this is a model of a DIGIMON, the actual character has no definition. I am adding some definition to make him look more like a dinosaur. After about 40 min of sculpting I have something that I think would work for a normal map.
http://home.bresnan.net/~waveofmutilation/step3.jpg
Next thing is once you are satisfied with your high res model,smooth 1 to 2 times more. This way you get quality you would see close to actual sub-division. Smoothing the first time, with a low setting, is so all your resources are not being eaten up while sculpting, you just want your general detail. So now you have sculpted/edited your model and you are ready to make your Normal Map.
http://home.bresnan.net/~waveofmutilation/step4.jpg
Download this zipped file which has the normal map, and the shading network for the normal bump map.
Normal maps.rar (http://home.bresnan.net/~waveofmutilation/Normal.rar)
|
|
Levitateme
07-17-2003, 04:40 AM
Now import both shader into hypershade. Now, after applying the normal shader to your smoothed geometry, shift select your model+the normal shader. Now go to Edit >Convert to file texture> “under hypergraph, these are the options I use, with a resolution that I think is fitting”. Now convert to texture and close.
http://home.bresnan.net/~waveofmutilation/step5.jpg
You have your normal map texture!... Using the Normal Bump shader, graph its network. There is a file connected into the Utility sample. Go to the file, click on the open icon to find your texture.
http://home.bresnan.net/~waveofmutilation/step6.jpg
Levitateme
07-17-2003, 04:43 AM
Now apply your shader to your low res and render!
http://home.bresnan.net/~waveofmutilation/step7.jpg
...what is going on... in the image below you see it looks great, but you have seams? The seams are were the Normal Map, when its generated stops. Sadly I have asked around no one has a technique that will JUST GET RID OF THEM. So there is actually a little work now. :(
I have found a method that will take about 70% off your time fixing the seams though. :)
Open your Normal Texture in Adobe Photoshop, if you use something else, this should still apply. Select with the wand tool (w) the Black on your texture. Then Select >Similar, now you have selected all the Black. Click on the ADD LAYER MASK button under layers. Your actual Normal map is still preserved. Drag that layer “in the image its called SOLID NORMAL” to create new layer icon. You now duplicated that layer with its mask. Apply the mask to the layer witch is labeled EDGES, the layer you just created. Go to Filter> Blur> Gaussian Blur. You only want to blur this enough so the edges start bleeding. So your EDGES layer is all blurry now, drag it to Create New layer icon about 5 times, then merge if you like. Now your blurred edges are very thick, they should be blending nicely into the SOLIDNORMAL layer. You have just gotten rid of a lot of manul work. After this step, I find what edges wont go away in Adobe Photoshop by doing some test renders. So in Maya, I Clone paint them edges outta there.
http://home.bresnan.net/~waveofmutilation/step8.jpg
Levitateme
07-17-2003, 04:45 AM
The image below, I only used Photoshop to get rid of my edges. I haven’t cloned the edges away, big difference though. Works pretty well, and leaves you with much less work. Depending on how many uv shells you have, the more edge fixes you have to do. This is the one draw back for me using normal maps, I wish it would generate without the seams, BUT!, its not a terrible burden. You can get rid of them fairly fast. Well that wraps up my tutorial on normal maps.
http://home.bresnan.net/~waveofmutilation/step9.jpg
I hope someone finds this beneficial. Any questions you can ask here, or...email me!
Ciao.
Abominable
07-17-2003, 05:17 PM
Hey man, looks great even though I haven't finished reading it yet...I'm still eating my breakfast. Thank you for your time to put this tutorial up last night, I'm going to try another model with your approach right away.
Cheers :thumbsup:
Nice tutorial. :)
Many normal map tools (free and commercial) allow you to expand the border when its generated which will help to avoid seems. Also I believe your maps are in world space? I think most games need normal maps in tangent space to work correctly.
Here is a link that may be of interest
http://www.soclab.bth.se/practices/orb.html
leigh
07-17-2003, 11:08 PM
Thanks a lot for the tutorial, Levitateme :thumbsup:
I am wondering if perhaps we should move this to the Maya forum? Let me know :)
Atwooki
07-21-2003, 02:06 AM
Great tutorial Levi,
Now I see what you were getting at some time ago (post: extending edges on maps!)
This will go in my treasured archive of tutorials!
BTW: You put these tuts together in a very easily readable form....
Is there a book on the horizon, perhaps? ;)
Atwooki
Levitateme
07-21-2003, 02:10 AM
hi atwooki, this tutorial is defunct! i found the proper method, i met a guy who works for the guys who did ...heavy metal fakk 2
them games. i spent about 3 hrs talkingto him. he showed me this program called ORB, it not only gets normal maps in tangent, and world space. it also gets rid of the seams entirely. i have alot to do on this half life model im working on, after that im going to update this normal forum with the proper way. cause he explained to me the normal map i have on this model now is world space, it should be tangent space i didnt know any of this. like i said i had to figure this out on my own. well now i know. ill update this week on how to properly do it both ways.
Boxsmiley
07-23-2003, 04:04 PM
Levitateme, great tutorial... one question though. Could you explain what you mean by World Space, and Tanget Space? :shrug:
Thanks
Levitateme
07-23-2003, 10:32 PM
hi box, yah when i update this i will explain both in laymens terms. also when i update it wont apply to just maya users anymore. it will apply to anyone who does 3d. but i am working on thie Half Life 2 mod, waiting for them to send me some designs so i can model something. until then i dont have anything to model. sometime this week i hope.
Boxsmiley
07-24-2003, 02:58 PM
sounds worth the wait... Thanks. :D
EricChadwick
07-24-2003, 04:47 PM
Here's a thread on polycount where I learned the difference between Tangent Space, Object Space, and World Space for normal maps...
Topic: Normal mapping... why world space?
http://dynamic.gamespy.com/~polycount/ubb/Forum8/HTML/001876.html
Boxsmiley
08-05-2003, 11:02 PM
I'm trying to understand why is it that my normal maps do not come in as smooth? Is it the program that is producing the maps? At the moment i am using ORB to render bump and then i go into Max and apply the normal map (that colorful map) to the bump map slot. But when i do it gives me some poor results like the picture below. Am i doing something wrong or is it the quality of the program? Thanks in advance for any advice i get.
Levitateme
08-05-2003, 11:05 PM
that is why, you dont just apply it to a bump map slot . you ahve to have a special shading network for it to work. in 3ds i belive there are alot of them out there . just post on the 3ds forum here, im sure someone will tell you.
Boxsmiley
08-06-2003, 03:30 PM
forgive my newbie ways...but when you say shading network, do you mean shading plug-in? Oh and thanks for the response i will ask in the max area.
Levitateme
08-06-2003, 05:14 PM
nono, not plugin. in 3ds, i dont konw what its called just a "shader" i guess is all you need.
Boxsmiley
08-06-2003, 05:31 PM
hmmm... well i'm gonna go dive into google to see what i can find. If anyone has a strait up answer, please post here or in the max area, thanks. Oh and thanks again for your advice Levitateme, i know your mostly a maya user, so thanks for trying to translate as much as you can. :beer:
Levitateme
08-06-2003, 05:34 PM
np good luck.
EricChadwick
08-06-2003, 05:46 PM
The analogy in 3ds max to Maya shader network is the material tree. With a complex material selected in the Material Editor, open up the Material/Map Navigator. There's your "shader network."
BTW, Bobo has a neat script for browsing/editing these networks, called TreeMatoGraph. It can be used as a whole alternate UI for the Material Editor... helpful if for example you need to manage instanced maps.
http://www.scriptspot.com/bobo/darkmoon/tmg/
Boxsmiley
08-06-2003, 07:52 PM
Posm...you just opened up a new floodgate with the term material tree. I've never heard of that, but if your right, then its worth researching. Hope its not to complicated... So thanks for the TreeMatoGraph option, i'll give it a try as well.
EricChadwick
08-06-2003, 08:01 PM
Before tackling TMG, may I suggest reading the 3ds max Reference help file? The material section has tons of useful info about how parent/children relationships work. They don't call it a "material tree" per se, but it essentially is... parents, children, siblings, etc. Really worth a read.
Boxsmiley
08-06-2003, 08:33 PM
Any suggestions on what direction i should be searching the info under the Discreet Reference help? Thanks.
EricChadwick
08-06-2003, 08:42 PM
In the User Reference help file, go to the Contents tab and choose "Material Editor, Materials and Maps," especially the sub-heading "Material Editor."
Boxsmiley
08-06-2003, 09:22 PM
Maybe i'm coming off as too much of a newbie or maybe i'm just that much of a newbie and more. but my direct question...and maybe this will help, is that I still don't understand where the normal maps are placed once they are created. Is it on a special channel, maybe i have to use a different material browser like shell material. I'm just trying to figure out exatcly where to place this colorful normal map that was created for my lowpoly model from a highpoly clone so that i can see if it works or not. I understand what the material tree is...maybe...isn't just a hierchial represenatation of the materials you've placed on the model so far? or is there some option in this hierachy that i'm missing that will allow me to apply the normal maps and get them to render properly? sorry for being a bum but it kills me that i can't understand what i'm looking for.:banghead:
Thanks again for all the help.
EricChadwick
08-06-2003, 09:54 PM
Sorry, silly me for getting way off-topic.
Three options in 3ds max v5:
1) Display the normal map only in the viewport, not in the render: use the MetalBump shader. Ask if you want this, I don't think you do.
2) Display the normal map only in the render, not in viewport:
Two options:
2a) GNormal, a free map plugin, available here:
http://www.maxplugins.de/max5.php?search=gnormal
Put it in your Bump channel, load your normal map inside it.
2b) Kaldera, pay map plugin (plus a good normal map generator), avail here:
http://www.mankua.com/kaldera.cfm
Same method as GNormal, though it offers better rendering quality.
Boxsmiley
08-06-2003, 10:28 PM
OK, i'm excited becasue i think i'm on to something with all of this help... here is were I am. I got the Normal Render from Sparks...and i'm following the directions word for word on how to apply it. Now I can't find the viewport manager/shader rollout, so that i can apply my normal map thru metal bump, which you just mentioned! Exciting, i know!
Boxsmiley
08-06-2003, 10:35 PM
OK, i'm excited becasue i think i'm on to something with all of this help... here is were I am. I got the Normal Render from Sparks...and i'm following the directions word for word on how to apply it. Now I can't find the viewport manager/shader rollout, so that i can apply my normal map thru metal bump, which you just mentioned! Exciting, i know! :drool:
http://www.polygonists.org/cgimages/MetalBump.jpg
Boxsmiley
08-06-2003, 11:07 PM
ok, i figured out where the viewport shader was...i had a maxtreme driver and i needed to be in OpenGL directX 8. Any suggestions on any good seetings for Metal bump...do you maybe recommend Gnormal as opposed to metalbump? Oh it doesn't show up when i render is it becasue i need a viewer (Gnormal?) or maybe a game engine to see it real time. It would be nice to view the progress to see how it is coming along.
EricChadwick
08-07-2003, 01:57 PM
Glad you're figuring it out.
MetalBump is only viewable in the viewport, it doesn't render. GNormal is only renderable, it doesn't preview in the viewport. You might be able to use both together in the same material, I haven't tried that.
I found with Metal Bump I needed to put another bitmap in the Color slot (solid white worked well), otherwise the normal map would show up as both color and bump map.
If you have MetalBump working, then you don't need an external viewer. If you still want one though, the ATI normal mapper comes with a simple viewer.
http://www.ati.com/developer/tools.html
Metal Bump requires you to use Direct3D as your display driver. OpenGL is a separate display driver.
BTW, Discreet's Normal Render is the least-helpful normal map generator, in my opinion. It requires UVs to be the same on both meshes, and doesn't allow any tweaking of options. I posted a list of other tools awhile back...
http://www.cgtalk.com/showthread.php?s=&threadid=62364
Boxsmiley
08-07-2003, 05:13 PM
Hey Posm, when you said if i used metal bump i shouldn't need a viewer, what do you mean by that...The max viewport (perspective/user) should be showing the applied normal map?...is there a configuration that i have to activate inorder to view them in the max viewport? or is it automatic updated? Thanks.
EricChadwick
08-07-2003, 05:29 PM
For Metal Bump to display, you need a graphics card that supports a certain rendering feature, I can't recall the exact name. 3ds max also needs to be set to use Direct3D for viewport display. You also need to make sure the cehckbox Enabled is checked, in the Viewport Manager rollout of the material.
What card are you using? Not that I can really tell you much about cards... but maybe someone else could.
Boxsmiley
08-07-2003, 05:55 PM
Allright... I'm using Direct3D, and i have turned on enabled next to metal bump, so i'm assuming its the Vid card? At the moment i have a Quadro 750XGL. So if anyone knows about vid cards and why certain ones don't render realtime, please post. Thanks! Oh and thanks again Posm for all your help...one day i plan to answer more questions than i ask.
:beer:
EricChadwick
08-07-2003, 06:09 PM
Hey, one thing I forgot. Metal Bump only shows up when the object is Editable Mesh. If you have an Editable Poly, then either collapse it to Editable Mesh, or else put a Turn to Mesh modifier at the top of the stack.
I think the card support thing is it needs to support "pixel shaders." You might try asking in the Hardware forum about your card...
Daniel Whitton
01-30-2004, 06:58 AM
Great tutorial.
I see the cooncept and left with a question that I'll probably answer myself.(NO)
Using normals maps for a high res meshfor a game. IF it is a pplied to a low res model, and the map called for before rendering can this be used with quality results for high res renderings. Like Demo reels.Hehe. What I was wondering was if there was significant diiferences in render time when calling a map vs. calculating more vertices.
I'm using mental ray for maya 5.0.1 I did stop buy drone.org and started to read the tutorial quite some time ago.
Thanks.
Dan
EricChadwick
01-30-2004, 01:56 PM
Yes, it can be faster to render, particularly if you're deforming the model, since there are less vertices to calculate transforms for.
The big drawback is that normal mapping does not preserve the silhouette of the high-poly model, so your low-poly normal-mapped model will only look high-res on the surface but will still have a chunky silhouette.
Better to use these tools to create a grayscale displacement map, then use to displace the low-poly model at render time. This will render more slowly than normal mapping, but will give an excellent silhouette, will perform better in the viewport during animation, will also provide more accurate self-shadowing, etc.
ddel63
03-05-2004, 06:39 PM
Hey Levitateme, That tutorial was extremely helpful. Thank you. It was way better than drone.com's tutorial and the shaders were especially helpful. I know this post is old so if you don't get this I understand. I have a question regarding the color map when using a normal map. For example: lets say I'm doing an arm band. I make a lo-res armband poly shape. And then on the high-res i add all kinds of details to it for the normal map. Lets say for example I add a control panel on the hi-res armband. Would I have create a color map for the high-res object first to get all of the details to line up correctly on the color map and then connect it to the shader I'm using on my lo-res. This is the only way I could think of doing it. Any ideas would be helpful. Thanks.
fr3drik
03-23-2004, 06:39 PM
After importing the normal map into the hypershader the whole perspective viewport goes blank. I'm on a Quadro FX and I installed several different versions of NVIDIA's driver... still not working. Anyone have an idea about what could be wrong?
Luckily I can create a camera and continue working... but still. The persp viewport is all gone.
Also, I get this warning all the time:
Warning: File not found: render_maya_rayDisplace.xpm.
I added the system variable for mental ray cusom shaders, placed the files from drone.org in the appropriate folders and edited maya.rayrc ... did I miss something?
Oh yeah, and I'm using Maya 5.01.
Dan Wade
04-24-2004, 01:47 PM
Are there any Normal maps shaders for MR in Maya? I can get it working in Maya software, but not through Mental Ray.
Cheers,
Dan.
Myau337
07-18-2004, 08:02 PM
LevitateMe's tutorials have helped me out greatly in the past, and I noticed he's updated his UV layout and texturing information-- but this post on normal maps is lacking images and I can't find any links to newer versions of this guide. LevitateMe, are you planning to update this tutorial elsewhere or does someone else have this guide archived with images? I'd like to get competant with normal maps in anticipation of Doom 3 without having to deal with the thicker and more archaic tutes on Oliver's drone.org. Thanks!
Myau
fr3drik
07-18-2004, 08:25 PM
I believe Maya 6 has much better support for normal mapping (havn't tried it yet though). You can bake a normal map using the "Transfer surface information" command under the Lighting/shading dropdown. Look up this command in the help files for more info.
Myau337
07-19-2004, 10:59 PM
Thank you Fr3d, I will look into that-- will report back here if I find anything useful :)
Levitateme
07-19-2004, 11:33 PM
thats all you can do fr3d, just make them in maya now...but you can view them in realtime using cgfx shaders, that does not mean you can render using a normal map for a bump channel for example though. maya for SOME reason did not make that supported, xsi does this automatically, if you like you can add a normal bump map and a greyscale. xsi sure has there stuff together on all aspects imo.
CGTalk Moderation
01-15-2006, 04:00 PM
This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.
vBulletin v3.0.5, Copyright ©2000-2012, Jelsoft Enterprises Ltd.