Normal Bump Maps: Stay out of the water!
by Jameson Bennett · in Game Design and Creative Issues · 04/14/2005 (11:26 am) · 15 replies
Alright, as promised in this thread I am putting some art up after the normal map lighting issue has been addressed for static shapes (with a temporary workaround for the moment). I was having some major issues months ago, but I now have some time at the moment I am dedicating to modeling and working out a good art pipeline to TSE using some new and innovative tools now on the market.
I built this model completely in ZBrush, exported normal maps and a displacement map (altered in photoshop for specular mask), ran it thru my dts tool Obj2Dts and put it in my latest TSE build to see how the normal mapping in TSE worked with ZBrush.
I am happy to report, Very Well!:

Here's a shot from underwater:

This shows the power of normal mapping, the foreground model is 2000 polys, the background is 8000. I know it is high, but this was built as a quick experiment (and I just couldnt stop in Zbrush...that app is so much fun to use!!).

You may note that the normal map seam shows a bit in the normal bump highlighted by the specular, but this would not happen if I took the time with the UV map. I used Zbrush's auto GUV (grouped UV) generation, which does a great job, but tends to put the seams where it does. This is an issue with normal mapping in any real time (and non real time) engines and artist must be careful to place UV seams where they will not be seen easily.
This last image is from the other side, with the 8000 poly model in the foreground. Zbrush allows you to work at several resolution levels simultaneously, and is very natural for exporting different details into TGE/TSE. The gator's teeth have been removed to allow me to handle them safely:

The lowest detail I have modeled is ~500 polys, which looks great at a distance but breaks down some when you get close. The models took about 5 hours to create and add to TSE (Thanks again to ZBrush). I used the standard shader only.
So there ya go. Expect more to come...I am just getting started.
Alright! Enough fun stuff and procrastinating. Back to my taxes!
I built this model completely in ZBrush, exported normal maps and a displacement map (altered in photoshop for specular mask), ran it thru my dts tool Obj2Dts and put it in my latest TSE build to see how the normal mapping in TSE worked with ZBrush.
I am happy to report, Very Well!:

Here's a shot from underwater:

This shows the power of normal mapping, the foreground model is 2000 polys, the background is 8000. I know it is high, but this was built as a quick experiment (and I just couldnt stop in Zbrush...that app is so much fun to use!!).

You may note that the normal map seam shows a bit in the normal bump highlighted by the specular, but this would not happen if I took the time with the UV map. I used Zbrush's auto GUV (grouped UV) generation, which does a great job, but tends to put the seams where it does. This is an issue with normal mapping in any real time (and non real time) engines and artist must be careful to place UV seams where they will not be seen easily.
This last image is from the other side, with the 8000 poly model in the foreground. Zbrush allows you to work at several resolution levels simultaneously, and is very natural for exporting different details into TGE/TSE. The gator's teeth have been removed to allow me to handle them safely:

The lowest detail I have modeled is ~500 polys, which looks great at a distance but breaks down some when you get close. The models took about 5 hours to create and add to TSE (Thanks again to ZBrush). I used the standard shader only.
So there ya go. Expect more to come...I am just getting started.
Alright! Enough fun stuff and procrastinating. Back to my taxes!
About the author
jam3son.com
Recent Threads
#2
I'm looking forward to checking out your obj2dts exporter as well :)
04/14/2005 (12:32 pm)
Very nice.I'm looking forward to checking out your obj2dts exporter as well :)
#3
04/14/2005 (7:10 pm)
Thanks. The Obj2dts resource has yet to be approved, so I am not sure if the link is available. I submitted it a week ago and am hoping it is approved soon.
#4
04/14/2005 (7:24 pm)
That was totally wicked!
#5
*my computer crashes just for briefly thinking about possibly putting out that*
04/14/2005 (11:52 pm)
1.2 million polies?!?*my computer crashes just for briefly thinking about possibly putting out that*
#6
04/15/2005 (8:17 am)
ZBrush has no probs handling that # of polies, but practically any other 3d app will slow to a halt or crash if you load the model in from Z (if you get past the parsing time for the .obj file)...if I bump it to 4-6 million polies in Zbrush it gets a bit chuggy but still workable using the methods for masking and working lower detail levels and is basically limited to RAM. Baking the texture down to the 500 and 2000 poly models takes a couple minutes(using the high quality normal map settings, seconds with the lower quality methods) but as you can see quite a bit of the detail shows in the 2000 and 8000 poly models from those extremely high poly models.
#7
How do you animate your ZBrush models? I'm looking at ZBrush right now and feel comfortable that the texturing workflow is really good for game art but am wondering about adding bones.
thanks
04/21/2005 (10:36 am)
Nice models! The normal maps and good painting add a lot.How do you animate your ZBrush models? I'm looking at ZBrush right now and feel comfortable that the texturing workflow is really good for game art but am wondering about adding bones.
thanks
#8
04/21/2005 (10:44 am)
@Paul - My understanding of ZBrush is that currently it doesn't support animation directly. You must separately rig and animate using the resulting mesh in 3dsmax/Maya/etc. They have announced some sort of rigging support in a future version of ZBrush... but i'm still not clear as to it's application to animation.
#9
I'm curious about people's workflow with ZBrush though - it seems to have a lot of value as a modeller, texturing, painting tool. Like Jameson did here a person seems to be able to crank out some pretty good looking art. The ZBrush tutorials show how to export normal, displacement, and color maps, and maybe specular too, but I'm wondering what people do next for rigging and animation and just general workflow.
(Sorry, this may be inappropriate hi-jacking of the thread.) But my cheap tool workflow might roughly be:
1) Model in Wings3D, ZBrush, or Blender,
2) Import mesh to ZBrush, add detail, texture, paint,
3) Save texture as PSD, mesh as OBJ, normal map as BMP,
4) Use PaintShop to process textures,
5) Import OBJ to Blender, add bones and animate.
6) Do any other game engine-specific details needed.
04/21/2005 (1:52 pm)
Thanks Tom, yeah that's what I saw too. Pixologic even says that their upcoming rigging is more for posing and probably won't take the place of an animation rig that you'll add in another app.I'm curious about people's workflow with ZBrush though - it seems to have a lot of value as a modeller, texturing, painting tool. Like Jameson did here a person seems to be able to crank out some pretty good looking art. The ZBrush tutorials show how to export normal, displacement, and color maps, and maybe specular too, but I'm wondering what people do next for rigging and animation and just general workflow.
(Sorry, this may be inappropriate hi-jacking of the thread.) But my cheap tool workflow might roughly be:
1) Model in Wings3D, ZBrush, or Blender,
2) Import mesh to ZBrush, add detail, texture, paint,
3) Save texture as PSD, mesh as OBJ, normal map as BMP,
4) Use PaintShop to process textures,
5) Import OBJ to Blender, add bones and animate.
6) Do any other game engine-specific details needed.
#10
Zbrush does not support animation. There are rumors on the zbrushcentral forums that it may, and several zscripts have been written by community members experimenting with it but I do not expect it in that tool. This is fine with me as it seems that it will dilute the tool and move it towards the other modeling tools methodology. There are many rigging and animation tools out there: the only issue is finding one with a good .dts exporter without cleaning out your pockets. Blender is a decent choice and only looks to improve, esp if exporter issues are addressed.
The workflow you outline above is very similar to my own. I currently do my low polies in silo or lately I have been working from the start exclusively in zbrush. The zsphere tool is difficult to master at first, but I can now have a general start to my model in about 5 mins, with all my limbs, digits and major features outlined and ready to have detail added. Adding more detail low res is easy afterwards using the 'edge loop' tool. Getting good meshes from the zsphere tool takes practice but is definitely possible and i recommend spending about two months or so till you get the hang of them :) Also, I highly recommend looking into the XYZ zscript if working with zspheres as it allows adjustment of resolution after placing a sphere in a chain.
Blender needs to have some issues addressed with the exporting process...there are still issues with animation, face normals and lack of tri-stripping (not to dog the great work James U has done on the exporter: he basically converted the entire dtssdkPlus to python!). James U suggested he may crack on a native based tool for exporting from blender but I am not counting on it since as I am well aware work on these things gets done as 'personal time' becomes available.
Thanks again for the compliments!
04/22/2005 (6:22 am)
Hi-jack away! It's great to get discussion on asset workflows...as GG has pointed out themselves the art chain is lacking and needs refinement, esp for persons new to the engine and the requirements for adding meshes and animations.Zbrush does not support animation. There are rumors on the zbrushcentral forums that it may, and several zscripts have been written by community members experimenting with it but I do not expect it in that tool. This is fine with me as it seems that it will dilute the tool and move it towards the other modeling tools methodology. There are many rigging and animation tools out there: the only issue is finding one with a good .dts exporter without cleaning out your pockets. Blender is a decent choice and only looks to improve, esp if exporter issues are addressed.
The workflow you outline above is very similar to my own. I currently do my low polies in silo or lately I have been working from the start exclusively in zbrush. The zsphere tool is difficult to master at first, but I can now have a general start to my model in about 5 mins, with all my limbs, digits and major features outlined and ready to have detail added. Adding more detail low res is easy afterwards using the 'edge loop' tool. Getting good meshes from the zsphere tool takes practice but is definitely possible and i recommend spending about two months or so till you get the hang of them :) Also, I highly recommend looking into the XYZ zscript if working with zspheres as it allows adjustment of resolution after placing a sphere in a chain.
Blender needs to have some issues addressed with the exporting process...there are still issues with animation, face normals and lack of tri-stripping (not to dog the great work James U has done on the exporter: he basically converted the entire dtssdkPlus to python!). James U suggested he may crack on a native based tool for exporting from blender but I am not counting on it since as I am well aware work on these things gets done as 'personal time' becomes available.
Thanks again for the compliments!
#11
04/22/2005 (10:21 am)
Thanks for the info Jameson! Very helpful to hear about some real experience with the tools.
#13
- Model in-game model in 3D package
- UV map in-game model in 3D package
- Export as .OBJ (will retain UV's)
- Import into ZBrush/Mudbox
- Immediately (before sculpting) increase the mesh tesselation iteration. Never sculpt on the 1st level- only on levels above it. The reason for this is that the base level represents your in-game mesh (it IS your in game mesh after all, it's what you imported into ZBrush). It has Uv's already laid out, and is ready to go. Therefore, any changes that occur to your mesh on the higher topology levels will translate all the way down to your game mesh. So when your ZSculpt is all finished, your game mesh (first level) will be a perfect representation of it.
- Complete your ZSculpt
- Export high poly as .OBJ
- Export low poly as .OBJ
- Import both back into your 3D package (Max in my case)
- Generate all your maps (norms, AO, etc..)
- Paint maps in Photoshop
In the end, you have a not-so-worthless high poly mesh (it has well laid out UV's from the second step, and can be used for marketing purposes), and an in-game mesh that matches up perfectly.
The beauty of this is that down the road when you want to make changes to this char/object/whatever, all you have to do is load it up in ZBrush, make your changes on any level higher than the base, and you're done! All the changes will have trickled down to the in-game first level geo...
ZBrush is not an all inclusive package, being the end all be all of asset development. In my eyes, it can do quite a few things, of which about 1% of can be used for game dev. You're always going to need a good 3D package such as Max or Maya to get a good in-game mesh, and everything else associated with characters. ZBrush also does not generate as high a quality normal map as a program such as Max does, and offers you much less control over the end result. It's a program that has it's merits, but really only in one thing tangible to good next gen game art - sculpting!
Thoughts?
09/11/2007 (7:49 am)
Here's an alternative workflow:- Model in-game model in 3D package
- UV map in-game model in 3D package
- Export as .OBJ (will retain UV's)
- Import into ZBrush/Mudbox
- Immediately (before sculpting) increase the mesh tesselation iteration. Never sculpt on the 1st level- only on levels above it. The reason for this is that the base level represents your in-game mesh (it IS your in game mesh after all, it's what you imported into ZBrush). It has Uv's already laid out, and is ready to go. Therefore, any changes that occur to your mesh on the higher topology levels will translate all the way down to your game mesh. So when your ZSculpt is all finished, your game mesh (first level) will be a perfect representation of it.
- Complete your ZSculpt
- Export high poly as .OBJ
- Export low poly as .OBJ
- Import both back into your 3D package (Max in my case)
- Generate all your maps (norms, AO, etc..)
- Paint maps in Photoshop
In the end, you have a not-so-worthless high poly mesh (it has well laid out UV's from the second step, and can be used for marketing purposes), and an in-game mesh that matches up perfectly.
The beauty of this is that down the road when you want to make changes to this char/object/whatever, all you have to do is load it up in ZBrush, make your changes on any level higher than the base, and you're done! All the changes will have trickled down to the in-game first level geo...
ZBrush is not an all inclusive package, being the end all be all of asset development. In my eyes, it can do quite a few things, of which about 1% of can be used for game dev. You're always going to need a good 3D package such as Max or Maya to get a good in-game mesh, and everything else associated with characters. ZBrush also does not generate as high a quality normal map as a program such as Max does, and offers you much less control over the end result. It's a program that has it's merits, but really only in one thing tangible to good next gen game art - sculpting!
Thoughts?
#14
if so, drop me a line... my contact info is at http://conceptjewel.com
09/11/2007 (8:12 pm)
Chanse Linder??if so, drop me a line... my contact info is at http://conceptjewel.com
#15
I disagree on zbrush exporting high quality maps.. using the zmapper plugin(not the standard normal mapping tool), you have total control over the maps, including generating AO, displacement, etc all from the same tool with real-time preview.
Of course, you will have to do your UV's in another application. I do my low poly work in blender along with the UV mapping, then .obj -> zbrush. Zbrush 3 has amazing tools for working with high subdivisions... you can even map your high res details onto a completely new low poly model. My tests with this have been very successful.
Another very nice feature is the ability to draw a low poly cage onto your high res model right in zbrush. This means you can start modeling with no concern over edge flow and poly distribution, then when you get what you want just draw your low poly on top of the high poly and transfer the details over (with the in-between step of taking the low poly model into your uv mapper of choice and unwrapping it). The tool had some bugs in 3.0, but my initial work with 3.1 shows they squeezed a lot of the issues out and works quite well.
Zbrush is THE tool major studios are using to detail their models. It is not an animation tool but a good deal of the pipeline can be handled there; the latest version will and has changed modeling workflow forever.
09/11/2007 (8:26 pm)
@JonathanI disagree on zbrush exporting high quality maps.. using the zmapper plugin(not the standard normal mapping tool), you have total control over the maps, including generating AO, displacement, etc all from the same tool with real-time preview.
Of course, you will have to do your UV's in another application. I do my low poly work in blender along with the UV mapping, then .obj -> zbrush. Zbrush 3 has amazing tools for working with high subdivisions... you can even map your high res details onto a completely new low poly model. My tests with this have been very successful.
Another very nice feature is the ability to draw a low poly cage onto your high res model right in zbrush. This means you can start modeling with no concern over edge flow and poly distribution, then when you get what you want just draw your low poly on top of the high poly and transfer the details over (with the in-between step of taking the low poly model into your uv mapper of choice and unwrapping it). The tool had some bugs in 3.0, but my initial work with 3.1 shows they squeezed a lot of the issues out and works quite well.
Zbrush is THE tool major studios are using to detail their models. It is not an animation tool but a good deal of the pipeline can be handled there; the latest version will and has changed modeling workflow forever.
Torque 3D Owner Jameson Bennett