MichaelZee@Posted: Fri Jun 23, 2006 8:17 am :
Hello :)

With the character models such as the Doom Marines in green, how did id go about making there entire normal map? Did they import their whole low poly models into zbrush and skulped them there? I am having a hard time trying to preserve hard edges for my models in Zbrush that I designated in max :( . In resault, it seems almost impossible to create various armor types yet I see id's armored characters such as the doom marines and I really wonder how did id make there normal maps for them with zbrush(especially there armor). Does anyone know how they went about doing it? The information would really help me out big time

Thanks :)



Rayne@Posted: Fri Jun 23, 2006 10:54 am :
Id made only few characters out of Zbrush for vanilla DooM3. As Kenneth Scott said they used Zbrush for sculpting new monsters for the expantion pack RoE... Techy parts such weapons, armors etc are modelled in maya/lightwave



MichaelZee@Posted: Fri Jun 23, 2006 8:26 pm :
hmm, so more than likely with the doom marines they just made a high poly model in their 3d package. Did they use a third party program to generate the normal map? I'm trying to use max's but its proving to be pretty challanging in attempt to get the cage working and then getting the normal map; so far I havent been able to get desirable reaults.

EDIT:

I currently found a nvidia software called melody that does the job. I am having a problem with it though, when ever I generate a normal map it doesnt respect the uvw map I made and comes out all in peices. Any ideas or suggestions to another software for that matter? Help is really appreacited :)



parsonsbear@Posted: Sat Jun 24, 2006 2:19 am :
Doom3 actually has one of the best highpoly-lowpoly normalmap transfers available. Do some searches for renderbump, or look in the art reference at quake4/iddevnet.



MichaelZee@Posted: Sat Jun 24, 2006 4:42 am :
Ok, by reading through several differant sources I have found out like parsonbear had mentioned, a built in renderbump system in doom3. This is my siutation:

I have a low polygon character and a high polygon version of that character. I would like to use the high polygon version to generate a normal map for my low polygon character. To do that with the Doom Engine's renderbump, how should I go about it? What should the code look like?

I am really thankful for any help.



MichaelZee@Posted: Mon Jun 26, 2006 3:23 am :
Alright I need help big time!!!

I'm trying all I can to generate a normal map but it just never comes out how I want it to. I was able to get melody (a normal map generater problem by nvidia) to respect my uvw map coordinets but no mather what I cant get it to where my nromal map sits in well with my character. It just seems absolutly impossble to make a high polygon generated normal map for a character, its an complete mystery to me how id coudeve made theres so well.

So far I have been trying Melody and 3DS Max 8 and I have realized from that of my experience that it is best to seperate objects that are on your character becuase if you dont it will interfear with the cage. For example, the side packs of my character's belt was in the way of the belt area so I would get bad results. Even though with that method in mind I still get bad edging and some undisirable resaults as you can see with a piece of the character included in the picture (Please See Picture--This map was generated in max).
Image

The bad edging is common throughout my normal map and some resualts are not what I am looking for, I beleive it has to do with the cage.

Please Please Please help, Im getting desperate! :cry:



rich_is_bored@Posted: Mon Jun 26, 2006 4:43 am :
It's really hard to tell what your problem is because all we have to look at are the resulting normal maps.

But it's impossible to gauge how your normal maps should have turned out because we've never seen the models you're using to generate them.

The only thing I can comment on is the "bad edges". If you look closely at that area you'll see that the circle in fact is well defined. It's just the surrounding border of pixels which is stretched out a bit.

Without seeing your UV map I can't say for certain but this may not even be an issue. Most programs that render out a normal map draw outside the bounds of each UV group a set number of pixels.

The idea is much the same as traditional texturing in that you want to paint around the bounds of the UV map. For instance, if you painted a diffuse map on a white image and stayed within the bounds, you'd have white areas around all the UV seams.



MichaelZee@Posted: Tue Jun 27, 2006 1:49 am :
Thank you for the information. To make the situation more clear I took some screenshots

Heres the UV map for the character

Image

Here is the best normal map I have generated with melody so far. I took off some pieces of the character because of projection problems so I'd would do them individually but here is the body and head of the chracters normal map. The shoe part is on the right middle.

Image

With this current normal map I am having problems with various parts like the bottom bevel of the shoe. Here is a picture of the shoe of my highpoly character model.

Image

Yet in the low poly character I get problems like this when I apply the normal map and I dont know how to prevent them.

Image

I hope I made this more clear, I just get random problems like were seeing in the boot bevel. I did noticed however the color coordination in that area is kind of messy but I dont know how to fix it. Any idea on what I may be doing wrong? If you need more pictures I can send them over via email. The help so far is really apprecatied :D



rich_is_bored@Posted: Tue Jun 27, 2006 5:00 am :
Is this character for a Doom 3 engine game? If so, your normal map should be rendered in tangent space. The normal map you've posted appears to be rendered in object space.

And yes, it's pretty common to have to break the model into pieces, render them all individually, and composite the resulting normal maps in post.

Also, if the screenshot of that boot is any indication as to how dense a mesh your using for your high poly character, I'd say you could up the polycount there considerably.

I realize that you're trying to preserve hard edges but I'd turn that high poly model into a subdivision surface and use edge loops to preserve the hard edges. You can always apply the subdivision to the mesh at a later state to end up with polygons which you can then render a normal map with.

I wonder, have you tried rendering normal maps for simple primatives yet? You know, just to get a feel for the workflow you'll need to follow given the applications you are using. Things like what file formats you'll need to utilize, ect...

I suggest you put your character on the back burner for a bit and try rendering a normal map using a high and low poly sphere. Just start with something simple. No hard edges. Just a low and high poly sphere.



parsonsbear@Posted: Wed Jun 28, 2006 12:54 am :
Like I said before, you should follow the instructions at idDevnet. They really did an underappreciated job with that site, it's very good- much better than most tutorials for any system in fact.

http://www.iddevnet.com/quake4/ArtRefer ... tingModels

Also, the introductory text on normalmaps by JCarmack is a good read too:
http://www.iddevnet.com/doom3/bumpmaps.php

I've used melody before, and I ran into the same problem- I'm much happier now that I follow the id system.



der_ton@Posted: Wed Jun 28, 2006 10:42 pm :
On a side-note, your uv-mapping is not very suitable for normalmapping. Here is a quote from the iddevnet-article on bumpmapping, linked above by parsonsbear:

Quote:
The lowPolyModel must have texture coordinates on it, and care should be taken to make sure the mapping is as good as possible. Before doing a RenderBump, test the model in the game with "r_showTexturePolarity 1" and "r_showEdges 1". Make sure that there aren’t any texture seams that aren’t absolutely necessary, and that there are no overlapped texture projections.


The texture seams look bad ingame, and they even affect rendering performance negatively, because a vertex on a seam has to be duplicated into two vertices for the rendering.



MichaelZee@Posted: Thu Jun 29, 2006 11:23 pm :
thanks for the information and help guys.

rich_is_bored: Thanks for the help, I changed my other normal maps to now be tangent space and I practiced on some more simplier objects; helped me out well to get more of the feel like you said.

Parsonsbear: Thank you for the links. With what you provided I am learning how to do it id's way (currently with the quake 4 link). Everything is going pretty well so far but I ran into one problem. On step 4 they use lightwave which makes it hard for me to understand becuase I use 3dsmax8. I am not sure if you use lightwave yourself but if you know how to do this part with 3dsmax 8 that would be a gigantic help.

der_ton: Thanks for the side note but I am going to take my chances with this Uv set up for now. If it doesent look good or performance is hoged then I'll just have to re-Uv map it. But how should this Uv map look to be more suitable?



parsonsbear@Posted: Fri Jun 30, 2006 6:48 am :
well, it's hard to say because it's directly related to the file format that you load into quake4. Basically, they look at the shader name that's assigned to the poly's of the low poly model to find the doom3 material that's going to be used in-game (and also can contain your renderbump options)

If you export as 3dsmax .ase files, you're in for a world of hurt, but feel free to search around here and modwiki.net for info on the process. (AFAIK) it involves opening the .ase files in a text editor and manually changing the material names to the d3 shader name.



MichaelZee@Posted: Fri Jun 30, 2006 8:06 pm :
parsonsbear wrote:
well, it's hard to say because it's directly related to the file format that you load into quake4. Basically, they look at the shader name that's assigned to the poly's of the low poly model to find the doom3 material that's going to be used in-game (and also can contain your renderbump options)

If you export as 3dsmax .ase files, you're in for a world of hurt, but feel free to search around here and modwiki.net for info on the process. (AFAIK) it involves opening the .ase files in a text editor and manually changing the material names to the d3 shader name.


Ok, on a video tutorial by Brain Trepaning on developing your own static meshes for doom3, I remember him going inside the .ase file using the text editor and changing the shader name. Perhaps he would know how this is done but another thing is that I plan on making an animation model. If I recall, .ase are good for static models but I would want to do an md5mesh, or does it not matter since after all I am going to just be redering a bumpmap with the two models for now?

So would the shader on the low poly character model be the _d map of your character and is the shader put on to your character as if your assigning the low poly model a texture or just naming the mesh the path name of the shader? I'm sorry I don't quite get the process yet, I have made characters for unreal but this is diffenant.



rich_is_bored@Posted: Sat Jul 01, 2006 5:29 am :
As long as the UV maps are the same for both the ASE and MD5mesh, it won't matter which model you use for rendering a normal map.



MichaelZee@Posted: Sat Jul 01, 2006 8:43 pm :
Ok.

I am attempting to just render the normal map out to at least get the feel how this way works. I am on part 5 where you render out the normal map. Here is my mtr file for what i am going to render.

Code:
//----------------------------Faction_Grunt---MatierialCode-----------------------------------------------

models/faction_enemies/Faction_Grunt_Body_Low

{
        noselfShadow
        unsmoothedtangents

renderbump
-size 1024 1024
-trace .05
-aa 2
-mergehigh

textures/faction_enemies/Faction_Grunt_local.tga

models/faction_enemies/Faction_Grunt_Body_High.ASE


diffusemap              textures/faction_enemies/Faction_Grunt_d.tga
bumpmap addnormals ( textures/faction_enemies/Faction_Grunt_local.tga, heightmap ( textures/faction_enemies/Faction_Grunt_h.tga, 1 ) )

}


On command prompt I can get it to work. I dont think I am intreprating iddevnet's directions correctly.

Image

Whenever I compile this I get dialog saying ....
Code:
< was unexpected at this time


What am I doing wrong here?

UPDATE: I just delleted all the < simbles and it launched me up into the quake4 menu in window mode. I also got rid of the ] [ simbols and it is still taking me to the main menu. I am not sure what is suppose to happen next but how come rendering of the normal map isent happening?



rich_is_bored@Posted: Sun Jul 02, 2006 4:13 am :
This portion...

Code:
renderbump
-size 1024 1024
-trace .05
-aa 2
-mergehigh

textures/faction_enemies/Faction_Grunt_local.tga

models/faction_enemies/Faction_Grunt_Body_High.ASE


...should be a single line.



MichaelZee@Posted: Fri Jun 23, 2006 8:17 am :
Hello :)

With the character models such as the Doom Marines in green, how did id go about making there entire normal map? Did they import their whole low poly models into zbrush and skulped them there? I am having a hard time trying to preserve hard edges for my models in Zbrush that I designated in max :( . In resault, it seems almost impossible to create various armor types yet I see id's armored characters such as the doom marines and I really wonder how did id make there normal maps for them with zbrush(especially there armor). Does anyone know how they went about doing it? The information would really help me out big time

Thanks :)



Rayne@Posted: Fri Jun 23, 2006 10:54 am :
Id made only few characters out of Zbrush for vanilla DooM3. As Kenneth Scott said they used Zbrush for sculpting new monsters for the expantion pack RoE... Techy parts such weapons, armors etc are modelled in maya/lightwave



MichaelZee@Posted: Fri Jun 23, 2006 8:26 pm :
hmm, so more than likely with the doom marines they just made a high poly model in their 3d package. Did they use a third party program to generate the normal map? I'm trying to use max's but its proving to be pretty challanging in attempt to get the cage working and then getting the normal map; so far I havent been able to get desirable reaults.

EDIT:

I currently found a nvidia software called melody that does the job. I am having a problem with it though, when ever I generate a normal map it doesnt respect the uvw map I made and comes out all in peices. Any ideas or suggestions to another software for that matter? Help is really appreacited :)



parsonsbear@Posted: Sat Jun 24, 2006 2:19 am :
Doom3 actually has one of the best highpoly-lowpoly normalmap transfers available. Do some searches for renderbump, or look in the art reference at quake4/iddevnet.



MichaelZee@Posted: Sat Jun 24, 2006 4:42 am :
Ok, by reading through several differant sources I have found out like parsonbear had mentioned, a built in renderbump system in doom3. This is my siutation:

I have a low polygon character and a high polygon version of that character. I would like to use the high polygon version to generate a normal map for my low polygon character. To do that with the Doom Engine's renderbump, how should I go about it? What should the code look like?

I am really thankful for any help.



MichaelZee@Posted: Mon Jun 26, 2006 3:23 am :
Alright I need help big time!!!

I'm trying all I can to generate a normal map but it just never comes out how I want it to. I was able to get melody (a normal map generater problem by nvidia) to respect my uvw map coordinets but no mather what I cant get it to where my nromal map sits in well with my character. It just seems absolutly impossble to make a high polygon generated normal map for a character, its an complete mystery to me how id coudeve made theres so well.

So far I have been trying Melody and 3DS Max 8 and I have realized from that of my experience that it is best to seperate objects that are on your character becuase if you dont it will interfear with the cage. For example, the side packs of my character's belt was in the way of the belt area so I would get bad results. Even though with that method in mind I still get bad edging and some undisirable resaults as you can see with a piece of the character included in the picture (Please See Picture--This map was generated in max).
Image

The bad edging is common throughout my normal map and some resualts are not what I am looking for, I beleive it has to do with the cage.

Please Please Please help, Im getting desperate! :cry:



rich_is_bored@Posted: Mon Jun 26, 2006 4:43 am :
It's really hard to tell what your problem is because all we have to look at are the resulting normal maps.

But it's impossible to gauge how your normal maps should have turned out because we've never seen the models you're using to generate them.

The only thing I can comment on is the "bad edges". If you look closely at that area you'll see that the circle in fact is well defined. It's just the surrounding border of pixels which is stretched out a bit.

Without seeing your UV map I can't say for certain but this may not even be an issue. Most programs that render out a normal map draw outside the bounds of each UV group a set number of pixels.

The idea is much the same as traditional texturing in that you want to paint around the bounds of the UV map. For instance, if you painted a diffuse map on a white image and stayed within the bounds, you'd have white areas around all the UV seams.



MichaelZee@Posted: Tue Jun 27, 2006 1:49 am :
Thank you for the information. To make the situation more clear I took some screenshots

Heres the UV map for the character

Image

Here is the best normal map I have generated with melody so far. I took off some pieces of the character because of projection problems so I'd would do them individually but here is the body and head of the chracters normal map. The shoe part is on the right middle.

Image

With this current normal map I am having problems with various parts like the bottom bevel of the shoe. Here is a picture of the shoe of my highpoly character model.

Image

Yet in the low poly character I get problems like this when I apply the normal map and I dont know how to prevent them.

Image

I hope I made this more clear, I just get random problems like were seeing in the boot bevel. I did noticed however the color coordination in that area is kind of messy but I dont know how to fix it. Any idea on what I may be doing wrong? If you need more pictures I can send them over via email. The help so far is really apprecatied :D



rich_is_bored@Posted: Tue Jun 27, 2006 5:00 am :
Is this character for a Doom 3 engine game? If so, your normal map should be rendered in tangent space. The normal map you've posted appears to be rendered in object space.

And yes, it's pretty common to have to break the model into pieces, render them all individually, and composite the resulting normal maps in post.

Also, if the screenshot of that boot is any indication as to how dense a mesh your using for your high poly character, I'd say you could up the polycount there considerably.

I realize that you're trying to preserve hard edges but I'd turn that high poly model into a subdivision surface and use edge loops to preserve the hard edges. You can always apply the subdivision to the mesh at a later state to end up with polygons which you can then render a normal map with.

I wonder, have you tried rendering normal maps for simple primatives yet? You know, just to get a feel for the workflow you'll need to follow given the applications you are using. Things like what file formats you'll need to utilize, ect...

I suggest you put your character on the back burner for a bit and try rendering a normal map using a high and low poly sphere. Just start with something simple. No hard edges. Just a low and high poly sphere.



parsonsbear@Posted: Wed Jun 28, 2006 12:54 am :
Like I said before, you should follow the instructions at idDevnet. They really did an underappreciated job with that site, it's very good- much better than most tutorials for any system in fact.

http://www.iddevnet.com/quake4/ArtRefer ... tingModels

Also, the introductory text on normalmaps by JCarmack is a good read too:
http://www.iddevnet.com/doom3/bumpmaps.php

I've used melody before, and I ran into the same problem- I'm much happier now that I follow the id system.



der_ton@Posted: Wed Jun 28, 2006 10:42 pm :
On a side-note, your uv-mapping is not very suitable for normalmapping. Here is a quote from the iddevnet-article on bumpmapping, linked above by parsonsbear:

Quote:
The lowPolyModel must have texture coordinates on it, and care should be taken to make sure the mapping is as good as possible. Before doing a RenderBump, test the model in the game with "r_showTexturePolarity 1" and "r_showEdges 1". Make sure that there aren’t any texture seams that aren’t absolutely necessary, and that there are no overlapped texture projections.


The texture seams look bad ingame, and they even affect rendering performance negatively, because a vertex on a seam has to be duplicated into two vertices for the rendering.



MichaelZee@Posted: Thu Jun 29, 2006 11:23 pm :
thanks for the information and help guys.

rich_is_bored: Thanks for the help, I changed my other normal maps to now be tangent space and I practiced on some more simplier objects; helped me out well to get more of the feel like you said.

Parsonsbear: Thank you for the links. With what you provided I am learning how to do it id's way (currently with the quake 4 link). Everything is going pretty well so far but I ran into one problem. On step 4 they use lightwave which makes it hard for me to understand becuase I use 3dsmax8. I am not sure if you use lightwave yourself but if you know how to do this part with 3dsmax 8 that would be a gigantic help.

der_ton: Thanks for the side note but I am going to take my chances with this Uv set up for now. If it doesent look good or performance is hoged then I'll just have to re-Uv map it. But how should this Uv map look to be more suitable?



parsonsbear@Posted: Fri Jun 30, 2006 6:48 am :
well, it's hard to say because it's directly related to the file format that you load into quake4. Basically, they look at the shader name that's assigned to the poly's of the low poly model to find the doom3 material that's going to be used in-game (and also can contain your renderbump options)

If you export as 3dsmax .ase files, you're in for a world of hurt, but feel free to search around here and modwiki.net for info on the process. (AFAIK) it involves opening the .ase files in a text editor and manually changing the material names to the d3 shader name.



MichaelZee@Posted: Fri Jun 30, 2006 8:06 pm :
parsonsbear wrote:
well, it's hard to say because it's directly related to the file format that you load into quake4. Basically, they look at the shader name that's assigned to the poly's of the low poly model to find the doom3 material that's going to be used in-game (and also can contain your renderbump options)

If you export as 3dsmax .ase files, you're in for a world of hurt, but feel free to search around here and modwiki.net for info on the process. (AFAIK) it involves opening the .ase files in a text editor and manually changing the material names to the d3 shader name.


Ok, on a video tutorial by Brain Trepaning on developing your own static meshes for doom3, I remember him going inside the .ase file using the text editor and changing the shader name. Perhaps he would know how this is done but another thing is that I plan on making an animation model. If I recall, .ase are good for static models but I would want to do an md5mesh, or does it not matter since after all I am going to just be redering a bumpmap with the two models for now?

So would the shader on the low poly character model be the _d map of your character and is the shader put on to your character as if your assigning the low poly model a texture or just naming the mesh the path name of the shader? I'm sorry I don't quite get the process yet, I have made characters for unreal but this is diffenant.



rich_is_bored@Posted: Sat Jul 01, 2006 5:29 am :
As long as the UV maps are the same for both the ASE and MD5mesh, it won't matter which model you use for rendering a normal map.



MichaelZee@Posted: Sat Jul 01, 2006 8:43 pm :
Ok.

I am attempting to just render the normal map out to at least get the feel how this way works. I am on part 5 where you render out the normal map. Here is my mtr file for what i am going to render.

Code:
//----------------------------Faction_Grunt---MatierialCode-----------------------------------------------

models/faction_enemies/Faction_Grunt_Body_Low

{
        noselfShadow
        unsmoothedtangents

renderbump
-size 1024 1024
-trace .05
-aa 2
-mergehigh

textures/faction_enemies/Faction_Grunt_local.tga

models/faction_enemies/Faction_Grunt_Body_High.ASE


diffusemap              textures/faction_enemies/Faction_Grunt_d.tga
bumpmap addnormals ( textures/faction_enemies/Faction_Grunt_local.tga, heightmap ( textures/faction_enemies/Faction_Grunt_h.tga, 1 ) )

}


On command prompt I can get it to work. I dont think I am intreprating iddevnet's directions correctly.

Image

Whenever I compile this I get dialog saying ....
Code:
< was unexpected at this time


What am I doing wrong here?

UPDATE: I just delleted all the < simbles and it launched me up into the quake4 menu in window mode. I also got rid of the ] [ simbols and it is still taking me to the main menu. I am not sure what is suppose to happen next but how come rendering of the normal map isent happening?



rich_is_bored@Posted: Sun Jul 02, 2006 4:13 am :
This portion...

Code:
renderbump
-size 1024 1024
-trace .05
-aa 2
-mergehigh

textures/faction_enemies/Faction_Grunt_local.tga

models/faction_enemies/Faction_Grunt_Body_High.ASE


...should be a single line.



MichaelZee@Posted: Fri Jun 23, 2006 8:17 am :
Hello :)

With the character models such as the Doom Marines in green, how did id go about making there entire normal map? Did they import their whole low poly models into zbrush and skulped them there? I am having a hard time trying to preserve hard edges for my models in Zbrush that I designated in max :( . In resault, it seems almost impossible to create various armor types yet I see id's armored characters such as the doom marines and I really wonder how did id make there normal maps for them with zbrush(especially there armor). Does anyone know how they went about doing it? The information would really help me out big time

Thanks :)



Rayne@Posted: Fri Jun 23, 2006 10:54 am :
Id made only few characters out of Zbrush for vanilla DooM3. As Kenneth Scott said they used Zbrush for sculpting new monsters for the expantion pack RoE... Techy parts such weapons, armors etc are modelled in maya/lightwave



MichaelZee@Posted: Fri Jun 23, 2006 8:26 pm :
hmm, so more than likely with the doom marines they just made a high poly model in their 3d package. Did they use a third party program to generate the normal map? I'm trying to use max's but its proving to be pretty challanging in attempt to get the cage working and then getting the normal map; so far I havent been able to get desirable reaults.

EDIT:

I currently found a nvidia software called melody that does the job. I am having a problem with it though, when ever I generate a normal map it doesnt respect the uvw map I made and comes out all in peices. Any ideas or suggestions to another software for that matter? Help is really appreacited :)



parsonsbear@Posted: Sat Jun 24, 2006 2:19 am :
Doom3 actually has one of the best highpoly-lowpoly normalmap transfers available. Do some searches for renderbump, or look in the art reference at quake4/iddevnet.



MichaelZee@Posted: Sat Jun 24, 2006 4:42 am :
Ok, by reading through several differant sources I have found out like parsonbear had mentioned, a built in renderbump system in doom3. This is my siutation:

I have a low polygon character and a high polygon version of that character. I would like to use the high polygon version to generate a normal map for my low polygon character. To do that with the Doom Engine's renderbump, how should I go about it? What should the code look like?

I am really thankful for any help.



MichaelZee@Posted: Mon Jun 26, 2006 3:23 am :
Alright I need help big time!!!

I'm trying all I can to generate a normal map but it just never comes out how I want it to. I was able to get melody (a normal map generater problem by nvidia) to respect my uvw map coordinets but no mather what I cant get it to where my nromal map sits in well with my character. It just seems absolutly impossble to make a high polygon generated normal map for a character, its an complete mystery to me how id coudeve made theres so well.

So far I have been trying Melody and 3DS Max 8 and I have realized from that of my experience that it is best to seperate objects that are on your character becuase if you dont it will interfear with the cage. For example, the side packs of my character's belt was in the way of the belt area so I would get bad results. Even though with that method in mind I still get bad edging and some undisirable resaults as you can see with a piece of the character included in the picture (Please See Picture--This map was generated in max).
Image

The bad edging is common throughout my normal map and some resualts are not what I am looking for, I beleive it has to do with the cage.

Please Please Please help, Im getting desperate! :cry:



rich_is_bored@Posted: Mon Jun 26, 2006 4:43 am :
It's really hard to tell what your problem is because all we have to look at are the resulting normal maps.

But it's impossible to gauge how your normal maps should have turned out because we've never seen the models you're using to generate them.

The only thing I can comment on is the "bad edges". If you look closely at that area you'll see that the circle in fact is well defined. It's just the surrounding border of pixels which is stretched out a bit.

Without seeing your UV map I can't say for certain but this may not even be an issue. Most programs that render out a normal map draw outside the bounds of each UV group a set number of pixels.

The idea is much the same as traditional texturing in that you want to paint around the bounds of the UV map. For instance, if you painted a diffuse map on a white image and stayed within the bounds, you'd have white areas around all the UV seams.



MichaelZee@Posted: Tue Jun 27, 2006 1:49 am :
Thank you for the information. To make the situation more clear I took some screenshots

Heres the UV map for the character

Image

Here is the best normal map I have generated with melody so far. I took off some pieces of the character because of projection problems so I'd would do them individually but here is the body and head of the chracters normal map. The shoe part is on the right middle.

Image

With this current normal map I am having problems with various parts like the bottom bevel of the shoe. Here is a picture of the shoe of my highpoly character model.

Image

Yet in the low poly character I get problems like this when I apply the normal map and I dont know how to prevent them.

Image

I hope I made this more clear, I just get random problems like were seeing in the boot bevel. I did noticed however the color coordination in that area is kind of messy but I dont know how to fix it. Any idea on what I may be doing wrong? If you need more pictures I can send them over via email. The help so far is really apprecatied :D



rich_is_bored@Posted: Tue Jun 27, 2006 5:00 am :
Is this character for a Doom 3 engine game? If so, your normal map should be rendered in tangent space. The normal map you've posted appears to be rendered in object space.

And yes, it's pretty common to have to break the model into pieces, render them all individually, and composite the resulting normal maps in post.

Also, if the screenshot of that boot is any indication as to how dense a mesh your using for your high poly character, I'd say you could up the polycount there considerably.

I realize that you're trying to preserve hard edges but I'd turn that high poly model into a subdivision surface and use edge loops to preserve the hard edges. You can always apply the subdivision to the mesh at a later state to end up with polygons which you can then render a normal map with.

I wonder, have you tried rendering normal maps for simple primatives yet? You know, just to get a feel for the workflow you'll need to follow given the applications you are using. Things like what file formats you'll need to utilize, ect...

I suggest you put your character on the back burner for a bit and try rendering a normal map using a high and low poly sphere. Just start with something simple. No hard edges. Just a low and high poly sphere.



parsonsbear@Posted: Wed Jun 28, 2006 12:54 am :
Like I said before, you should follow the instructions at idDevnet. They really did an underappreciated job with that site, it's very good- much better than most tutorials for any system in fact.

http://www.iddevnet.com/quake4/ArtRefer ... tingModels

Also, the introductory text on normalmaps by JCarmack is a good read too:
http://www.iddevnet.com/doom3/bumpmaps.php

I've used melody before, and I ran into the same problem- I'm much happier now that I follow the id system.



der_ton@Posted: Wed Jun 28, 2006 10:42 pm :
On a side-note, your uv-mapping is not very suitable for normalmapping. Here is a quote from the iddevnet-article on bumpmapping, linked above by parsonsbear:

Quote:
The lowPolyModel must have texture coordinates on it, and care should be taken to make sure the mapping is as good as possible. Before doing a RenderBump, test the model in the game with "r_showTexturePolarity 1" and "r_showEdges 1". Make sure that there aren’t any texture seams that aren’t absolutely necessary, and that there are no overlapped texture projections.


The texture seams look bad ingame, and they even affect rendering performance negatively, because a vertex on a seam has to be duplicated into two vertices for the rendering.



MichaelZee@Posted: Thu Jun 29, 2006 11:23 pm :
thanks for the information and help guys.

rich_is_bored: Thanks for the help, I changed my other normal maps to now be tangent space and I practiced on some more simplier objects; helped me out well to get more of the feel like you said.

Parsonsbear: Thank you for the links. With what you provided I am learning how to do it id's way (currently with the quake 4 link). Everything is going pretty well so far but I ran into one problem. On step 4 they use lightwave which makes it hard for me to understand becuase I use 3dsmax8. I am not sure if you use lightwave yourself but if you know how to do this part with 3dsmax 8 that would be a gigantic help.

der_ton: Thanks for the side note but I am going to take my chances with this Uv set up for now. If it doesent look good or performance is hoged then I'll just have to re-Uv map it. But how should this Uv map look to be more suitable?



parsonsbear@Posted: Fri Jun 30, 2006 6:48 am :
well, it's hard to say because it's directly related to the file format that you load into quake4. Basically, they look at the shader name that's assigned to the poly's of the low poly model to find the doom3 material that's going to be used in-game (and also can contain your renderbump options)

If you export as 3dsmax .ase files, you're in for a world of hurt, but feel free to search around here and modwiki.net for info on the process. (AFAIK) it involves opening the .ase files in a text editor and manually changing the material names to the d3 shader name.



MichaelZee@Posted: Fri Jun 30, 2006 8:06 pm :
parsonsbear wrote:
well, it's hard to say because it's directly related to the file format that you load into quake4. Basically, they look at the shader name that's assigned to the poly's of the low poly model to find the doom3 material that's going to be used in-game (and also can contain your renderbump options)

If you export as 3dsmax .ase files, you're in for a world of hurt, but feel free to search around here and modwiki.net for info on the process. (AFAIK) it involves opening the .ase files in a text editor and manually changing the material names to the d3 shader name.


Ok, on a video tutorial by Brain Trepaning on developing your own static meshes for doom3, I remember him going inside the .ase file using the text editor and changing the shader name. Perhaps he would know how this is done but another thing is that I plan on making an animation model. If I recall, .ase are good for static models but I would want to do an md5mesh, or does it not matter since after all I am going to just be redering a bumpmap with the two models for now?

So would the shader on the low poly character model be the _d map of your character and is the shader put on to your character as if your assigning the low poly model a texture or just naming the mesh the path name of the shader? I'm sorry I don't quite get the process yet, I have made characters for unreal but this is diffenant.



rich_is_bored@Posted: Sat Jul 01, 2006 5:29 am :
As long as the UV maps are the same for both the ASE and MD5mesh, it won't matter which model you use for rendering a normal map.



MichaelZee@Posted: Sat Jul 01, 2006 8:43 pm :
Ok.

I am attempting to just render the normal map out to at least get the feel how this way works. I am on part 5 where you render out the normal map. Here is my mtr file for what i am going to render.

Code:
//----------------------------Faction_Grunt---MatierialCode-----------------------------------------------

models/faction_enemies/Faction_Grunt_Body_Low

{
        noselfShadow
        unsmoothedtangents

renderbump
-size 1024 1024
-trace .05
-aa 2
-mergehigh

textures/faction_enemies/Faction_Grunt_local.tga

models/faction_enemies/Faction_Grunt_Body_High.ASE


diffusemap              textures/faction_enemies/Faction_Grunt_d.tga
bumpmap addnormals ( textures/faction_enemies/Faction_Grunt_local.tga, heightmap ( textures/faction_enemies/Faction_Grunt_h.tga, 1 ) )

}


On command prompt I can get it to work. I dont think I am intreprating iddevnet's directions correctly.

Image

Whenever I compile this I get dialog saying ....
Code:
< was unexpected at this time


What am I doing wrong here?

UPDATE: I just delleted all the < simbles and it launched me up into the quake4 menu in window mode. I also got rid of the ] [ simbols and it is still taking me to the main menu. I am not sure what is suppose to happen next but how come rendering of the normal map isent happening?



rich_is_bored@Posted: Sun Jul 02, 2006 4:13 am :
This portion...

Code:
renderbump
-size 1024 1024
-trace .05
-aa 2
-mergehigh

textures/faction_enemies/Faction_Grunt_local.tga

models/faction_enemies/Faction_Grunt_Body_High.ASE


...should be a single line.



MichaelZee@Posted: Fri Jun 23, 2006 8:17 am :
Hello :)

With the character models such as the Doom Marines in green, how did id go about making there entire normal map? Did they import their whole low poly models into zbrush and skulped them there? I am having a hard time trying to preserve hard edges for my models in Zbrush that I designated in max :( . In resault, it seems almost impossible to create various armor types yet I see id's armored characters such as the doom marines and I really wonder how did id make there normal maps for them with zbrush(especially there armor). Does anyone know how they went about doing it? The information would really help me out big time

Thanks :)



Rayne@Posted: Fri Jun 23, 2006 10:54 am :
Id made only few characters out of Zbrush for vanilla DooM3. As Kenneth Scott said they used Zbrush for sculpting new monsters for the expantion pack RoE... Techy parts such weapons, armors etc are modelled in maya/lightwave



MichaelZee@Posted: Fri Jun 23, 2006 8:26 pm :
hmm, so more than likely with the doom marines they just made a high poly model in their 3d package. Did they use a third party program to generate the normal map? I'm trying to use max's but its proving to be pretty challanging in attempt to get the cage working and then getting the normal map; so far I havent been able to get desirable reaults.

EDIT:

I currently found a nvidia software called melody that does the job. I am having a problem with it though, when ever I generate a normal map it doesnt respect the uvw map I made and comes out all in peices. Any ideas or suggestions to another software for that matter? Help is really appreacited :)



parsonsbear@Posted: Sat Jun 24, 2006 2:19 am :
Doom3 actually has one of the best highpoly-lowpoly normalmap transfers available. Do some searches for renderbump, or look in the art reference at quake4/iddevnet.



MichaelZee@Posted: Sat Jun 24, 2006 4:42 am :
Ok, by reading through several differant sources I have found out like parsonbear had mentioned, a built in renderbump system in doom3. This is my siutation:

I have a low polygon character and a high polygon version of that character. I would like to use the high polygon version to generate a normal map for my low polygon character. To do that with the Doom Engine's renderbump, how should I go about it? What should the code look like?

I am really thankful for any help.



MichaelZee@Posted: Mon Jun 26, 2006 3:23 am :
Alright I need help big time!!!

I'm trying all I can to generate a normal map but it just never comes out how I want it to. I was able to get melody (a normal map generater problem by nvidia) to respect my uvw map coordinets but no mather what I cant get it to where my nromal map sits in well with my character. It just seems absolutly impossble to make a high polygon generated normal map for a character, its an complete mystery to me how id coudeve made theres so well.

So far I have been trying Melody and 3DS Max 8 and I have realized from that of my experience that it is best to seperate objects that are on your character becuase if you dont it will interfear with the cage. For example, the side packs of my character's belt was in the way of the belt area so I would get bad results. Even though with that method in mind I still get bad edging and some undisirable resaults as you can see with a piece of the character included in the picture (Please See Picture--This map was generated in max).
Image

The bad edging is common throughout my normal map and some resualts are not what I am looking for, I beleive it has to do with the cage.

Please Please Please help, Im getting desperate! :cry:



rich_is_bored@Posted: Mon Jun 26, 2006 4:43 am :
It's really hard to tell what your problem is because all we have to look at are the resulting normal maps.

But it's impossible to gauge how your normal maps should have turned out because we've never seen the models you're using to generate them.

The only thing I can comment on is the "bad edges". If you look closely at that area you'll see that the circle in fact is well defined. It's just the surrounding border of pixels which is stretched out a bit.

Without seeing your UV map I can't say for certain but this may not even be an issue. Most programs that render out a normal map draw outside the bounds of each UV group a set number of pixels.

The idea is much the same as traditional texturing in that you want to paint around the bounds of the UV map. For instance, if you painted a diffuse map on a white image and stayed within the bounds, you'd have white areas around all the UV seams.



MichaelZee@Posted: Tue Jun 27, 2006 1:49 am :
Thank you for the information. To make the situation more clear I took some screenshots

Heres the UV map for the character

Image

Here is the best normal map I have generated with melody so far. I took off some pieces of the character because of projection problems so I'd would do them individually but here is the body and head of the chracters normal map. The shoe part is on the right middle.

Image

With this current normal map I am having problems with various parts like the bottom bevel of the shoe. Here is a picture of the shoe of my highpoly character model.

Image

Yet in the low poly character I get problems like this when I apply the normal map and I dont know how to prevent them.

Image

I hope I made this more clear, I just get random problems like were seeing in the boot bevel. I did noticed however the color coordination in that area is kind of messy but I dont know how to fix it. Any idea on what I may be doing wrong? If you need more pictures I can send them over via email. The help so far is really apprecatied :D



rich_is_bored@Posted: Tue Jun 27, 2006 5:00 am :
Is this character for a Doom 3 engine game? If so, your normal map should be rendered in tangent space. The normal map you've posted appears to be rendered in object space.

And yes, it's pretty common to have to break the model into pieces, render them all individually, and composite the resulting normal maps in post.

Also, if the screenshot of that boot is any indication as to how dense a mesh your using for your high poly character, I'd say you could up the polycount there considerably.

I realize that you're trying to preserve hard edges but I'd turn that high poly model into a subdivision surface and use edge loops to preserve the hard edges. You can always apply the subdivision to the mesh at a later state to end up with polygons which you can then render a normal map with.

I wonder, have you tried rendering normal maps for simple primatives yet? You know, just to get a feel for the workflow you'll need to follow given the applications you are using. Things like what file formats you'll need to utilize, ect...

I suggest you put your character on the back burner for a bit and try rendering a normal map using a high and low poly sphere. Just start with something simple. No hard edges. Just a low and high poly sphere.



parsonsbear@Posted: Wed Jun 28, 2006 12:54 am :
Like I said before, you should follow the instructions at idDevnet. They really did an underappreciated job with that site, it's very good- much better than most tutorials for any system in fact.

http://www.iddevnet.com/quake4/ArtRefer ... tingModels

Also, the introductory text on normalmaps by JCarmack is a good read too:
http://www.iddevnet.com/doom3/bumpmaps.php

I've used melody before, and I ran into the same problem- I'm much happier now that I follow the id system.



der_ton@Posted: Wed Jun 28, 2006 10:42 pm :
On a side-note, your uv-mapping is not very suitable for normalmapping. Here is a quote from the iddevnet-article on bumpmapping, linked above by parsonsbear:

Quote:
The lowPolyModel must have texture coordinates on it, and care should be taken to make sure the mapping is as good as possible. Before doing a RenderBump, test the model in the game with "r_showTexturePolarity 1" and "r_showEdges 1". Make sure that there aren’t any texture seams that aren’t absolutely necessary, and that there are no overlapped texture projections.


The texture seams look bad ingame, and they even affect rendering performance negatively, because a vertex on a seam has to be duplicated into two vertices for the rendering.



MichaelZee@Posted: Thu Jun 29, 2006 11:23 pm :
thanks for the information and help guys.

rich_is_bored: Thanks for the help, I changed my other normal maps to now be tangent space and I practiced on some more simplier objects; helped me out well to get more of the feel like you said.

Parsonsbear: Thank you for the links. With what you provided I am learning how to do it id's way (currently with the quake 4 link). Everything is going pretty well so far but I ran into one problem. On step 4 they use lightwave which makes it hard for me to understand becuase I use 3dsmax8. I am not sure if you use lightwave yourself but if you know how to do this part with 3dsmax 8 that would be a gigantic help.

der_ton: Thanks for the side note but I am going to take my chances with this Uv set up for now. If it doesent look good or performance is hoged then I'll just have to re-Uv map it. But how should this Uv map look to be more suitable?



parsonsbear@Posted: Fri Jun 30, 2006 6:48 am :
well, it's hard to say because it's directly related to the file format that you load into quake4. Basically, they look at the shader name that's assigned to the poly's of the low poly model to find the doom3 material that's going to be used in-game (and also can contain your renderbump options)

If you export as 3dsmax .ase files, you're in for a world of hurt, but feel free to search around here and modwiki.net for info on the process. (AFAIK) it involves opening the .ase files in a text editor and manually changing the material names to the d3 shader name.



MichaelZee@Posted: Fri Jun 30, 2006 8:06 pm :
parsonsbear wrote:
well, it's hard to say because it's directly related to the file format that you load into quake4. Basically, they look at the shader name that's assigned to the poly's of the low poly model to find the doom3 material that's going to be used in-game (and also can contain your renderbump options)

If you export as 3dsmax .ase files, you're in for a world of hurt, but feel free to search around here and modwiki.net for info on the process. (AFAIK) it involves opening the .ase files in a text editor and manually changing the material names to the d3 shader name.


Ok, on a video tutorial by Brain Trepaning on developing your own static meshes for doom3, I remember him going inside the .ase file using the text editor and changing the shader name. Perhaps he would know how this is done but another thing is that I plan on making an animation model. If I recall, .ase are good for static models but I would want to do an md5mesh, or does it not matter since after all I am going to just be redering a bumpmap with the two models for now?

So would the shader on the low poly character model be the _d map of your character and is the shader put on to your character as if your assigning the low poly model a texture or just naming the mesh the path name of the shader? I'm sorry I don't quite get the process yet, I have made characters for unreal but this is diffenant.



rich_is_bored@Posted: Sat Jul 01, 2006 5:29 am :
As long as the UV maps are the same for both the ASE and MD5mesh, it won't matter which model you use for rendering a normal map.



MichaelZee@Posted: Sat Jul 01, 2006 8:43 pm :
Ok.

I am attempting to just render the normal map out to at least get the feel how this way works. I am on part 5 where you render out the normal map. Here is my mtr file for what i am going to render.

Code:
//----------------------------Faction_Grunt---MatierialCode-----------------------------------------------

models/faction_enemies/Faction_Grunt_Body_Low

{
        noselfShadow
        unsmoothedtangents

renderbump
-size 1024 1024
-trace .05
-aa 2
-mergehigh

textures/faction_enemies/Faction_Grunt_local.tga

models/faction_enemies/Faction_Grunt_Body_High.ASE


diffusemap              textures/faction_enemies/Faction_Grunt_d.tga
bumpmap addnormals ( textures/faction_enemies/Faction_Grunt_local.tga, heightmap ( textures/faction_enemies/Faction_Grunt_h.tga, 1 ) )

}


On command prompt I can get it to work. I dont think I am intreprating iddevnet's directions correctly.

Image

Whenever I compile this I get dialog saying ....
Code:
< was unexpected at this time


What am I doing wrong here?

UPDATE: I just delleted all the < simbles and it launched me up into the quake4 menu in window mode. I also got rid of the ] [ simbols and it is still taking me to the main menu. I am not sure what is suppose to happen next but how come rendering of the normal map isent happening?



MichaelZee@Posted: Fri Jun 23, 2006 8:17 am :
Hello :)

With the character models such as the Doom Marines in green, how did id go about making there entire normal map? Did they import their whole low poly models into zbrush and skulped them there? I am having a hard time trying to preserve hard edges for my models in Zbrush that I designated in max :( . In resault, it seems almost impossible to create various armor types yet I see id's armored characters such as the doom marines and I really wonder how did id make there normal maps for them with zbrush(especially there armor). Does anyone know how they went about doing it? The information would really help me out big time

Thanks :)



Rayne@Posted: Fri Jun 23, 2006 10:54 am :
Id made only few characters out of Zbrush for vanilla DooM3. As Kenneth Scott said they used Zbrush for sculpting new monsters for the expantion pack RoE... Techy parts such weapons, armors etc are modelled in maya/lightwave



MichaelZee@Posted: Fri Jun 23, 2006 8:26 pm :
hmm, so more than likely with the doom marines they just made a high poly model in their 3d package. Did they use a third party program to generate the normal map? I'm trying to use max's but its proving to be pretty challanging in attempt to get the cage working and then getting the normal map; so far I havent been able to get desirable reaults.

EDIT:

I currently found a nvidia software called melody that does the job. I am having a problem with it though, when ever I generate a normal map it doesnt respect the uvw map I made and comes out all in peices. Any ideas or suggestions to another software for that matter? Help is really appreacited :)



parsonsbear@Posted: Sat Jun 24, 2006 2:19 am :
Doom3 actually has one of the best highpoly-lowpoly normalmap transfers available. Do some searches for renderbump, or look in the art reference at quake4/iddevnet.



MichaelZee@Posted: Sat Jun 24, 2006 4:42 am :
Ok, by reading through several differant sources I have found out like parsonbear had mentioned, a built in renderbump system in doom3. This is my siutation:

I have a low polygon character and a high polygon version of that character. I would like to use the high polygon version to generate a normal map for my low polygon character. To do that with the Doom Engine's renderbump, how should I go about it? What should the code look like?

I am really thankful for any help.



MichaelZee@Posted: Mon Jun 26, 2006 3:23 am :
Alright I need help big time!!!

I'm trying all I can to generate a normal map but it just never comes out how I want it to. I was able to get melody (a normal map generater problem by nvidia) to respect my uvw map coordinets but no mather what I cant get it to where my nromal map sits in well with my character. It just seems absolutly impossble to make a high polygon generated normal map for a character, its an complete mystery to me how id coudeve made theres so well.

So far I have been trying Melody and 3DS Max 8 and I have realized from that of my experience that it is best to seperate objects that are on your character becuase if you dont it will interfear with the cage. For example, the side packs of my character's belt was in the way of the belt area so I would get bad results. Even though with that method in mind I still get bad edging and some undisirable resaults as you can see with a piece of the character included in the picture (Please See Picture--This map was generated in max).
Image

The bad edging is common throughout my normal map and some resualts are not what I am looking for, I beleive it has to do with the cage.

Please Please Please help, Im getting desperate! :cry:



rich_is_bored@Posted: Mon Jun 26, 2006 4:43 am :
It's really hard to tell what your problem is because all we have to look at are the resulting normal maps.

But it's impossible to gauge how your normal maps should have turned out because we've never seen the models you're using to generate them.

The only thing I can comment on is the "bad edges". If you look closely at that area you'll see that the circle in fact is well defined. It's just the surrounding border of pixels which is stretched out a bit.

Without seeing your UV map I can't say for certain but this may not even be an issue. Most programs that render out a normal map draw outside the bounds of each UV group a set number of pixels.

The idea is much the same as traditional texturing in that you want to paint around the bounds of the UV map. For instance, if you painted a diffuse map on a white image and stayed within the bounds, you'd have white areas around all the UV seams.



MichaelZee@Posted: Tue Jun 27, 2006 1:49 am :
Thank you for the information. To make the situation more clear I took some screenshots

Heres the UV map for the character

Image

Here is the best normal map I have generated with melody so far. I took off some pieces of the character because of projection problems so I'd would do them individually but here is the body and head of the chracters normal map. The shoe part is on the right middle.

Image

With this current normal map I am having problems with various parts like the bottom bevel of the shoe. Here is a picture of the shoe of my highpoly character model.

Image

Yet in the low poly character I get problems like this when I apply the normal map and I dont know how to prevent them.

Image

I hope I made this more clear, I just get random problems like were seeing in the boot bevel. I did noticed however the color coordination in that area is kind of messy but I dont know how to fix it. Any idea on what I may be doing wrong? If you need more pictures I can send them over via email. The help so far is really apprecatied :D



rich_is_bored@Posted: Tue Jun 27, 2006 5:00 am :
Is this character for a Doom 3 engine game? If so, your normal map should be rendered in tangent space. The normal map you've posted appears to be rendered in object space.

And yes, it's pretty common to have to break the model into pieces, render them all individually, and composite the resulting normal maps in post.

Also, if the screenshot of that boot is any indication as to how dense a mesh your using for your high poly character, I'd say you could up the polycount there considerably.

I realize that you're trying to preserve hard edges but I'd turn that high poly model into a subdivision surface and use edge loops to preserve the hard edges. You can always apply the subdivision to the mesh at a later state to end up with polygons which you can then render a normal map with.

I wonder, have you tried rendering normal maps for simple primatives yet? You know, just to get a feel for the workflow you'll need to follow given the applications you are using. Things like what file formats you'll need to utilize, ect...

I suggest you put your character on the back burner for a bit and try rendering a normal map using a high and low poly sphere. Just start with something simple. No hard edges. Just a low and high poly sphere.



parsonsbear@Posted: Wed Jun 28, 2006 12:54 am :
Like I said before, you should follow the instructions at idDevnet. They really did an underappreciated job with that site, it's very good- much better than most tutorials for any system in fact.

http://www.iddevnet.com/quake4/ArtRefer ... tingModels

Also, the introductory text on normalmaps by JCarmack is a good read too:
http://www.iddevnet.com/doom3/bumpmaps.php

I've used melody before, and I ran into the same problem- I'm much happier now that I follow the id system.



der_ton@Posted: Wed Jun 28, 2006 10:42 pm :
On a side-note, your uv-mapping is not very suitable for normalmapping. Here is a quote from the iddevnet-article on bumpmapping, linked above by parsonsbear:

Quote:
The lowPolyModel must have texture coordinates on it, and care should be taken to make sure the mapping is as good as possible. Before doing a RenderBump, test the model in the game with "r_showTexturePolarity 1" and "r_showEdges 1". Make sure that there aren’t any texture seams that aren’t absolutely necessary, and that there are no overlapped texture projections.


The texture seams look bad ingame, and they even affect rendering performance negatively, because a vertex on a seam has to be duplicated into two vertices for the rendering.



MichaelZee@Posted: Thu Jun 29, 2006 11:23 pm :
thanks for the information and help guys.

rich_is_bored: Thanks for the help, I changed my other normal maps to now be tangent space and I practiced on some more simplier objects; helped me out well to get more of the feel like you said.

Parsonsbear: Thank you for the links. With what you provided I am learning how to do it id's way (currently with the quake 4 link). Everything is going pretty well so far but I ran into one problem. On step 4 they use lightwave which makes it hard for me to understand becuase I use 3dsmax8. I am not sure if you use lightwave yourself but if you know how to do this part with 3dsmax 8 that would be a gigantic help.

der_ton: Thanks for the side note but I am going to take my chances with this Uv set up for now. If it doesent look good or performance is hoged then I'll just have to re-Uv map it. But how should this Uv map look to be more suitable?



parsonsbear@Posted: Fri Jun 30, 2006 6:48 am :
well, it's hard to say because it's directly related to the file format that you load into quake4. Basically, they look at the shader name that's assigned to the poly's of the low poly model to find the doom3 material that's going to be used in-game (and also can contain your renderbump options)

If you export as 3dsmax .ase files, you're in for a world of hurt, but feel free to search around here and modwiki.net for info on the process. (AFAIK) it involves opening the .ase files in a text editor and manually changing the material names to the d3 shader name.



MichaelZee@Posted: Fri Jun 30, 2006 8:06 pm :
parsonsbear wrote:
well, it's hard to say because it's directly related to the file format that you load into quake4. Basically, they look at the shader name that's assigned to the poly's of the low poly model to find the doom3 material that's going to be used in-game (and also can contain your renderbump options)

If you export as 3dsmax .ase files, you're in for a world of hurt, but feel free to search around here and modwiki.net for info on the process. (AFAIK) it involves opening the .ase files in a text editor and manually changing the material names to the d3 shader name.


Ok, on a video tutorial by Brain Trepaning on developing your own static meshes for doom3, I remember him going inside the .ase file using the text editor and changing the shader name. Perhaps he would know how this is done but another thing is that I plan on making an animation model. If I recall, .ase are good for static models but I would want to do an md5mesh, or does it not matter since after all I am going to just be redering a bumpmap with the two models for now?

So would the shader on the low poly character model be the _d map of your character and is the shader put on to your character as if your assigning the low poly model a texture or just naming the mesh the path name of the shader? I'm sorry I don't quite get the process yet, I have made characters for unreal but this is diffenant.



rich_is_bored@Posted: Sat Jul 01, 2006 5:29 am :
As long as the UV maps are the same for both the ASE and MD5mesh, it won't matter which model you use for rendering a normal map.



MichaelZee@Posted: Sat Jul 01, 2006 8:43 pm :
Ok.

I am attempting to just render the normal map out to at least get the feel how this way works. I am on part 5 where you render out the normal map. Here is my mtr file for what i am going to render.

Code:
//----------------------------Faction_Grunt---MatierialCode-----------------------------------------------

models/faction_enemies/Faction_Grunt_Body_Low

{
        noselfShadow
        unsmoothedtangents

renderbump
-size 1024 1024
-trace .05
-aa 2
-mergehigh

textures/faction_enemies/Faction_Grunt_local.tga

models/faction_enemies/Faction_Grunt_Body_High.ASE


diffusemap              textures/faction_enemies/Faction_Grunt_d.tga
bumpmap addnormals ( textures/faction_enemies/Faction_Grunt_local.tga, heightmap ( textures/faction_enemies/Faction_Grunt_h.tga, 1 ) )

}


On command prompt I can get it to work. I dont think I am intreprating iddevnet's directions correctly.

Image

Whenever I compile this I get dialog saying ....
Code:
< was unexpected at this time


What am I doing wrong here?

UPDATE: I just delleted all the < simbles and it launched me up into the quake4 menu in window mode. I also got rid of the ] [ simbols and it is still taking me to the main menu. I am not sure what is suppose to happen next but how come rendering of the normal map isent happening?



MichaelZee@Posted: Fri Jun 23, 2006 8:17 am :
Hello :)

With the character models such as the Doom Marines in green, how did id go about making there entire normal map? Did they import their whole low poly models into zbrush and skulped them there? I am having a hard time trying to preserve hard edges for my models in Zbrush that I designated in max :( . In resault, it seems almost impossible to create various armor types yet I see id's armored characters such as the doom marines and I really wonder how did id make there normal maps for them with zbrush(especially there armor). Does anyone know how they went about doing it? The information would really help me out big time

Thanks :)



Rayne@Posted: Fri Jun 23, 2006 10:54 am :
Id made only few characters out of Zbrush for vanilla DooM3. As Kenneth Scott said they used Zbrush for sculpting new monsters for the expantion pack RoE... Techy parts such weapons, armors etc are modelled in maya/lightwave



MichaelZee@Posted: Fri Jun 23, 2006 8:26 pm :
hmm, so more than likely with the doom marines they just made a high poly model in their 3d package. Did they use a third party program to generate the normal map? I'm trying to use max's but its proving to be pretty challanging in attempt to get the cage working and then getting the normal map; so far I havent been able to get desirable reaults.

EDIT:

I currently found a nvidia software called melody that does the job. I am having a problem with it though, when ever I generate a normal map it doesnt respect the uvw map I made and comes out all in peices. Any ideas or suggestions to another software for that matter? Help is really appreacited :)



parsonsbear@Posted: Sat Jun 24, 2006 2:19 am :
Doom3 actually has one of the best highpoly-lowpoly normalmap transfers available. Do some searches for renderbump, or look in the art reference at quake4/iddevnet.



MichaelZee@Posted: Sat Jun 24, 2006 4:42 am :
Ok, by reading through several differant sources I have found out like parsonbear had mentioned, a built in renderbump system in doom3. This is my siutation:

I have a low polygon character and a high polygon version of that character. I would like to use the high polygon version to generate a normal map for my low polygon character. To do that with the Doom Engine's renderbump, how should I go about it? What should the code look like?

I am really thankful for any help.



MichaelZee@Posted: Mon Jun 26, 2006 3:23 am :
Alright I need help big time!!!

I'm trying all I can to generate a normal map but it just never comes out how I want it to. I was able to get melody (a normal map generater problem by nvidia) to respect my uvw map coordinets but no mather what I cant get it to where my nromal map sits in well with my character. It just seems absolutly impossble to make a high polygon generated normal map for a character, its an complete mystery to me how id coudeve made theres so well.

So far I have been trying Melody and 3DS Max 8 and I have realized from that of my experience that it is best to seperate objects that are on your character becuase if you dont it will interfear with the cage. For example, the side packs of my character's belt was in the way of the belt area so I would get bad results. Even though with that method in mind I still get bad edging and some undisirable resaults as you can see with a piece of the character included in the picture (Please See Picture--This map was generated in max).
Image

The bad edging is common throughout my normal map and some resualts are not what I am looking for, I beleive it has to do with the cage.

Please Please Please help, Im getting desperate! :cry:



rich_is_bored@Posted: Mon Jun 26, 2006 4:43 am :
It's really hard to tell what your problem is because all we have to look at are the resulting normal maps.

But it's impossible to gauge how your normal maps should have turned out because we've never seen the models you're using to generate them.

The only thing I can comment on is the "bad edges". If you look closely at that area you'll see that the circle in fact is well defined. It's just the surrounding border of pixels which is stretched out a bit.

Without seeing your UV map I can't say for certain but this may not even be an issue. Most programs that render out a normal map draw outside the bounds of each UV group a set number of pixels.

The idea is much the same as traditional texturing in that you want to paint around the bounds of the UV map. For instance, if you painted a diffuse map on a white image and stayed within the bounds, you'd have white areas around all the UV seams.



MichaelZee@Posted: Tue Jun 27, 2006 1:49 am :
Thank you for the information. To make the situation more clear I took some screenshots

Heres the UV map for the character

Image

Here is the best normal map I have generated with melody so far. I took off some pieces of the character because of projection problems so I'd would do them individually but here is the body and head of the chracters normal map. The shoe part is on the right middle.

Image

With this current normal map I am having problems with various parts like the bottom bevel of the shoe. Here is a picture of the shoe of my highpoly character model.

Image

Yet in the low poly character I get problems like this when I apply the normal map and I dont know how to prevent them.

Image

I hope I made this more clear, I just get random problems like were seeing in the boot bevel. I did noticed however the color coordination in that area is kind of messy but I dont know how to fix it. Any idea on what I may be doing wrong? If you need more pictures I can send them over via email. The help so far is really apprecatied :D



rich_is_bored@Posted: Tue Jun 27, 2006 5:00 am :
Is this character for a Doom 3 engine game? If so, your normal map should be rendered in tangent space. The normal map you've posted appears to be rendered in object space.

And yes, it's pretty common to have to break the model into pieces, render them all individually, and composite the resulting normal maps in post.

Also, if the screenshot of that boot is any indication as to how dense a mesh your using for your high poly character, I'd say you could up the polycount there considerably.

I realize that you're trying to preserve hard edges but I'd turn that high poly model into a subdivision surface and use edge loops to preserve the hard edges. You can always apply the subdivision to the mesh at a later state to end up with polygons which you can then render a normal map with.

I wonder, have you tried rendering normal maps for simple primatives yet? You know, just to get a feel for the workflow you'll need to follow given the applications you are using. Things like what file formats you'll need to utilize, ect...

I suggest you put your character on the back burner for a bit and try rendering a normal map using a high and low poly sphere. Just start with something simple. No hard edges. Just a low and high poly sphere.



parsonsbear@Posted: Wed Jun 28, 2006 12:54 am :
Like I said before, you should follow the instructions at idDevnet. They really did an underappreciated job with that site, it's very good- much better than most tutorials for any system in fact.

http://www.iddevnet.com/quake4/ArtRefer ... tingModels

Also, the introductory text on normalmaps by JCarmack is a good read too:
http://www.iddevnet.com/doom3/bumpmaps.php

I've used melody before, and I ran into the same problem- I'm much happier now that I follow the id system.



der_ton@Posted: Wed Jun 28, 2006 10:42 pm :
On a side-note, your uv-mapping is not very suitable for normalmapping. Here is a quote from the iddevnet-article on bumpmapping, linked above by parsonsbear:

Quote:
The lowPolyModel must have texture coordinates on it, and care should be taken to make sure the mapping is as good as possible. Before doing a RenderBump, test the model in the game with "r_showTexturePolarity 1" and "r_showEdges 1". Make sure that there aren’t any texture seams that aren’t absolutely necessary, and that there are no overlapped texture projections.


The texture seams look bad ingame, and they even affect rendering performance negatively, because a vertex on a seam has to be duplicated into two vertices for the rendering.



MichaelZee@Posted: Thu Jun 29, 2006 11:23 pm :
thanks for the information and help guys.

rich_is_bored: Thanks for the help, I changed my other normal maps to now be tangent space and I practiced on some more simplier objects; helped me out well to get more of the feel like you said.

Parsonsbear: Thank you for the links. With what you provided I am learning how to do it id's way (currently with the quake 4 link). Everything is going pretty well so far but I ran into one problem. On step 4 they use lightwave which makes it hard for me to understand becuase I use 3dsmax8. I am not sure if you use lightwave yourself but if you know how to do this part with 3dsmax 8 that would be a gigantic help.

der_ton: Thanks for the side note but I am going to take my chances with this Uv set up for now. If it doesent look good or performance is hoged then I'll just have to re-Uv map it. But how should this Uv map look to be more suitable?



parsonsbear@Posted: Fri Jun 30, 2006 6:48 am :
well, it's hard to say because it's directly related to the file format that you load into quake4. Basically, they look at the shader name that's assigned to the poly's of the low poly model to find the doom3 material that's going to be used in-game (and also can contain your renderbump options)

If you export as 3dsmax .ase files, you're in for a world of hurt, but feel free to search around here and modwiki.net for info on the process. (AFAIK) it involves opening the .ase files in a text editor and manually changing the material names to the d3 shader name.



MichaelZee@Posted: Fri Jun 30, 2006 8:06 pm :
parsonsbear wrote:
well, it's hard to say because it's directly related to the file format that you load into quake4. Basically, they look at the shader name that's assigned to the poly's of the low poly model to find the doom3 material that's going to be used in-game (and also can contain your renderbump options)

If you export as 3dsmax .ase files, you're in for a world of hurt, but feel free to search around here and modwiki.net for info on the process. (AFAIK) it involves opening the .ase files in a text editor and manually changing the material names to the d3 shader name.


Ok, on a video tutorial by Brain Trepaning on developing your own static meshes for doom3, I remember him going inside the .ase file using the text editor and changing the shader name. Perhaps he would know how this is done but another thing is that I plan on making an animation model. If I recall, .ase are good for static models but I would want to do an md5mesh, or does it not matter since after all I am going to just be redering a bumpmap with the two models for now?

So would the shader on the low poly character model be the _d map of your character and is the shader put on to your character as if your assigning the low poly model a texture or just naming the mesh the path name of the shader? I'm sorry I don't quite get the process yet, I have made characters for unreal but this is diffenant.



rich_is_bored@Posted: Sat Jul 01, 2006 5:29 am :
As long as the UV maps are the same for both the ASE and MD5mesh, it won't matter which model you use for rendering a normal map.



MichaelZee@Posted: Sat Jul 01, 2006 8:43 pm :
Ok.

I am attempting to just render the normal map out to at least get the feel how this way works. I am on part 5 where you render out the normal map. Here is my mtr file for what i am going to render.

Code:
//----------------------------Faction_Grunt---MatierialCode-----------------------------------------------

models/faction_enemies/Faction_Grunt_Body_Low

{
        noselfShadow
        unsmoothedtangents

renderbump
-size 1024 1024
-trace .05
-aa 2
-mergehigh

textures/faction_enemies/Faction_Grunt_local.tga

models/faction_enemies/Faction_Grunt_Body_High.ASE


diffusemap              textures/faction_enemies/Faction_Grunt_d.tga
bumpmap addnormals ( textures/faction_enemies/Faction_Grunt_local.tga, heightmap ( textures/faction_enemies/Faction_Grunt_h.tga, 1 ) )

}


On command prompt I can get it to work. I dont think I am intreprating iddevnet's directions correctly.

Image

Whenever I compile this I get dialog saying ....
Code:
< was unexpected at this time


What am I doing wrong here?

UPDATE: I just delleted all the < simbles and it launched me up into the quake4 menu in window mode. I also got rid of the ] [ simbols and it is still taking me to the main menu. I am not sure what is suppose to happen next but how come rendering of the normal map isent happening?



MichaelZee@Posted: Fri Jun 23, 2006 8:17 am    Post subject: How did id do it with zbrush?: Hello Smile

With the character models such as the Doom Marines in green, how did id go about making there entire normal map? Did they import their whole low poly models into zbrush and skulped them there? I am having a hard time trying to preserve hard edges for my models in Zbrush that I designated in max Sad . In resault, it seems almost impossible to create various armor types yet I see id's armored characters such as the doom marines and I really wonder how did id make there normal maps for them with zbrush(especially there armor). Does anyone know how they went about doing it? The information would really help me out big time

Thanks Smile
_________________
Immortality, eternal youth is within reach and is on its way soon! Please pass the message along and make a donation to the mouse prize to help the development to the cure to aging. The website at http://www.mprize.org/index.php?pagename=whatisthemf



Rayne@Posted: Fri Jun 23, 2006 10:54 am    Post subject: : Id made only few characters out of Zbrush for vanilla DooM3. As Kenneth Scott said they used Zbrush for sculpting new monsters for the expantion pack RoE... Techy parts such weapons, armors etc are modelled in maya/lightwave
_________________
theRev is coming...



MichaelZee@Posted: Fri Jun 23, 2006 8:26 pm    Post subject: : hmm, so more than likely with the doom marines they just made a high poly model in their 3d package. Did they use a third party program to generate the normal map? I'm trying to use max's but its proving to be pretty challanging in attempt to get the cage working and then getting the normal map; so far I havent been able to get desirable reaults.

EDIT:

I currently found a nvidia software called melody that does the job. I am having a problem with it though, when ever I generate a normal map it doesnt respect the uvw map I made and comes out all in peices. Any ideas or suggestions to another software for that matter? Help is really appreacited Smile
_________________
Immortality, eternal youth is within reach and is on its way soon! Please pass the message along and make a donation to the mouse prize to help the development to the cure to aging. The website at http://www.mprize.org/index.php?pagename=whatisthemf



parsonsbear@Posted: Sat Jun 24, 2006 2:19 am    Post subject: : Doom3 actually has one of the best highpoly-lowpoly normalmap transfers available. Do some searches for renderbump, or look in the art reference at quake4/iddevnet.


MichaelZee@Posted: Sat Jun 24, 2006 4:42 am    Post subject: : Ok, by reading through several differant sources I have found out like parsonbear had mentioned, a built in renderbump system in doom3. This is my siutation:

I have a low polygon character and a high polygon version of that character. I would like to use the high polygon version to generate a normal map for my low polygon character. To do that with the Doom Engine's renderbump, how should I go about it? What should the code look like?

I am really thankful for any help.
_________________
Immortality, eternal youth is within reach and is on its way soon! Please pass the message along and make a donation to the mouse prize to help the development to the cure to aging. The website at http://www.mprize.org/index.php?pagename=whatisthemf



MichaelZee@Posted: Mon Jun 26, 2006 3:23 am    Post subject: : Alright I need help big time!!!

I'm trying all I can to generate a normal map but it just never comes out how I want it to. I was able to get melody (a normal map generater problem by nvidia) to respect my uvw map coordinets but no mather what I cant get it to where my nromal map sits in well with my character. It just seems absolutly impossble to make a high polygon generated normal map for a character, its an complete mystery to me how id coudeve made theres so well.

So far I have been trying Melody and 3DS Max 8 and I have realized from that of my experience that it is best to seperate objects that are on your character becuase if you dont it will interfear with the cage. For example, the side packs of my character's belt was in the way of the belt area so I would get bad results. Even though with that method in mind I still get bad edging and some undisirable resaults as you can see with a piece of the character included in the picture (Please See Picture--This map was generated in max).


The bad edging is common throughout my normal map and some resualts are not what I am looking for, I beleive it has to do with the cage.

Please Please Please help, Im getting desperate! Crying or Very sad
_________________
Immortality, eternal youth is within reach and is on its way soon! Please pass the message along and make a donation to the mouse prize to help the development to the cure to aging. The website at http://www.mprize.org/index.php?pagename=whatisthemf



rich_is_bored@Posted: Mon Jun 26, 2006 4:43 am    Post subject: : It's really hard to tell what your problem is because all we have to look at are the resulting normal maps.

But it's impossible to gauge how your normal maps should have turned out because we've never seen the models you're using to generate them.

The only thing I can comment on is the "bad edges". If you look closely at that area you'll see that the circle in fact is well defined. It's just the surrounding border of pixels which is stretched out a bit.

Without seeing your UV map I can't say for certain but this may not even be an issue. Most programs that render out a normal map draw outside the bounds of each UV group a set number of pixels.

The idea is much the same as traditional texturing in that you want to paint around the bounds of the UV map. For instance, if you painted a diffuse map on a white image and stayed within the bounds, you'd have white areas around all the UV seams.
_________________
Staff
Learn something today? Why not write an article about it on modwiki.net?



MichaelZee@Posted: Tue Jun 27, 2006 1:49 am    Post subject: : Thank you for the information. To make the situation more clear I took some screenshots

Heres the UV map for the character



Here is the best normal map I have generated with melody so far. I took off some pieces of the character because of projection problems so I'd would do them individually but here is the body and head of the chracters normal map. The shoe part is on the right middle.



With this current normal map I am having problems with various parts like the bottom bevel of the shoe. Here is a picture of the shoe of my highpoly character model.



Yet in the low poly character I get problems like this when I apply the normal map and I dont know how to prevent them.



I hope I made this more clear, I just get random problems like were seeing in the boot bevel. I did noticed however the color coordination in that area is kind of messy but I dont know how to fix it. Any idea on what I may be doing wrong? If you need more pictures I can send them over via email. The help so far is really apprecatied Very Happy
_________________
Immortality, eternal youth is within reach and is on its way soon! Please pass the message along and make a donation to the mouse prize to help the development to the cure to aging. The website at http://www.mprize.org/index.php?pagename=whatisthemf



rich_is_bored@Posted: Tue Jun 27, 2006 5:00 am    Post subject: : Is this character for a Doom 3 engine game? If so, your normal map should be rendered in tangent space. The normal map you've posted appears to be rendered in object space.

And yes, it's pretty common to have to break the model into pieces, render them all individually, and composite the resulting normal maps in post.

Also, if the screenshot of that boot is any indication as to how dense a mesh your using for your high poly character, I'd say you could up the polycount there considerably.

I realize that you're trying to preserve hard edges but I'd turn that high poly model into a subdivision surface and use edge loops to preserve the hard edges. You can always apply the subdivision to the mesh at a later state to end up with polygons which you can then render a normal map with.

I wonder, have you tried rendering normal maps for simple primatives yet? You know, just to get a feel for the workflow you'll need to follow given the applications you are using. Things like what file formats you'll need to utilize, ect...

I suggest you put your character on the back burner for a bit and try rendering a normal map using a high and low poly sphere. Just start with something simple. No hard edges. Just a low and high poly sphere.
_________________
Staff
Learn something today? Why not write an article about it on modwiki.net?



parsonsbear@Posted: Wed Jun 28, 2006 12:54 am    Post subject: : Like I said before, you should follow the instructions at idDevnet. They really did an underappreciated job with that site, it's very good- much better than most tutorials for any system in fact.

http://www.iddevnet.com/quake4/ArtReference_CreatingModels

Also, the introductory text on normalmaps by JCarmack is a good read too:
http://www.iddevnet.com/doom3/bumpmaps.php

I've used melody before, and I ran into the same problem- I'm much happier now that I follow the id system.



der_ton@Posted: Wed Jun 28, 2006 10:42 pm    Post subject: : On a side-note, your uv-mapping is not very suitable for normalmapping. Here is a quote from the iddevnet-article on bumpmapping, linked above by parsonsbear:

Quote:
The lowPolyModel must have texture coordinates on it, and care should be taken to make sure the mapping is as good as possible. Before doing a RenderBump, test the model in the game with "r_showTexturePolarity 1" and "r_showEdges 1". Make sure that there arenÂ’t any texture seams that arenÂ’t absolutely necessary, and that there are no overlapped texture projections.


The texture seams look bad ingame, and they even affect rendering performance negatively, because a vertex on a seam has to be duplicated into two vertices for the rendering.
_________________
Staff
Modelviewer | 3DSMax<->MD5 | Blender<->MD5



MichaelZee@Posted: Thu Jun 29, 2006 11:23 pm    Post subject: : thanks for the information and help guys.

rich_is_bored: Thanks for the help, I changed my other normal maps to now be tangent space and I practiced on some more simplier objects; helped me out well to get more of the feel like you said.

Parsonsbear: Thank you for the links. With what you provided I am learning how to do it id's way (currently with the quake 4 link). Everything is going pretty well so far but I ran into one problem. On step 4 they use lightwave which makes it hard for me to understand



MichaelZee@Posted: Fri Jun 23, 2006 8:17 am :
Hello :)

With the character models such as the Doom Marines in green, how did id go about making there entire normal map? Did they import their whole low poly models into zbrush and skulped them there? I am having a hard time trying to preserve hard edges for my models in Zbrush that I designated in max :( . In resault, it seems almost impossible to create various armor types yet I see id's armored characters such as the doom marines and I really wonder how did id make there normal maps for them with zbrush(especially there armor). Does anyone know how they went about doing it? The information would really help me out big time

Thanks :)



Rayne@Posted: Fri Jun 23, 2006 10:54 am :
Id made only few characters out of Zbrush for vanilla DooM3. As Kenneth Scott said they used Zbrush for sculpting new monsters for the expantion pack RoE... Techy parts such weapons, armors etc are modelled in maya/lightwave



MichaelZee@Posted: Fri Jun 23, 2006 8:26 pm :
hmm, so more than likely with the doom marines they just made a high poly model in their 3d package. Did they use a third party program to generate the normal map? I'm trying to use max's but its proving to be pretty challanging in attempt to get the cage working and then getting the normal map; so far I havent been able to get desirable reaults.

EDIT:

I currently found a nvidia software called melody that does the job. I am having a problem with it though, when ever I generate a normal map it doesnt respect the uvw map I made and comes out all in peices. Any ideas or suggestions to another software for that matter? Help is really appreacited :)



parsonsbear@Posted: Sat Jun 24, 2006 2:19 am :
Doom3 actually has one of the best highpoly-lowpoly normalmap transfers available. Do some searches for renderbump, or look in the art reference at quake4/iddevnet.



MichaelZee@Posted: Sat Jun 24, 2006 4:42 am :
Ok, by reading through several differant sources I have found out like parsonbear had mentioned, a built in renderbump system in doom3. This is my siutation:

I have a low polygon character and a high polygon version of that character. I would like to use the high polygon version to generate a normal map for my low polygon character. To do that with the Doom Engine's renderbump, how should I go about it? What should the code look like?

I am really thankful for any help.



MichaelZee@Posted: Mon Jun 26, 2006 3:23 am :
Alright I need help big time!!!

I'm trying all I can to generate a normal map but it just never comes out how I want it to. I was able to get melody (a normal map generater problem by nvidia) to respect my uvw map coordinets but no mather what I cant get it to where my nromal map sits in well with my character. It just seems absolutly impossble to make a high polygon generated normal map for a character, its an complete mystery to me how id coudeve made theres so well.

So far I have been trying Melody and 3DS Max 8 and I have realized from that of my experience that it is best to seperate objects that are on your character becuase if you dont it will interfear with the cage. For example, the side packs of my character's belt was in the way of the belt area so I would get bad results. Even though with that method in mind I still get bad edging and some undisirable resaults as you can see with a piece of the character included in the picture (Please See Picture--This map was generated in max).
Image

The bad edging is common throughout my normal map and some resualts are not what I am looking for, I beleive it has to do with the cage.

Please Please Please help, Im getting desperate! :cry:



rich_is_bored@Posted: Mon Jun 26, 2006 4:43 am :
It's really hard to tell what your problem is because all we have to look at are the resulting normal maps.

But it's impossible to gauge how your normal maps should have turned out because we've never seen the models you're using to generate them.

The only thing I can comment on is the "bad edges". If you look closely at that area you'll see that the circle in fact is well defined. It's just the surrounding border of pixels which is stretched out a bit.

Without seeing your UV map I can't say for certain but this may not even be an issue. Most programs that render out a normal map draw outside the bounds of each UV group a set number of pixels.

The idea is much the same as traditional texturing in that you want to paint around the bounds of the UV map. For instance, if you painted a diffuse map on a white image and stayed within the bounds, you'd have white areas around all the UV seams.



MichaelZee@Posted: Tue Jun 27, 2006 1:49 am :
Thank you for the information. To make the situation more clear I took some screenshots

Heres the UV map for the character

Image

Here is the best normal map I have generated with melody so far. I took off some pieces of the character because of projection problems so I'd would do them individually but here is the body and head of the chracters normal map. The shoe part is on the right middle.

Image

With this current normal map I am having problems with various parts like the bottom bevel of the shoe. Here is a picture of the shoe of my highpoly character model.

Image

Yet in the low poly character I get problems like this when I apply the normal map and I dont know how to prevent them.

Image

I hope I made this more clear, I just get random problems like were seeing in the boot bevel. I did noticed however the color coordination in that area is kind of messy but I dont know how to fix it. Any idea on what I may be doing wrong? If you need more pictures I can send them over via email. The help so far is really apprecatied :D



rich_is_bored@Posted: Tue Jun 27, 2006 5:00 am :
Is this character for a Doom 3 engine game? If so, your normal map should be rendered in tangent space. The normal map you've posted appears to be rendered in object space.

And yes, it's pretty common to have to break the model into pieces, render them all individually, and composite the resulting normal maps in post.

Also, if the screenshot of that boot is any indication as to how dense a mesh your using for your high poly character, I'd say you could up the polycount there considerably.

I realize that you're trying to preserve hard edges but I'd turn that high poly model into a subdivision surface and use edge loops to preserve the hard edges. You can always apply the subdivision to the mesh at a later state to end up with polygons which you can then render a normal map with.

I wonder, have you tried rendering normal maps for simple primatives yet? You know, just to get a feel for the workflow you'll need to follow given the applications you are using. Things like what file formats you'll need to utilize, ect...

I suggest you put your character on the back burner for a bit and try rendering a normal map using a high and low poly sphere. Just start with something simple. No hard edges. Just a low and high poly sphere.



parsonsbear@Posted: Wed Jun 28, 2006 12:54 am :
Like I said before, you should follow the instructions at idDevnet. They really did an underappreciated job with that site, it's very good- much better than most tutorials for any system in fact.

http://www.iddevnet.com/quake4/ArtRefer ... tingModels

Also, the introductory text on normalmaps by JCarmack is a good read too:
http://www.iddevnet.com/doom3/bumpmaps.php

I've used melody before, and I ran into the same problem- I'm much happier now that I follow the id system.



der_ton@Posted: Wed Jun 28, 2006 10:42 pm :
On a side-note, your uv-mapping is not very suitable for normalmapping. Here is a quote from the iddevnet-article on bumpmapping, linked above by parsonsbear:

Quote:
The lowPolyModel must have texture coordinates on it, and care should be taken to make sure the mapping is as good as possible. Before doing a RenderBump, test the model in the game with "r_showTexturePolarity 1" and "r_showEdges 1". Make sure that there aren’t any texture seams that aren’t absolutely necessary, and that there are no overlapped texture projections.


The texture seams look bad ingame, and they even affect rendering performance negatively, because a vertex on a seam has to be duplicated into two vertices for the rendering.



MichaelZee@Posted: Thu Jun 29, 2006 11:23 pm :
thanks for the information and help guys.

rich_is_bored: Thanks for the help, I changed my other normal maps to now be tangent space and I practiced on some more simplier objects; helped me out well to get more of the feel like you said.

Parsonsbear: Thank you for the links. With what you provided I am learning how to do it id's way (currently with the quake 4 link). Everything is going pretty well so far but I ran into one problem. On step 4 they use lightwave which makes it hard for me to understand becuase I use 3dsmax8. I am not sure if you use lightwave yourself but if you know how to do this part with 3dsmax 8 that would be a gigantic help.

der_ton: Thanks for the side note but I am going to take my chances with this Uv set up for now. If it doesent look good or performance is hoged then I'll just have to re-Uv map it. But how should this Uv map look to be more suitable?



parsonsbear@Posted: Fri Jun 30, 2006 6:48 am :
well, it's hard to say because it's directly related to the file format that you load into quake4. Basically, they look at the shader name that's assigned to the poly's of the low poly model to find the doom3 material that's going to be used in-game (and also can contain your renderbump options)

If you export as 3dsmax .ase files, you're in for a world of hurt, but feel free to search around here and modwiki.net for info on the process. (AFAIK) it involves opening the .ase files in a text editor and manually changing the material names to the d3 shader name.



MichaelZee@Posted: Fri Jun 30, 2006 8:06 pm :
parsonsbear wrote:
well, it's hard to say because it's directly related to the file format that you load into quake4. Basically, they look at the shader name that's assigned to the poly's of the low poly model to find the doom3 material that's going to be used in-game (and also can contain your renderbump options)

If you export as 3dsmax .ase files, you're in for a world of hurt, but feel free to search around here and modwiki.net for info on the process. (AFAIK) it involves opening the .ase files in a text editor and manually changing the material names to the d3 shader name.


Ok, on a video tutorial by Brain Trepaning on developing your own static meshes for doom3, I remember him going inside the .ase file using the text editor and changing the shader name. Perhaps he would know how this is done but another thing is that I plan on making an animation model. If I recall, .ase are good for static models but I would want to do an md5mesh, or does it not matter since after all I am going to just be redering a bumpmap with the two models for now?

So would the shader on the low poly character model be the _d map of your character and is the shader put on to your character as if your assigning the low poly model a texture or just naming the mesh the path name of the shader? I'm sorry I don't quite get the process yet, I have made characters for unreal but this is diffenant.



rich_is_bored@Posted: Sat Jul 01, 2006 5:29 am :
As long as the UV maps are the same for both the ASE and MD5mesh, it won't matter which model you use for rendering a normal map.



MichaelZee@Posted: Sat Jul 01, 2006 8:43 pm :
Ok.

I am attempting to just render the normal map out to at least get the feel how this way works. I am on part 5 where you render out the normal map. Here is my mtr file for what i am going to render.

Code:
//----------------------------Faction_Grunt---MatierialCode-----------------------------------------------

models/faction_enemies/Faction_Grunt_Body_Low

{
        noselfShadow
        unsmoothedtangents

renderbump
-size 1024 1024
-trace .05
-aa 2
-mergehigh

textures/faction_enemies/Faction_Grunt_local.tga

models/faction_enemies/Faction_Grunt_Body_High.ASE


diffusemap              textures/faction_enemies/Faction_Grunt_d.tga
bumpmap addnormals ( textures/faction_enemies/Faction_Grunt_local.tga, heightmap ( textures/faction_enemies/Faction_Grunt_h.tga, 1 ) )

}


On command prompt I can get it to work. I dont think I am intreprating iddevnet's directions correctly.

Image

Whenever I compile this I get dialog saying ....
Code:
< was unexpected at this time


What am I doing wrong here?

UPDATE: I just delleted all the < simbles and it launched me up into the quake4 menu in window mode. I also got rid of the ] [ simbols and it is still taking me to the main menu. I am not sure what is suppose to happen next but how come rendering of the normal map isent happening?



MichaelZee@Posted: Fri Jun 23, 2006 8:17 am :
Hello :)

With the character models such as the Doom Marines in green, how did id go about making there entire normal map? Did they import their whole low poly models into zbrush and skulped them there? I am having a hard time trying to preserve hard edges for my models in Zbrush that I designated in max :( . In resault, it seems almost impossible to create various armor types yet I see id's armored characters such as the doom marines and I really wonder how did id make there normal maps for them with zbrush(especially there armor). Does anyone know how they went about doing it? The information would really help me out big time

Thanks :)



Rayne@Posted: Fri Jun 23, 2006 10:54 am :
Id made only few characters out of Zbrush for vanilla DooM3. As Kenneth Scott said they used Zbrush for sculpting new monsters for the expantion pack RoE... Techy parts such weapons, armors etc are modelled in maya/lightwave



MichaelZee@Posted: Fri Jun 23, 2006 8:26 pm :
hmm, so more than likely with the doom marines they just made a high poly model in their 3d package. Did they use a third party program to generate the normal map? I'm trying to use max's but its proving to be pretty challanging in attempt to get the cage working and then getting the normal map; so far I havent been able to get desirable reaults.

EDIT:

I currently found a nvidia software called melody that does the job. I am having a problem with it though, when ever I generate a normal map it doesnt respect the uvw map I made and comes out all in peices. Any ideas or suggestions to another software for that matter? Help is really appreacited :)



parsonsbear@Posted: Sat Jun 24, 2006 2:19 am :
Doom3 actually has one of the best highpoly-lowpoly normalmap transfers available. Do some searches for renderbump, or look in the art reference at quake4/iddevnet.



MichaelZee@Posted: Sat Jun 24, 2006 4:42 am :
Ok, by reading through several differant sources I have found out like parsonbear had mentioned, a built in renderbump system in doom3. This is my siutation:

I have a low polygon character and a high polygon version of that character. I would like to use the high polygon version to generate a normal map for my low polygon character. To do that with the Doom Engine's renderbump, how should I go about it? What should the code look like?

I am really thankful for any help.



MichaelZee@Posted: Mon Jun 26, 2006 3:23 am :
Alright I need help big time!!!

I'm trying all I can to generate a normal map but it just never comes out how I want it to. I was able to get melody (a normal map generater problem by nvidia) to respect my uvw map coordinets but no mather what I cant get it to where my nromal map sits in well with my character. It just seems absolutly impossble to make a high polygon generated normal map for a character, its an complete mystery to me how id coudeve made theres so well.

So far I have been trying Melody and 3DS Max 8 and I have realized from that of my experience that it is best to seperate objects that are on your character becuase if you dont it will interfear with the cage. For example, the side packs of my character's belt was in the way of the belt area so I would get bad results. Even though with that method in mind I still get bad edging and some undisirable resaults as you can see with a piece of the character included in the picture (Please See Picture--This map was generated in max).
Image

The bad edging is common throughout my normal map and some resualts are not what I am looking for, I beleive it has to do with the cage.

Please Please Please help, Im getting desperate! :cry:



rich_is_bored@Posted: Mon Jun 26, 2006 4:43 am :
It's really hard to tell what your problem is because all we have to look at are the resulting normal maps.

But it's impossible to gauge how your normal maps should have turned out because we've never seen the models you're using to generate them.

The only thing I can comment on is the "bad edges". If you look closely at that area you'll see that the circle in fact is well defined. It's just the surrounding border of pixels which is stretched out a bit.

Without seeing your UV map I can't say for certain but this may not even be an issue. Most programs that render out a normal map draw outside the bounds of each UV group a set number of pixels.

The idea is much the same as traditional texturing in that you want to paint around the bounds of the UV map. For instance, if you painted a diffuse map on a white image and stayed within the bounds, you'd have white areas around all the UV seams.



MichaelZee@Posted: Tue Jun 27, 2006 1:49 am :
Thank you for the information. To make the situation more clear I took some screenshots

Heres the UV map for the character

Image

Here is the best normal map I have generated with melody so far. I took off some pieces of the character because of projection problems so I'd would do them individually but here is the body and head of the chracters normal map. The shoe part is on the right middle.

Image

With this current normal map I am having problems with various parts like the bottom bevel of the shoe. Here is a picture of the shoe of my highpoly character model.

Image

Yet in the low poly character I get problems like this when I apply the normal map and I dont know how to prevent them.

Image

I hope I made this more clear, I just get random problems like were seeing in the boot bevel. I did noticed however the color coordination in that area is kind of messy but I dont know how to fix it. Any idea on what I may be doing wrong? If you need more pictures I can send them over via email. The help so far is really apprecatied :D



rich_is_bored@Posted: Tue Jun 27, 2006 5:00 am :
Is this character for a Doom 3 engine game? If so, your normal map should be rendered in tangent space. The normal map you've posted appears to be rendered in object space.

And yes, it's pretty common to have to break the model into pieces, render them all individually, and composite the resulting normal maps in post.

Also, if the screenshot of that boot is any indication as to how dense a mesh your using for your high poly character, I'd say you could up the polycount there considerably.

I realize that you're trying to preserve hard edges but I'd turn that high poly model into a subdivision surface and use edge loops to preserve the hard edges. You can always apply the subdivision to the mesh at a later state to end up with polygons which you can then render a normal map with.

I wonder, have you tried rendering normal maps for simple primatives yet? You know, just to get a feel for the workflow you'll need to follow given the applications you are using. Things like what file formats you'll need to utilize, ect...

I suggest you put your character on the back burner for a bit and try rendering a normal map using a high and low poly sphere. Just start with something simple. No hard edges. Just a low and high poly sphere.



parsonsbear@Posted: Wed Jun 28, 2006 12:54 am :
Like I said before, you should follow the instructions at idDevnet. They really did an underappreciated job with that site, it's very good- much better than most tutorials for any system in fact.

http://www.iddevnet.com/quake4/ArtRefer ... tingModels

Also, the introductory text on normalmaps by JCarmack is a good read too:
http://www.iddevnet.com/doom3/bumpmaps.php

I've used melody before, and I ran into the same problem- I'm much happier now that I follow the id system.



der_ton@Posted: Wed Jun 28, 2006 10:42 pm :
On a side-note, your uv-mapping is not very suitable for normalmapping. Here is a quote from the iddevnet-article on bumpmapping, linked above by parsonsbear:

Quote:
The lowPolyModel must have texture coordinates on it, and care should be taken to make sure the mapping is as good as possible. Before doing a RenderBump, test the model in the game with "r_showTexturePolarity 1" and "r_showEdges 1". Make sure that there aren’t any texture seams that aren’t absolutely necessary, and that there are no overlapped texture projections.


The texture seams look bad ingame, and they even affect rendering performance negatively, because a vertex on a seam has to be duplicated into two vertices for the rendering.



MichaelZee@Posted: Thu Jun 29, 2006 11:23 pm :
thanks for the information and help guys.

rich_is_bored: Thanks for the help, I changed my other normal maps to now be tangent space and I practiced on some more simplier objects; helped me out well to get more of the feel like you said.

Parsonsbear: Thank you for the links. With what you provided I am learning how to do it id's way (currently with the quake 4 link). Everything is going pretty well so far but I ran into one problem. On step 4 they use lightwave which makes it hard for me to understand becuase I use 3dsmax8. I am not sure if you use lightwave yourself but if you know how to do this part with 3dsmax 8 that would be a gigantic help.

der_ton: Thanks for the side note but I am going to take my chances with this Uv set up for now. If it doesent look good or performance is hoged then I'll just have to re-Uv map it. But how should this Uv map look to be more suitable?



parsonsbear@Posted: Fri Jun 30, 2006 6:48 am :
well, it's hard to say because it's directly related to the file format that you load into quake4. Basically, they look at the shader name that's assigned to the poly's of the low poly model to find the doom3 material that's going to be used in-game (and also can contain your renderbump options)

If you export as 3dsmax .ase files, you're in for a world of hurt, but feel free to search around here and modwiki.net for info on the process. (AFAIK) it involves opening the .ase files in a text editor and manually changing the material names to the d3 shader name.



MichaelZee@Posted: Fri Jun 30, 2006 8:06 pm :
parsonsbear wrote:
well, it's hard to say because it's directly related to the file format that you load into quake4. Basically, they look at the shader name that's assigned to the poly's of the low poly model to find the doom3 material that's going to be used in-game (and also can contain your renderbump options)

If you export as 3dsmax .ase files, you're in for a world of hurt, but feel free to search around here and modwiki.net for info on the process. (AFAIK) it involves opening the .ase files in a text editor and manually changing the material names to the d3 shader name.


Ok, on a video tutorial by Brain Trepaning on developing your own static meshes for doom3, I remember him going inside the .ase file using the text editor and changing the shader name. Perhaps he would know how this is done but another thing is that I plan on making an animation model. If I recall, .ase are good for static models but I would want to do an md5mesh, or does it not matter since after all I am going to just be redering a bumpmap with the two models for now?

So would the shader on the low poly character model be the _d map of your character and is the shader put on to your character as if your assigning the low poly model a texture or just naming the mesh the path name of the shader? I'm sorry I don't quite get the process yet, I have made characters for unreal but this is diffenant.



rich_is_bored@Posted: Sat Jul 01, 2006 5:29 am :
As long as the UV maps are the same for both the ASE and MD5mesh, it won't matter which model you use for rendering a normal map.



MichaelZee@Posted: Sat Jul 01, 2006 8:43 pm :
Ok.

I am attempting to just render the normal map out to at least get the feel how this way works. I am on part 5 where you render out the normal map. Here is my mtr file for what i am going to render.

Code:
//----------------------------Faction_Grunt---MatierialCode-----------------------------------------------

models/faction_enemies/Faction_Grunt_Body_Low

{
        noselfShadow
        unsmoothedtangents

renderbump
-size 1024 1024
-trace .05
-aa 2
-mergehigh

textures/faction_enemies/Faction_Grunt_local.tga

models/faction_enemies/Faction_Grunt_Body_High.ASE


diffusemap              textures/faction_enemies/Faction_Grunt_d.tga
bumpmap addnormals ( textures/faction_enemies/Faction_Grunt_local.tga, heightmap ( textures/faction_enemies/Faction_Grunt_h.tga, 1 ) )

}


On command prompt I can get it to work. I dont think I am intreprating iddevnet's directions correctly.

Image

Whenever I compile this I get dialog saying ....
Code:
< was unexpected at this time


What am I doing wrong here?

UPDATE: I just delleted all the < simbles and it launched me up into the quake4 menu in window mode. I also got rid of the ] [ simbols and it is still taking me to the main menu. I am not sure what is suppose to happen next but how come rendering of the normal map isent happening?



MichaelZee@Posted: Fri Jun 23, 2006 8:17 am :
Hello :)

With the character models such as the Doom Marines in green, how did id go about making there entire normal map? Did they import their whole low poly models into zbrush and skulped them there? I am having a hard time trying to preserve hard edges for my models in Zbrush that I designated in max :( . In resault, it seems almost impossible to create various armor types yet I see id's armored characters such as the doom marines and I really wonder how did id make there normal maps for them with zbrush(especially there armor). Does anyone know how they went about doing it? The information would really help me out big time

Thanks :)



Rayne@Posted: Fri Jun 23, 2006 10:54 am :
Id made only few characters out of Zbrush for vanilla DooM3. As Kenneth Scott said they used Zbrush for sculpting new monsters for the expantion pack RoE... Techy parts such weapons, armors etc are modelled in maya/lightwave



MichaelZee@Posted: Fri Jun 23, 2006 8:26 pm :
hmm, so more than likely with the doom marines they just made a high poly model in their 3d package. Did they use a third party program to generate the normal map? I'm trying to use max's but its proving to be pretty challanging in attempt to get the cage working and then getting the normal map; so far I havent been able to get desirable reaults.

EDIT:

I currently found a nvidia software called melody that does the job. I am having a problem with it though, when ever I generate a normal map it doesnt respect the uvw map I made and comes out all in peices. Any ideas or suggestions to another software for that matter? Help is really appreacited :)



parsonsbear@Posted: Sat Jun 24, 2006 2:19 am :
Doom3 actually has one of the best highpoly-lowpoly normalmap transfers available. Do some searches for renderbump, or look in the art reference at quake4/iddevnet.



MichaelZee@Posted: Sat Jun 24, 2006 4:42 am :
Ok, by reading through several differant sources I have found out like parsonbear had mentioned, a built in renderbump system in doom3. This is my siutation:

I have a low polygon character and a high polygon version of that character. I would like to use the high polygon version to generate a normal map for my low polygon character. To do that with the Doom Engine's renderbump, how should I go about it? What should the code look like?

I am really thankful for any help.



MichaelZee@Posted: Mon Jun 26, 2006 3:23 am :
Alright I need help big time!!!

I'm trying all I can to generate a normal map but it just never comes out how I want it to. I was able to get melody (a normal map generater problem by nvidia) to respect my uvw map coordinets but no mather what I cant get it to where my nromal map sits in well with my character. It just seems absolutly impossble to make a high polygon generated normal map for a character, its an complete mystery to me how id coudeve made theres so well.

So far I have been trying Melody and 3DS Max 8 and I have realized from that of my experience that it is best to seperate objects that are on your character becuase if you dont it will interfear with the cage. For example, the side packs of my character's belt was in the way of the belt area so I would get bad results. Even though with that method in mind I still get bad edging and some undisirable resaults as you can see with a piece of the character included in the picture (Please See Picture--This map was generated in max).
Image

The bad edging is common throughout my normal map and some resualts are not what I am looking for, I beleive it has to do with the cage.

Please Please Please help, Im getting desperate! :cry:



rich_is_bored@Posted: Mon Jun 26, 2006 4:43 am :
It's really hard to tell what your problem is because all we have to look at are the resulting normal maps.

But it's impossible to gauge how your normal maps should have turned out because we've never seen the models you're using to generate them.

The only thing I can comment on is the "bad edges". If you look closely at that area you'll see that the circle in fact is well defined. It's just the surrounding border of pixels which is stretched out a bit.

Without seeing your UV map I can't say for certain but this may not even be an issue. Most programs that render out a normal map draw outside the bounds of each UV group a set number of pixels.

The idea is much the same as traditional texturing in that you want to paint around the bounds of the UV map. For instance, if you painted a diffuse map on a white image and stayed within the bounds, you'd have white areas around all the UV seams.



MichaelZee@Posted: Tue Jun 27, 2006 1:49 am :
Thank you for the information. To make the situation more clear I took some screenshots

Heres the UV map for the character

Image

Here is the best normal map I have generated with melody so far. I took off some pieces of the character because of projection problems so I'd would do them individually but here is the body and head of the chracters normal map. The shoe part is on the right middle.

Image

With this current normal map I am having problems with various parts like the bottom bevel of the shoe. Here is a picture of the shoe of my highpoly character model.

Image

Yet in the low poly character I get problems like this when I apply the normal map and I dont know how to prevent them.

Image

I hope I made this more clear, I just get random problems like were seeing in the boot bevel. I did noticed however the color coordination in that area is kind of messy but I dont know how to fix it. Any idea on what I may be doing wrong? If you need more pictures I can send them over via email. The help so far is really apprecatied :D



rich_is_bored@Posted: Tue Jun 27, 2006 5:00 am :
Is this character for a Doom 3 engine game? If so, your normal map should be rendered in tangent space. The normal map you've posted appears to be rendered in object space.

And yes, it's pretty common to have to break the model into pieces, render them all individually, and composite the resulting normal maps in post.

Also, if the screenshot of that boot is any indication as to how dense a mesh your using for your high poly character, I'd say you could up the polycount there considerably.

I realize that you're trying to preserve hard edges but I'd turn that high poly model into a subdivision surface and use edge loops to preserve the hard edges. You can always apply the subdivision to the mesh at a later state to end up with polygons which you can then render a normal map with.

I wonder, have you tried rendering normal maps for simple primatives yet? You know, just to get a feel for the workflow you'll need to follow given the applications you are using. Things like what file formats you'll need to utilize, ect...

I suggest you put your character on the back burner for a bit and try rendering a normal map using a high and low poly sphere. Just start with something simple. No hard edges. Just a low and high poly sphere.



parsonsbear@Posted: Wed Jun 28, 2006 12:54 am :
Like I said before, you should follow the instructions at idDevnet. They really did an underappreciated job with that site, it's very good- much better than most tutorials for any system in fact.

http://www.iddevnet.com/quake4/ArtRefer ... tingModels

Also, the introductory text on normalmaps by JCarmack is a good read too:
http://www.iddevnet.com/doom3/bumpmaps.php

I've used melody before, and I ran into the same problem- I'm much happier now that I follow the id system.



der_ton@Posted: Wed Jun 28, 2006 10:42 pm :
On a side-note, your uv-mapping is not very suitable for normalmapping. Here is a quote from the iddevnet-article on bumpmapping, linked above by parsonsbear:

Quote:
The lowPolyModel must have texture coordinates on it, and care should be taken to make sure the mapping is as good as possible. Before doing a RenderBump, test the model in the game with "r_showTexturePolarity 1" and "r_showEdges 1". Make sure that there aren’t any texture seams that aren’t absolutely necessary, and that there are no overlapped texture projections.


The texture seams look bad ingame, and they even affect rendering performance negatively, because a vertex on a seam has to be duplicated into two vertices for the rendering.



MichaelZee@Posted: Thu Jun 29, 2006 11:23 pm :
thanks for the information and help guys.

rich_is_bored: Thanks for the help, I changed my other normal maps to now be tangent space and I practiced on some more simplier objects; helped me out well to get more of the feel like you said.

Parsonsbear: Thank you for the links. With what you provided I am learning how to do it id's way (currently with the quake 4 link). Everything is going pretty well so far but I ran into one problem. On step 4 they use lightwave which makes it hard for me to understand becuase I use 3dsmax8. I am not sure if you use lightwave yourself but if you know how to do this part with 3dsmax 8 that would be a gigantic help.

der_ton: Thanks for the side note but I am going to take my chances with this Uv set up for now. If it doesent look good or performance is hoged then I'll just have to re-Uv map it. But how should this Uv map look to be more suitable?



parsonsbear@Posted: Fri Jun 30, 2006 6:48 am :
well, it's hard to say because it's directly related to the file format that you load into quake4. Basically, they look at the shader name that's assigned to the poly's of the low poly model to find the doom3 material that's going to be used in-game (and also can contain your renderbump options)

If you export as 3dsmax .ase files, you're in for a world of hurt, but feel free to search around here and modwiki.net for info on the process. (AFAIK) it involves opening the .ase files in a text editor and manually changing the material names to the d3 shader name.



MichaelZee@Posted: Fri Jun 30, 2006 8:06 pm :
parsonsbear wrote:
well, it's hard to say because it's directly related to the file format that you load into quake4. Basically, they look at the shader name that's assigned to the poly's of the low poly model to find the doom3 material that's going to be used in-game (and also can contain your renderbump options)

If you export as 3dsmax .ase files, you're in for a world of hurt, but feel free to search around here and modwiki.net for info on the process. (AFAIK) it involves opening the .ase files in a text editor and manually changing the material names to the d3 shader name.


Ok, on a video tutorial by Brain Trepaning on developing your own static meshes for doom3, I remember him going inside the .ase file using the text editor and changing the shader name. Perhaps he would know how this is done but another thing is that I plan on making an animation model. If I recall, .ase are good for static models but I would want to do an md5mesh, or does it not matter since after all I am going to just be redering a bumpmap with the two models for now?

So would the shader on the low poly character model be the _d map of your character and is the shader put on to your character as if your assigning the low poly model a texture or just naming the mesh the path name of the shader? I'm sorry I don't quite get the process yet, I have made characters for unreal but this is diffenant.



rich_is_bored@Posted: Sat Jul 01, 2006 5:29 am :
As long as the UV maps are the same for both the ASE and MD5mesh, it won't matter which model you use for rendering a normal map.



MichaelZee@Posted: Sat Jul 01, 2006 8:43 pm :
Ok.

I am attempting to just render the normal map out to at least get the feel how this way works. I am on part 5 where you render out the normal map. Here is my mtr file for what i am going to render.

Code:
//----------------------------Faction_Grunt---MatierialCode-----------------------------------------------

models/faction_enemies/Faction_Grunt_Body_Low

{
        noselfShadow
        unsmoothedtangents

renderbump
-size 1024 1024
-trace .05
-aa 2
-mergehigh

textures/faction_enemies/Faction_Grunt_local.tga

models/faction_enemies/Faction_Grunt_Body_High.ASE


diffusemap              textures/faction_enemies/Faction_Grunt_d.tga
bumpmap addnormals ( textures/faction_enemies/Faction_Grunt_local.tga, heightmap ( textures/faction_enemies/Faction_Grunt_h.tga, 1 ) )

}


On command prompt I can get it to work. I dont think I am intreprating iddevnet's directions correctly.

Image

Whenever I compile this I get dialog saying ....
Code:
< was unexpected at this time


What am I doing wrong here?

UPDATE: I just delleted all the < simbles and it launched me up into the quake4 menu in window mode. I also got rid of the ] [ simbols and it is still taking me to the main menu. I am not sure what is suppose to happen next but how come rendering of the normal map isent happening?



MichaelZee@Posted: Fri Jun 23, 2006 8:17 am :
Hello :)

With the character models such as the Doom Marines in green, how did id go about making there entire normal map? Did they import their whole low poly models into zbrush and skulped them there? I am having a hard time trying to preserve hard edges for my models in Zbrush that I designated in max :( . In resault, it seems almost impossible to create various armor types yet I see id's armored characters such as the doom marines and I really wonder how did id make there normal maps for them with zbrush(especially there armor). Does anyone know how they went about doing it? The information would really help me out big time

Thanks :)



Rayne@Posted: Fri Jun 23, 2006 10:54 am :
Id made only few characters out of Zbrush for vanilla DooM3. As Kenneth Scott said they used Zbrush for sculpting new monsters for the expantion pack RoE... Techy parts such weapons, armors etc are modelled in maya/lightwave



MichaelZee@Posted: Fri Jun 23, 2006 8:26 pm :
hmm, so more than likely with the doom marines they just made a high poly model in their 3d package. Did they use a third party program to generate the normal map? I'm trying to use max's but its proving to be pretty challanging in attempt to get the cage working and then getting the normal map; so far I havent been able to get desirable reaults.

EDIT:

I currently found a nvidia software called melody that does the job. I am having a problem with it though, when ever I generate a normal map it doesnt respect the uvw map I made and comes out all in peices. Any ideas or suggestions to another software for that matter? Help is really appreacited :)



parsonsbear@Posted: Sat Jun 24, 2006 2:19 am :
Doom3 actually has one of the best highpoly-lowpoly normalmap transfers available. Do some searches for renderbump, or look in the art reference at quake4/iddevnet.



MichaelZee@Posted: Sat Jun 24, 2006 4:42 am :
Ok, by reading through several differant sources I have found out like parsonbear had mentioned, a built in renderbump system in doom3. This is my siutation:

I have a low polygon character and a high polygon version of that character. I would like to use the high polygon version to generate a normal map for my low polygon character. To do that with the Doom Engine's renderbump, how should I go about it? What should the code look like?

I am really thankful for any help.



MichaelZee@Posted: Mon Jun 26, 2006 3:23 am :
Alright I need help big time!!!

I'm trying all I can to generate a normal map but it just never comes out how I want it to. I was able to get melody (a normal map generater problem by nvidia) to respect my uvw map coordinets but no mather what I cant get it to where my nromal map sits in well with my character. It just seems absolutly impossble to make a high polygon generated normal map for a character, its an complete mystery to me how id coudeve made theres so well.

So far I have been trying Melody and 3DS Max 8 and I have realized from that of my experience that it is best to seperate objects that are on your character becuase if you dont it will interfear with the cage. For example, the side packs of my character's belt was in the way of the belt area so I would get bad results. Even though with that method in mind I still get bad edging and some undisirable resaults as you can see with a piece of the character included in the picture (Please See Picture--This map was generated in max).
Image

The bad edging is common throughout my normal map and some resualts are not what I am looking for, I beleive it has to do with the cage.

Please Please Please help, Im getting desperate! :cry:



rich_is_bored@Posted: Mon Jun 26, 2006 4:43 am :
It's really hard to tell what your problem is because all we have to look at are the resulting normal maps.

But it's impossible to gauge how your normal maps should have turned out because we've never seen the models you're using to generate them.

The only thing I can comment on is the "bad edges". If you look closely at that area you'll see that the circle in fact is well defined. It's just the surrounding border of pixels which is stretched out a bit.

Without seeing your UV map I can't say for certain but this may not even be an issue. Most programs that render out a normal map draw outside the bounds of each UV group a set number of pixels.

The idea is much the same as traditional texturing in that you want to paint around the bounds of the UV map. For instance, if you painted a diffuse map on a white image and stayed within the bounds, you'd have white areas around all the UV seams.



MichaelZee@Posted: Tue Jun 27, 2006 1:49 am :
Thank you for the information. To make the situation more clear I took some screenshots

Heres the UV map for the character

Image

Here is the best normal map I have generated with melody so far. I took off some pieces of the character because of projection problems so I'd would do them individually but here is the body and head of the chracters normal map. The shoe part is on the right middle.

Image

With this current normal map I am having problems with various parts like the bottom bevel of the shoe. Here is a picture of the shoe of my highpoly character model.

Image

Yet in the low poly character I get problems like this when I apply the normal map and I dont know how to prevent them.

Image

I hope I made this more clear, I just get random problems like were seeing in the boot bevel. I did noticed however the color coordination in that area is kind of messy but I dont know how to fix it. Any idea on what I may be doing wrong? If you need more pictures I can send them over via email. The help so far is really apprecatied :D



rich_is_bored@Posted: Tue Jun 27, 2006 5:00 am :
Is this character for a Doom 3 engine game? If so, your normal map should be rendered in tangent space. The normal map you've posted appears to be rendered in object space.

And yes, it's pretty common to have to break the model into pieces, render them all individually, and composite the resulting normal maps in post.

Also, if the screenshot of that boot is any indication as to how dense a mesh your using for your high poly character, I'd say you could up the polycount there considerably.

I realize that you're trying to preserve hard edges but I'd turn that high poly model into a subdivision surface and use edge loops to preserve the hard edges. You can always apply the subdivision to the mesh at a later state to end up with polygons which you can then render a normal map with.

I wonder, have you tried rendering normal maps for simple primatives yet? You know, just to get a feel for the workflow you'll need to follow given the applications you are using. Things like what file formats you'll need to utilize, ect...

I suggest you put your character on the back burner for a bit and try rendering a normal map using a high and low poly sphere. Just start with something simple. No hard edges. Just a low and high poly sphere.



parsonsbear@Posted: Wed Jun 28, 2006 12:54 am :
Like I said before, you should follow the instructions at idDevnet. They really did an underappreciated job with that site, it's very good- much better than most tutorials for any system in fact.

http://www.iddevnet.com/quake4/ArtRefer ... tingModels

Also, the introductory text on normalmaps by JCarmack is a good read too:
http://www.iddevnet.com/doom3/bumpmaps.php

I've used melody before, and I ran into the same problem- I'm much happier now that I follow the id system.



der_ton@Posted: Wed Jun 28, 2006 10:42 pm :
On a side-note, your uv-mapping is not very suitable for normalmapping. Here is a quote from the iddevnet-article on bumpmapping, linked above by parsonsbear:

Quote:
The lowPolyModel must have texture coordinates on it, and care should be taken to make sure the mapping is as good as possible. Before doing a RenderBump, test the model in the game with "r_showTexturePolarity 1" and "r_showEdges 1". Make sure that there aren’t any texture seams that aren’t absolutely necessary, and that there are no overlapped texture projections.


The texture seams look bad ingame, and they even affect rendering performance negatively, because a vertex on a seam has to be duplicated into two vertices for the rendering.



MichaelZee@Posted: Thu Jun 29, 2006 11:23 pm :
thanks for the information and help guys.

rich_is_bored: Thanks for the help, I changed my other normal maps to now be tangent space and I practiced on some more simplier objects; helped me out well to get more of the feel like you said.

Parsonsbear: Thank you for the links. With what you provided I am learning how to do it id's way (currently with the quake 4 link). Everything is going pretty well so far but I ran into one problem. On step 4 they use lightwave which makes it hard for me to understand becuase I use 3dsmax8. I am not sure if you use lightwave yourself but if you know how to do this part with 3dsmax 8 that would be a gigantic help.

der_ton: Thanks for the side note but I am going to take my chances with this Uv set up for now. If it doesent look good or performance is hoged then I'll just have to re-Uv map it. But how should this Uv map look to be more suitable?



parsonsbear@Posted: Fri Jun 30, 2006 6:48 am :
well, it's hard to say because it's directly related to the file format that you load into quake4. Basically, they look at the shader name that's assigned to the poly's of the low poly model to find the doom3 material that's going to be used in-game (and also can contain your renderbump options)

If you export as 3dsmax .ase files, you're in for a world of hurt, but feel free to search around here and modwiki.net for info on the process. (AFAIK) it involves opening the .ase files in a text editor and manually changing the material names to the d3 shader name.



MichaelZee@Posted: Fri Jun 30, 2006 8:06 pm :
parsonsbear wrote:
well, it's hard to say because it's directly related to the file format that you load into quake4. Basically, they look at the shader name that's assigned to the poly's of the low poly model to find the doom3 material that's going to be used in-game (and also can contain your renderbump options)

If you export as 3dsmax .ase files, you're in for a world of hurt, but feel free to search around here and modwiki.net for info on the process. (AFAIK) it involves opening the .ase files in a text editor and manually changing the material names to the d3 shader name.


Ok, on a video tutorial by Brain Trepaning on developing your own static meshes for doom3, I remember him going inside the .ase file using the text editor and changing the shader name. Perhaps he would know how this is done but another thing is that I plan on making an animation model. If I recall, .ase are good for static models but I would want to do an md5mesh, or does it not matter since after all I am going to just be redering a bumpmap with the two models for now?

So would the shader on the low poly character model be the _d map of your character and is the shader put on to your character as if your assigning the low poly model a texture or just naming the mesh the path name of the shader? I'm sorry I don't quite get the process yet, I have made characters for unreal but this is diffenant.



rich_is_bored@Posted: Sat Jul 01, 2006 5:29 am :
As long as the UV maps are the same for both the ASE and MD5mesh, it won't matter which model you use for rendering a normal map.



MichaelZee@Posted: Sat Jul 01, 2006 8:43 pm :
Ok.

I am attempting to just render the normal map out to at least get the feel how this way works. I am on part 5 where you render out the normal map. Here is my mtr file for what i am going to render.

Code:
//----------------------------Faction_Grunt---MatierialCode-----------------------------------------------

models/faction_enemies/Faction_Grunt_Body_Low

{
        noselfShadow
        unsmoothedtangents

renderbump
-size 1024 1024
-trace .05
-aa 2
-mergehigh

textures/faction_enemies/Faction_Grunt_local.tga

models/faction_enemies/Faction_Grunt_Body_High.ASE


diffusemap              textures/faction_enemies/Faction_Grunt_d.tga
bumpmap addnormals ( textures/faction_enemies/Faction_Grunt_local.tga, heightmap ( textures/faction_enemies/Faction_Grunt_h.tga, 1 ) )

}


On command prompt I can get it to work. I dont think I am intreprating iddevnet's directions correctly.

Image

Whenever I compile this I get dialog saying ....
Code:
< was unexpected at this time


What am I doing wrong here?

UPDATE: I just delleted all the < simbles and it launched me up into the quake4 menu in window mode. I also got rid of the ] [ simbols and it is still taking me to the main menu. I am not sure what is suppose to happen next but how come rendering of the normal map isent happening?



MichaelZee@Posted: Fri Jun 23, 2006 8:17 am :
Hello :)

With the character models such as the Doom Marines in green, how did id go about making there entire normal map? Did they import their whole low poly models into zbrush and skulped them there? I am having a hard time trying to preserve hard edges for my models in Zbrush that I designated in max :( . In resault, it seems almost impossible to create various armor types yet I see id's armored characters such as the doom marines and I really wonder how did id make there normal maps for them with zbrush(especially there armor). Does anyone know how they went about doing it? The information would really help me out big time

Thanks :)



Rayne@Posted: Fri Jun 23, 2006 10:54 am :
Id made only few characters out of Zbrush for vanilla DooM3. As Kenneth Scott said they used Zbrush for sculpting new monsters for the expantion pack RoE... Techy parts such weapons, armors etc are modelled in maya/lightwave



MichaelZee@Posted: Fri Jun 23, 2006 8:26 pm :
hmm, so more than likely with the doom marines they just made a high poly model in their 3d package. Did they use a third party program to generate the normal map? I'm trying to use max's but its proving to be pretty challanging in attempt to get the cage working and then getting the normal map; so far I havent been able to get desirable reaults.

EDIT:

I currently found a nvidia software called melody that does the job. I am having a problem with it though, when ever I generate a normal map it doesnt respect the uvw map I made and comes out all in peices. Any ideas or suggestions to another software for that matter? Help is really appreacited :)



parsonsbear@Posted: Sat Jun 24, 2006 2:19 am :
Doom3 actually has one of the best highpoly-lowpoly normalmap transfers available. Do some searches for renderbump, or look in the art reference at quake4/iddevnet.



MichaelZee@Posted: Sat Jun 24, 2006 4:42 am :
Ok, by reading through several differant sources I have found out like parsonbear had mentioned, a built in renderbump system in doom3. This is my siutation:

I have a low polygon character and a high polygon version of that character. I would like to use the high polygon version to generate a normal map for my low polygon character. To do that with the Doom Engine's renderbump, how should I go about it? What should the code look like?

I am really thankful for any help.



MichaelZee@Posted: Mon Jun 26, 2006 3:23 am :
Alright I need help big time!!!

I'm trying all I can to generate a normal map but it just never comes out how I want it to. I was able to get melody (a normal map generater problem by nvidia) to respect my uvw map coordinets but no mather what I cant get it to where my nromal map sits in well with my character. It just seems absolutly impossble to make a high polygon generated normal map for a character, its an complete mystery to me how id coudeve made theres so well.

So far I have been trying Melody and 3DS Max 8 and I have realized from that of my experience that it is best to seperate objects that are on your character becuase if you dont it will interfear with the cage. For example, the side packs of my character's belt was in the way of the belt area so I would get bad results. Even though with that method in mind I still get bad edging and some undisirable resaults as you can see with a piece of the character included in the picture (Please See Picture--This map was generated in max).
Image

The bad edging is common throughout my normal map and some resualts are not what I am looking for, I beleive it has to do with the cage.

Please Please Please help, Im getting desperate! :cry:



rich_is_bored@Posted: Mon Jun 26, 2006 4:43 am :
It's really hard to tell what your problem is because all we have to look at are the resulting normal maps.

But it's impossible to gauge how your normal maps should have turned out because we've never seen the models you're using to generate them.

The only thing I can comment on is the "bad edges". If you look closely at that area you'll see that the circle in fact is well defined. It's just the surrounding border of pixels which is stretched out a bit.

Without seeing your UV map I can't say for certain but this may not even be an issue. Most programs that render out a normal map draw outside the bounds of each UV group a set number of pixels.

The idea is much the same as traditional texturing in that you want to paint around the bounds of the UV map. For instance, if you painted a diffuse map on a white image and stayed within the bounds, you'd have white areas around all the UV seams.



MichaelZee@Posted: Tue Jun 27, 2006 1:49 am :
Thank you for the information. To make the situation more clear I took some screenshots

Heres the UV map for the character

Image

Here is the best normal map I have generated with melody so far. I took off some pieces of the character because of projection problems so I'd would do them individually but here is the body and head of the chracters normal map. The shoe part is on the right middle.

Image

With this current normal map I am having problems with various parts like the bottom bevel of the shoe. Here is a picture of the shoe of my highpoly character model.

Image

Yet in the low poly character I get problems like this when I apply the normal map and I dont know how to prevent them.

Image

I hope I made this more clear, I just get random problems like were seeing in the boot bevel. I did noticed however the color coordination in that area is kind of messy but I dont know how to fix it. Any idea on what I may be doing wrong? If you need more pictures I can send them over via email. The help so far is really apprecatied :D



rich_is_bored@Posted: Tue Jun 27, 2006 5:00 am :
Is this character for a Doom 3 engine game? If so, your normal map should be rendered in tangent space. The normal map you've posted appears to be rendered in object space.

And yes, it's pretty common to have to break the model into pieces, render them all individually, and composite the resulting normal maps in post.

Also, if the screenshot of that boot is any indication as to how dense a mesh your using for your high poly character, I'd say you could up the polycount there considerably.

I realize that you're trying to preserve hard edges but I'd turn that high poly model into a subdivision surface and use edge loops to preserve the hard edges. You can always apply the subdivision to the mesh at a later state to end up with polygons which you can then render a normal map with.

I wonder, have you tried rendering normal maps for simple primatives yet? You know, just to get a feel for the workflow you'll need to follow given the applications you are using. Things like what file formats you'll need to utilize, ect...

I suggest you put your character on the back burner for a bit and try rendering a normal map using a high and low poly sphere. Just start with something simple. No hard edges. Just a low and high poly sphere.



parsonsbear@Posted: Wed Jun 28, 2006 12:54 am :
Like I said before, you should follow the instructions at idDevnet. They really did an underappreciated job with that site, it's very good- much better than most tutorials for any system in fact.

http://www.iddevnet.com/quake4/ArtRefer ... tingModels

Also, the introductory text on normalmaps by JCarmack is a good read too:
http://www.iddevnet.com/doom3/bumpmaps.php

I've used melody before, and I ran into the same problem- I'm much happier now that I follow the id system.



der_ton@Posted: Wed Jun 28, 2006 10:42 pm :
On a side-note, your uv-mapping is not very suitable for normalmapping. Here is a quote from the iddevnet-article on bumpmapping, linked above by parsonsbear:

Quote:
The lowPolyModel must have texture coordinates on it, and care should be taken to make sure the mapping is as good as possible. Before doing a RenderBump, test the model in the game with "r_showTexturePolarity 1" and "r_showEdges 1". Make sure that there aren’t any texture seams that aren’t absolutely necessary, and that there are no overlapped texture projections.


The texture seams look bad ingame, and they even affect rendering performance negatively, because a vertex on a seam has to be duplicated into two vertices for the rendering.



MichaelZee@Posted: Thu Jun 29, 2006 11:23 pm :
thanks for the information and help guys.

rich_is_bored: Thanks for the help, I changed my other normal maps to now be tangent space and I practiced on some more simplier objects; helped me out well to get more of the feel like you said.

Parsonsbear: Thank you for the links. With what you provided I am learning how to do it id's way (currently with the quake 4 link). Everything is going pretty well so far but I ran into one problem. On step 4 they use lightwave which makes it hard for me to understand becuase I use 3dsmax8. I am not sure if you use lightwave yourself but if you know how to do this part with 3dsmax 8 that would be a gigantic help.

der_ton: Thanks for the side note but I am going to take my chances with this Uv set up for now. If it doesent look good or performance is hoged then I'll just have to re-Uv map it. But how should this Uv map look to be more suitable?



parsonsbear@Posted: Fri Jun 30, 2006 6:48 am :
well, it's hard to say because it's directly related to the file format that you load into quake4. Basically, they look at the shader name that's assigned to the poly's of the low poly model to find the doom3 material that's going to be used in-game (and also can contain your renderbump options)

If you export as 3dsmax .ase files, you're in for a world of hurt, but feel free to search around here and modwiki.net for info on the process. (AFAIK) it involves opening the .ase files in a text editor and manually changing the material names to the d3 shader name.



MichaelZee@Posted: Fri Jun 30, 2006 8:06 pm :
parsonsbear wrote:
well, it's hard to say because it's directly related to the file format that you load into quake4. Basically, they look at the shader name that's assigned to the poly's of the low poly model to find the doom3 material that's going to be used in-game (and also can contain your renderbump options)

If you export as 3dsmax .ase files, you're in for a world of hurt, but feel free to search around here and modwiki.net for info on the process. (AFAIK) it involves opening the .ase files in a text editor and manually changing the material names to the d3 shader name.


Ok, on a video tutorial by Brain Trepaning on developing your own static meshes for doom3, I remember him going inside the .ase file using the text editor and changing the shader name. Perhaps he would know how this is done but another thing is that I plan on making an animation model. If I recall, .ase are good for static models but I would want to do an md5mesh, or does it not matter since after all I am going to just be redering a bumpmap with the two models for now?

So would the shader on the low poly character model be the _d map of your character and is the shader put on to your character as if your assigning the low poly model a texture or just naming the mesh the path name of the shader? I'm sorry I don't quite get the process yet, I have made characters for unreal but this is diffenant.



rich_is_bored@Posted: Sat Jul 01, 2006 5:29 am :
As long as the UV maps are the same for both the ASE and MD5mesh, it won't matter which model you use for rendering a normal map.



MichaelZee@Posted: Sat Jul 01, 2006 8:43 pm :
Ok.

I am attempting to just render the normal map out to at least get the feel how this way works. I am on part 5 where you render out the normal map. Here is my mtr file for what i am going to render.

Code:
//----------------------------Faction_Grunt---MatierialCode-----------------------------------------------

models/faction_enemies/Faction_Grunt_Body_Low

{
        noselfShadow
        unsmoothedtangents

renderbump
-size 1024 1024
-trace .05
-aa 2
-mergehigh

textures/faction_enemies/Faction_Grunt_local.tga

models/faction_enemies/Faction_Grunt_Body_High.ASE


diffusemap              textures/faction_enemies/Faction_Grunt_d.tga
bumpmap addnormals ( textures/faction_enemies/Faction_Grunt_local.tga, heightmap ( textures/faction_enemies/Faction_Grunt_h.tga, 1 ) )

}


On command prompt I can get it to work. I dont think I am intreprating iddevnet's directions correctly.

Image

Whenever I compile this I get dialog saying ....
Code:
< was unexpected at this time


What am I doing wrong here?

UPDATE: I just delleted all the < simbles and it launched me up into the quake4 menu in window mode. I also got rid of the ] [ simbols and it is still taking me to the main menu. I am not sure what is suppose to happen next but how come rendering of the normal map isent happening?



MichaelZee@Posted: Fri Jun 23, 2006 8:17 am    Post subject: How did id do it with zbrush?: Hello Smile

With the character models such as the Doom Marines in green, how did id go about making there entire normal map? Did they import their whole low poly models into zbrush and skulped them there? I am having a hard time trying to preserve hard edges for my models in Zbrush that I designated in max Sad . In resault, it seems almost impossible to create various armor types yet I see id's armored characters such as the doom marines and I really wonder how did id make there normal maps for them with zbrush(especially there armor). Does anyone know how they went about doing it? The information would really help me out big time

Thanks Smile
_________________
Immortality, eternal youth is within reach and is on its way soon! Please pass the message along and make a donation to the mouse prize to help the development to the cure to aging. The website at http://www.mprize.org/index.php?pagename=whatisthemf



Rayne@Posted: Fri Jun 23, 2006 10:54 am    Post subject: : Id made only few characters out of Zbrush for vanilla DooM3. As Kenneth Scott said they used Zbrush for sculpting new monsters for the expantion pack RoE... Techy parts such weapons, armors etc are modelled in maya/lightwave
_________________
theRev is coming...



MichaelZee@Posted: Fri Jun 23, 2006 8:26 pm    Post subject: : hmm, so more than likely with the doom marines they just made a high poly model in their 3d package. Did they use a third party program to generate the normal map? I'm trying to use max's but its proving to be pretty challanging in attempt to get the cage working and then getting the normal map; so far I havent been able to get desirable reaults.

EDIT:

I currently found a nvidia software called melody that does the job. I am having a problem with it though, when ever I generate a normal map it doesnt respect the uvw map I made and comes out all in peices. Any ideas or suggestions to another software for that matter? Help is really appreacited Smile
_________________
Immortality, eternal youth is within reach and is on its way soon! Please pass the message along and make a donation to the mouse prize to help the development to the cure to aging. The website at http://www.mprize.org/index.php?pagename=whatisthemf



parsonsbear@Posted: Sat Jun 24, 2006 2:19 am    Post subject: : Doom3 actually has one of the best highpoly-lowpoly normalmap transfers available. Do some searches for renderbump, or look in the art reference at quake4/iddevnet.


MichaelZee@Posted: Sat Jun 24, 2006 4:42 am    Post subject: : Ok, by reading through several differant sources I have found out like parsonbear had mentioned, a built in renderbump system in doom3. This is my siutation:

I have a low polygon character and a high polygon version of that character. I would like to use the high polygon version to generate a normal map for my low polygon character. To do that with the Doom Engine's renderbump, how should I go about it? What should the code look like?

I am really thankful for any help.
_________________
Immortality, eternal youth is within reach and is on its way soon! Please pass the message along and make a donation to the mouse prize to help the development to the cure to aging. The website at http://www.mprize.org/index.php?pagename=whatisthemf



MichaelZee@Posted: Mon Jun 26, 2006 3:23 am    Post subject: : Alright I need help big time!!!

I'm trying all I can to generate a normal map but it just never comes out how I want it to. I was able to get melody (a normal map generater problem by nvidia) to respect my uvw map coordinets but no mather what I cant get it to where my nromal map sits in well with my character. It just seems absolutly impossble to make a high polygon generated normal map for a character, its an complete mystery to me how id coudeve made theres so well.

So far I have been trying Melody and 3DS Max 8 and I have realized from that of my experience that it is best to seperate objects that are on your character becuase if you dont it will interfear with the cage. For example, the side packs of my character's belt was in the way of the belt area so I would get bad results. Even though with that method in mind I still get bad edging and some undisirable resaults as you can see with a piece of the character included in the picture (Please See Picture--This map was generated in max).


The bad edging is common throughout my normal map and some resualts are not what I am looking for, I beleive it has to do with the cage.

Please Please Please help, Im getting desperate! Crying or Very sad
_________________
Immortality, eternal youth is within reach and is on its way soon! Please pass the message along and make a donation to the mouse prize to help the development to the cure to aging. The website at http://www.mprize.org/index.php?pagename=whatisthemf



rich_is_bored@Posted: Mon Jun 26, 2006 4:43 am    Post subject: : It's really hard to tell what your problem is because all we have to look at are the resulting normal maps.

But it's impossible to gauge how your normal maps should have turned out because we've never seen the models you're using to generate them.

The only thing I can comment on is the "bad edges". If you look closely at that area you'll see that the circle in fact is well defined. It's just the surrounding border of pixels which is stretched out a bit.

Without seeing your UV map I can't say for certain but this may not even be an issue. Most programs that render out a normal map draw outside the bounds of each UV group a set number of pixels.

The idea is much the same as traditional texturing in that you want to paint around the bounds of the UV map. For instance, if you painted a diffuse map on a white image and stayed within the bounds, you'd have white areas around all the UV seams.
_________________
Staff
Learn something today? Why not write an article about it on modwiki.net?



MichaelZee@Posted: Tue Jun 27, 2006 1:49 am    Post subject: : Thank you for the information. To make the situation more clear I took some screenshots

Heres the UV map for the character



Here is the best normal map I have generated with melody so far. I took off some pieces of the character because of projection problems so I'd would do them individually but here is the body and head of the chracters normal map. The shoe part is on the right middle.



With this current normal map I am having problems with various parts like the bottom bevel of the shoe. Here is a picture of the shoe of my highpoly character model.



Yet in the low poly character I get problems like this when I apply the normal map and I dont know how to prevent them.



I hope I made this more clear, I just get random problems like were seeing in the boot bevel. I did noticed however the color coordination in that area is kind of messy but I dont know how to fix it. Any idea on what I may be doing wrong? If you need more pictures I can send them over via email. The help so far is really apprecatied Very Happy
_________________
Immortality, eternal youth is within reach and is on its way soon! Please pass the message along and make a donation to the mouse prize to help the development to the cure to aging. The website at http://www.mprize.org/index.php?pagename=whatisthemf



rich_is_bored@Posted: Tue Jun 27, 2006 5:00 am    Post subject: : Is this character for a Doom 3 engine game? If so, your normal map should be rendered in tangent space. The normal map you've posted appears to be rendered in object space.

And yes, it's pretty common to have to break the model into pieces, render them all individually, and composite the resulting normal maps in post.

Also, if the screenshot of that boot is any indication as to how dense a mesh your using for your high poly character, I'd say you could up the polycount there considerably.

I realize that you're trying to preserve hard edges but I'd turn that high poly model into a subdivision surface and use edge loops to preserve the hard edges. You can always apply the subdivision to the mesh at a later state to end up with polygons which you can then render a normal map with.

I wonder, have you tried rendering normal maps for simple primatives yet? You know, just to get a feel for the workflow you'll need to follow given the applications you are using. Things like what file formats you'll need to utilize, ect...

I suggest you put your character on the back burner for a bit and try rendering a normal map using a high and low poly sphere. Just start with something simple. No hard edges. Just a low and high poly sphere.
_________________
Staff
Learn something today? Why not write an article about it on modwiki.net?



parsonsbear@Posted: Wed Jun 28, 2006 12:54 am    Post subject: : Like I said before, you should follow the instructions at idDevnet. They really did an underappreciated job with that site, it's very good- much better than most tutorials for any system in fact.

http://www.iddevnet.com/quake4/ArtReference_CreatingModels

Also, the introductory text on normalmaps by JCarmack is a good read too:
http://www.iddevnet.com/doom3/bumpmaps.php

I've used melody before, and I ran into the same problem- I'm much happier now that I follow the id system.



der_ton@Posted: Wed Jun 28, 2006 10:42 pm    Post subject: : On a side-note, your uv-mapping is not very suitable for normalmapping. Here is a quote from the iddevnet-article on bumpmapping, linked above by parsonsbear:

Quote:
The lowPolyModel must have texture coordinates on it, and care should be taken to make sure the mapping is as good as possible. Before doing a RenderBump, test the model in the game with "r_showTexturePolarity 1" and "r_showEdges 1". Make sure that there arenÂ’t any texture seams that arenÂ’t absolutely necessary, and that there are no overlapped texture projections.


The texture seams look bad ingame, and they even affect rendering performance negatively, because a vertex on a seam has to be duplicated into two vertices for the rendering.
_________________
Staff
Modelviewer | 3DSMax<->MD5 | Blender<->MD5



MichaelZee@Posted: Thu Jun 29, 2006 11:23 pm    Post subject: : thanks for the information and help guys.

rich_is_bored: Thanks for the help, I changed my other normal maps to now be tangent space and I practiced on some more simplier objects; helped me out well to get more of the feel like you said.

Parsonsbear: Thank you for the links. With what you provided I am learning how to do it id's way (currently with the quake 4 link). Everything is going pretty well so far but I ran into one problem. On step 4 they use lightwave which makes it hard for me to understand



MichaelZee@Posted: Fri Jun 23, 2006 8:17 am :
Hello :)

With the character models such as the Doom Marines in green, how did id go about making there entire normal map? Did they import their whole low poly models into zbrush and skulped them there? I am having a hard time trying to preserve hard edges for my models in Zbrush that I designated in max :( . In resault, it seems almost impossible to create various armor types yet I see id's armored characters such as the doom marines and I really wonder how did id make there normal maps for them with zbrush(especially there armor). Does anyone know how they went about doing it? The information would really help me out big time

Thanks :)



Rayne@Posted: Fri Jun 23, 2006 10:54 am :
Id made only few characters out of Zbrush for vanilla DooM3. As Kenneth Scott said they used Zbrush for sculpting new monsters for the expantion pack RoE... Techy parts such weapons, armors etc are modelled in maya/lightwave



MichaelZee@Posted: Fri Jun 23, 2006 8:26 pm :
hmm, so more than likely with the doom marines they just made a high poly model in their 3d package. Did they use a third party program to generate the normal map? I'm trying to use max's but its proving to be pretty challanging in attempt to get the cage working and then getting the normal map; so far I havent been able to get desirable reaults.

EDIT:

I currently found a nvidia software called melody that does the job. I am having a problem with it though, when ever I generate a normal map it doesnt respect the uvw map I made and comes out all in peices. Any ideas or suggestions to another software for that matter? Help is really appreacited :)



parsonsbear@Posted: Sat Jun 24, 2006 2:19 am :
Doom3 actually has one of the best highpoly-lowpoly normalmap transfers available. Do some searches for renderbump, or look in the art reference at quake4/iddevnet.



MichaelZee@Posted: Sat Jun 24, 2006 4:42 am :
Ok, by reading through several differant sources I have found out like parsonbear had mentioned, a built in renderbump system in doom3. This is my siutation:

I have a low polygon character and a high polygon version of that character. I would like to use the high polygon version to generate a normal map for my low polygon character. To do that with the Doom Engine's renderbump, how should I go about it? What should the code look like?

I am really thankful for any help.



MichaelZee@Posted: Mon Jun 26, 2006 3:23 am :
Alright I need help big time!!!

I'm trying all I can to generate a normal map but it just never comes out how I want it to. I was able to get melody (a normal map generater problem by nvidia) to respect my uvw map coordinets but no mather what I cant get it to where my nromal map sits in well with my character. It just seems absolutly impossble to make a high polygon generated normal map for a character, its an complete mystery to me how id coudeve made theres so well.

So far I have been trying Melody and 3DS Max 8 and I have realized from that of my experience that it is best to seperate objects that are on your character becuase if you dont it will interfear with the cage. For example, the side packs of my character's belt was in the way of the belt area so I would get bad results. Even though with that method in mind I still get bad edging and some undisirable resaults as you can see with a piece of the character included in the picture (Please See Picture--This map was generated in max).
Image

The bad edging is common throughout my normal map and some resualts are not what I am looking for, I beleive it has to do with the cage.

Please Please Please help, Im getting desperate! :cry:



rich_is_bored@Posted: Mon Jun 26, 2006 4:43 am :
It's really hard to tell what your problem is because all we have to look at are the resulting normal maps.

But it's impossible to gauge how your normal maps should have turned out because we've never seen the models you're using to generate them.

The only thing I can comment on is the "bad edges". If you look closely at that area you'll see that the circle in fact is well defined. It's just the surrounding border of pixels which is stretched out a bit.

Without seeing your UV map I can't say for certain but this may not even be an issue. Most programs that render out a normal map draw outside the bounds of each UV group a set number of pixels.

The idea is much the same as traditional texturing in that you want to paint around the bounds of the UV map. For instance, if you painted a diffuse map on a white image and stayed within the bounds, you'd have white areas around all the UV seams.



MichaelZee@Posted: Tue Jun 27, 2006 1:49 am :
Thank you for the information. To make the situation more clear I took some screenshots

Heres the UV map for the character

Image

Here is the best normal map I have generated with melody so far. I took off some pieces of the character because of projection problems so I'd would do them individually but here is the body and head of the chracters normal map. The shoe part is on the right middle.

Image

With this current normal map I am having problems with various parts like the bottom bevel of the shoe. Here is a picture of the shoe of my highpoly character model.

Image

Yet in the low poly character I get problems like this when I apply the normal map and I dont know how to prevent them.

Image

I hope I made this more clear, I just get random problems like were seeing in the boot bevel. I did noticed however the color coordination in that area is kind of messy but I dont know how to fix it. Any idea on what I may be doing wrong? If you need more pictures I can send them over via email. The help so far is really apprecatied :D



rich_is_bored@Posted: Tue Jun 27, 2006 5:00 am :
Is this character for a Doom 3 engine game? If so, your normal map should be rendered in tangent space. The normal map you've posted appears to be rendered in object space.

And yes, it's pretty common to have to break the model into pieces, render them all individually, and composite the resulting normal maps in post.

Also, if the screenshot of that boot is any indication as to how dense a mesh your using for your high poly character, I'd say you could up the polycount there considerably.

I realize that you're trying to preserve hard edges but I'd turn that high poly model into a subdivision surface and use edge loops to preserve the hard edges. You can always apply the subdivision to the mesh at a later state to end up with polygons which you can then render a normal map with.

I wonder, have you tried rendering normal maps for simple primatives yet? You know, just to get a feel for the workflow you'll need to follow given the applications you are using. Things like what file formats you'll need to utilize, ect...

I suggest you put your character on the back burner for a bit and try rendering a normal map using a high and low poly sphere. Just start with something simple. No hard edges. Just a low and high poly sphere.



parsonsbear@Posted: Wed Jun 28, 2006 12:54 am :
Like I said before, you should follow the instructions at idDevnet. They really did an underappreciated job with that site, it's very good- much better than most tutorials for any system in fact.

http://www.iddevnet.com/quake4/ArtRefer ... tingModels

Also, the introductory text on normalmaps by JCarmack is a good read too:
http://www.iddevnet.com/doom3/bumpmaps.php

I've used melody before, and I ran into the same problem- I'm much happier now that I follow the id system.



der_ton@Posted: Wed Jun 28, 2006 10:42 pm :
On a side-note, your uv-mapping is not very suitable for normalmapping. Here is a quote from the iddevnet-article on bumpmapping, linked above by parsonsbear:

Quote:
The lowPolyModel must have texture coordinates on it, and care should be taken to make sure the mapping is as good as possible. Before doing a RenderBump, test the model in the game with "r_showTexturePolarity 1" and "r_showEdges 1". Make sure that there aren’t any texture seams that aren’t absolutely necessary, and that there are no overlapped texture projections.


The texture seams look bad ingame, and they even affect rendering performance negatively, because a vertex on a seam has to be duplicated into two vertices for the rendering.



MichaelZee@Posted: Thu Jun 29, 2006 11:23 pm :
thanks for the information and help guys.

rich_is_bored: Thanks for the help, I changed my other normal maps to now be tangent space and I practiced on some more simplier objects; helped me out well to get more of the feel like you said.

Parsonsbear: Thank you for the links. With what you provided I am learning how to do it id's way (currently with the quake 4 link). Everything is going pretty well so far but I ran into one problem. On step 4 they use lightwave which makes it hard for me to understand becuase I use 3dsmax8. I am not sure if you use lightwave yourself but if you know how to do this part with 3dsmax 8 that would be a gigantic help.

der_ton: Thanks for the side note but I am going to take my chances with this Uv set up for now. If it doesent look good or performance is hoged then I'll just have to re-Uv map it. But how should this Uv map look to be more suitable?



parsonsbear@Posted: Fri Jun 30, 2006 6:48 am :
well, it's hard to say because it's directly related to the file format that you load into quake4. Basically, they look at the shader name that's assigned to the poly's of the low poly model to find the doom3 material that's going to be used in-game (and also can contain your renderbump options)

If you export as 3dsmax .ase files, you're in for a world of hurt, but feel free to search around here and modwiki.net for info on the process. (AFAIK) it involves opening the .ase files in a text editor and manually changing the material names to the d3 shader name.



MichaelZee@Posted: Fri Jun 30, 2006 8:06 pm :
parsonsbear wrote:
well, it's hard to say because it's directly related to the file format that you load into quake4. Basically, they look at the shader name that's assigned to the poly's of the low poly model to find the doom3 material that's going to be used in-game (and also can contain your renderbump options)

If you export as 3dsmax .ase files, you're in for a world of hurt, but feel free to search around here and modwiki.net for info on the process. (AFAIK) it involves opening the .ase files in a text editor and manually changing the material names to the d3 shader name.


Ok, on a video tutorial by Brain Trepaning on developing your own static meshes for doom3, I remember him going inside the .ase file using the text editor and changing the shader name. Perhaps he would know how this is done but another thing is that I plan on making an animation model. If I recall, .ase are good for static models but I would want to do an md5mesh, or does it not matter since after all I am going to just be redering a bumpmap with the two models for now?

So would the shader on the low poly character model be the _d map of your character and is the shader put on to your character as if your assigning the low poly model a texture or just naming the mesh the path name of the shader? I'm sorry I don't quite get the process yet, I have made characters for unreal but this is diffenant.



rich_is_bored@Posted: Sat Jul 01, 2006 5:29 am :
As long as the UV maps are the same for both the ASE and MD5mesh, it won't matter which model you use for rendering a normal map.



MichaelZee@Posted: Sat Jul 01, 2006 8:43 pm :
Ok.

I am attempting to just render the normal map out to at least get the feel how this way works. I am on part 5 where you render out the normal map. Here is my mtr file for what i am going to render.

Code:
//----------------------------Faction_Grunt---MatierialCode-----------------------------------------------

models/faction_enemies/Faction_Grunt_Body_Low

{
        noselfShadow
        unsmoothedtangents

renderbump
-size 1024 1024
-trace .05
-aa 2
-mergehigh

textures/faction_enemies/Faction_Grunt_local.tga

models/faction_enemies/Faction_Grunt_Body_High.ASE


diffusemap              textures/faction_enemies/Faction_Grunt_d.tga
bumpmap addnormals ( textures/faction_enemies/Faction_Grunt_local.tga, heightmap ( textures/faction_enemies/Faction_Grunt_h.tga, 1 ) )

}


On command prompt I can get it to work. I dont think I am intreprating iddevnet's directions correctly.

Image

Whenever I compile this I get dialog saying ....
Code:
< was unexpected at this time


What am I doing wrong here?

UPDATE: I just delleted all the < simbles and it launched me up into the quake4 menu in window mode. I also got rid of the ] [ simbols and it is still taking me to the main menu. I am not sure what is suppose to happen next but how come rendering of the normal map isent happening?



MichaelZee@Posted: Fri Jun 23, 2006 8:17 am :
Hello :)

With the character models such as the Doom Marines in green, how did id go about making there entire normal map? Did they import their whole low poly models into zbrush and skulped them there? I am having a hard time trying to preserve hard edges for my models in Zbrush that I designated in max :( . In resault, it seems almost impossible to create various armor types yet I see id's armored characters such as the doom marines and I really wonder how did id make there normal maps for them with zbrush(especially there armor). Does anyone know how they went about doing it? The information would really help me out big time

Thanks :)



Rayne@Posted: Fri Jun 23, 2006 10:54 am :
Id made only few characters out of Zbrush for vanilla DooM3. As Kenneth Scott said they used Zbrush for sculpting new monsters for the expantion pack RoE... Techy parts such weapons, armors etc are modelled in maya/lightwave



MichaelZee@Posted: Fri Jun 23, 2006 8:26 pm :
hmm, so more than likely with the doom marines they just made a high poly model in their 3d package. Did they use a third party program to generate the normal map? I'm trying to use max's but its proving to be pretty challanging in attempt to get the cage working and then getting the normal map; so far I havent been able to get desirable reaults.

EDIT:

I currently found a nvidia software called melody that does the job. I am having a problem with it though, when ever I generate a normal map it doesnt respect the uvw map I made and comes out all in peices. Any ideas or suggestions to another software for that matter? Help is really appreacited :)



parsonsbear@Posted: Sat Jun 24, 2006 2:19 am :
Doom3 actually has one of the best highpoly-lowpoly normalmap transfers available. Do some searches for renderbump, or look in the art reference at quake4/iddevnet.



MichaelZee@Posted: Sat Jun 24, 2006 4:42 am :
Ok, by reading through several differant sources I have found out like parsonbear had mentioned, a built in renderbump system in doom3. This is my siutation:

I have a low polygon character and a high polygon version of that character. I would like to use the high polygon version to generate a normal map for my low polygon character. To do that with the Doom Engine's renderbump, how should I go about it? What should the code look like?

I am really thankful for any help.



MichaelZee@Posted: Mon Jun 26, 2006 3:23 am :
Alright I need help big time!!!

I'm trying all I can to generate a normal map but it just never comes out how I want it to. I was able to get melody (a normal map generater problem by nvidia) to respect my uvw map coordinets but no mather what I cant get it to where my nromal map sits in well with my character. It just seems absolutly impossble to make a high polygon generated normal map for a character, its an complete mystery to me how id coudeve made theres so well.

So far I have been trying Melody and 3DS Max 8 and I have realized from that of my experience that it is best to seperate objects that are on your character becuase if you dont it will interfear with the cage. For example, the side packs of my character's belt was in the way of the belt area so I would get bad results. Even though with that method in mind I still get bad edging and some undisirable resaults as you can see with a piece of the character included in the picture (Please See Picture--This map was generated in max).
Image

The bad edging is common throughout my normal map and some resualts are not what I am looking for, I beleive it has to do with the cage.

Please Please Please help, Im getting desperate! :cry:



rich_is_bored@Posted: Mon Jun 26, 2006 4:43 am :
It's really hard to tell what your problem is because all we have to look at are the resulting normal maps.

But it's impossible to gauge how your normal maps should have turned out because we've never seen the models you're using to generate them.

The only thing I can comment on is the "bad edges". If you look closely at that area you'll see that the circle in fact is well defined. It's just the surrounding border of pixels which is stretched out a bit.

Without seeing your UV map I can't say for certain but this may not even be an issue. Most programs that render out a normal map draw outside the bounds of each UV group a set number of pixels.

The idea is much the same as traditional texturing in that you want to paint around the bounds of the UV map. For instance, if you painted a diffuse map on a white image and stayed within the bounds, you'd have white areas around all the UV seams.



MichaelZee@Posted: Tue Jun 27, 2006 1:49 am :
Thank you for the information. To make the situation more clear I took some screenshots

Heres the UV map for the character

Image

Here is the best normal map I have generated with melody so far. I took off some pieces of the character because of projection problems so I'd would do them individually but here is the body and head of the chracters normal map. The shoe part is on the right middle.

Image

With this current normal map I am having problems with various parts like the bottom bevel of the shoe. Here is a picture of the shoe of my highpoly character model.

Image

Yet in the low poly character I get problems like this when I apply the normal map and I dont know how to prevent them.

Image

I hope I made this more clear, I just get random problems like were seeing in the boot bevel. I did noticed however the color coordination in that area is kind of messy but I dont know how to fix it. Any idea on what I may be doing wrong? If you need more pictures I can send them over via email. The help so far is really apprecatied :D



rich_is_bored@Posted: Tue Jun 27, 2006 5:00 am :
Is this character for a Doom 3 engine game? If so, your normal map should be rendered in tangent space. The normal map you've posted appears to be rendered in object space.

And yes, it's pretty common to have to break the model into pieces, render them all individually, and composite the resulting normal maps in post.

Also, if the screenshot of that boot is any indication as to how dense a mesh your using for your high poly character, I'd say you could up the polycount there considerably.

I realize that you're trying to preserve hard edges but I'd turn that high poly model into a subdivision surface and use edge loops to preserve the hard edges. You can always apply the subdivision to the mesh at a later state to end up with polygons which you can then render a normal map with.

I wonder, have you tried rendering normal maps for simple primatives yet? You know, just to get a feel for the workflow you'll need to follow given the applications you are using. Things like what file formats you'll need to utilize, ect...

I suggest you put your character on the back burner for a bit and try rendering a normal map using a high and low poly sphere. Just start with something simple. No hard edges. Just a low and high poly sphere.



parsonsbear@Posted: Wed Jun 28, 2006 12:54 am :
Like I said before, you should follow the instructions at idDevnet. They really did an underappreciated job with that site, it's very good- much better than most tutorials for any system in fact.

http://www.iddevnet.com/quake4/ArtRefer ... tingModels

Also, the introductory text on normalmaps by JCarmack is a good read too:
http://www.iddevnet.com/doom3/bumpmaps.php

I've used melody before, and I ran into the same problem- I'm much happier now that I follow the id system.



der_ton@Posted: Wed Jun 28, 2006 10:42 pm :
On a side-note, your uv-mapping is not very suitable for normalmapping. Here is a quote from the iddevnet-article on bumpmapping, linked above by parsonsbear:

Quote:
The lowPolyModel must have texture coordinates on it, and care should be taken to make sure the mapping is as good as possible. Before doing a RenderBump, test the model in the game with "r_showTexturePolarity 1" and "r_showEdges 1". Make sure that there aren’t any texture seams that aren’t absolutely necessary, and that there are no overlapped texture projections.


The texture seams look bad ingame, and they even affect rendering performance negatively, because a vertex on a seam has to be duplicated into two vertices for the rendering.



MichaelZee@Posted: Thu Jun 29, 2006 11:23 pm :
thanks for the information and help guys.

rich_is_bored: Thanks for the help, I changed my other normal maps to now be tangent space and I practiced on some more simplier objects; helped me out well to get more of the feel like you said.

Parsonsbear: Thank you for the links. With what you provided I am learning how to do it id's way (currently with the quake 4 link). Everything is going pretty well so far but I ran into one problem. On step 4 they use lightwave which makes it hard for me to understand becuase I use 3dsmax8. I am not sure if you use lightwave yourself but if you know how to do this part with 3dsmax 8 that would be a gigantic help.

der_ton: Thanks for the side note but I am going to take my chances with this Uv set up for now. If it doesent look good or performance is hoged then I'll just have to re-Uv map it. But how should this Uv map look to be more suitable?



parsonsbear@Posted: Fri Jun 30, 2006 6:48 am :
well, it's hard to say because it's directly related to the file format that you load into quake4. Basically, they look at the shader name that's assigned to the poly's of the low poly model to find the doom3 material that's going to be used in-game (and also can contain your renderbump options)

If you export as 3dsmax .ase files, you're in for a world of hurt, but feel free to search around here and modwiki.net for info on the process. (AFAIK) it involves opening the .ase files in a text editor and manually changing the material names to the d3 shader name.



MichaelZee@Posted: Fri Jun 30, 2006 8:06 pm :
parsonsbear wrote:
well, it's hard to say because it's directly related to the file format that you load into quake4. Basically, they look at the shader name that's assigned to the poly's of the low poly model to find the doom3 material that's going to be used in-game (and also can contain your renderbump options)

If you export as 3dsmax .ase files, you're in for a world of hurt, but feel free to search around here and modwiki.net for info on the process. (AFAIK) it involves opening the .ase files in a text editor and manually changing the material names to the d3 shader name.


Ok, on a video tutorial by Brain Trepaning on developing your own static meshes for doom3, I remember him going inside the .ase file using the text editor and changing the shader name. Perhaps he would know how this is done but another thing is that I plan on making an animation model. If I recall, .ase are good for static models but I would want to do an md5mesh, or does it not matter since after all I am going to just be redering a bumpmap with the two models for now?

So would the shader on the low poly character model be the _d map of your character and is the shader put on to your character as if your assigning the low poly model a texture or just naming the mesh the path name of the shader? I'm sorry I don't quite get the process yet, I have made characters for unreal but this is diffenant.



rich_is_bored@Posted: Sat Jul 01, 2006 5:29 am :
As long as the UV maps are the same for both the ASE and MD5mesh, it won't matter which model you use for rendering a normal map.



MichaelZee@Posted: Sat Jul 01, 2006 8:43 pm :
Ok.

I am attempting to just render the normal map out to at least get the feel how this way works. I am on part 5 where you render out the normal map. Here is my mtr file for what i am going to render.

Code:
//----------------------------Faction_Grunt---MatierialCode-----------------------------------------------

models/faction_enemies/Faction_Grunt_Body_Low

{
        noselfShadow
        unsmoothedtangents

renderbump
-size 1024 1024
-trace .05
-aa 2
-mergehigh

textures/faction_enemies/Faction_Grunt_local.tga

models/faction_enemies/Faction_Grunt_Body_High.ASE


diffusemap              textures/faction_enemies/Faction_Grunt_d.tga
bumpmap addnormals ( textures/faction_enemies/Faction_Grunt_local.tga, heightmap ( textures/faction_enemies/Faction_Grunt_h.tga, 1 ) )

}


On command prompt I can get it to work. I dont think I am intreprating iddevnet's directions correctly.

Image

Whenever I compile this I get dialog saying ....
Code:
< was unexpected at this time


What am I doing wrong here?

UPDATE: I just delleted all the < simbles and it launched me up into the quake4 menu in window mode. I also got rid of the ] [ simbols and it is still taking me to the main menu. I am not sure what is suppose to happen next but how come rendering of the normal map isent happening?



MichaelZee@Posted: Fri Jun 23, 2006 8:17 am :
Hello :)

With the character models such as the Doom Marines in green, how did id go about making there entire normal map? Did they import their whole low poly models into zbrush and skulped them there? I am having a hard time trying to preserve hard edges for my models in Zbrush that I designated in max :( . In resault, it seems almost impossible to create various armor types yet I see id's armored characters such as the doom marines and I really wonder how did id make there normal maps for them with zbrush(especially there armor). Does anyone know how they went about doing it? The information would really help me out big time

Thanks :)



Rayne@Posted: Fri Jun 23, 2006 10:54 am :
Id made only few characters out of Zbrush for vanilla DooM3. As Kenneth Scott said they used Zbrush for sculpting new monsters for the expantion pack RoE... Techy parts such weapons, armors etc are modelled in maya/lightwave



MichaelZee@Posted: Fri Jun 23, 2006 8:26 pm :
hmm, so more than likely with the doom marines they just made a high poly model in their 3d package. Did they use a third party program to generate the normal map? I'm trying to use max's but its proving to be pretty challanging in attempt to get the cage working and then getting the normal map; so far I havent been able to get desirable reaults.

EDIT:

I currently found a nvidia software called melody that does the job. I am having a problem with it though, when ever I generate a normal map it doesnt respect the uvw map I made and comes out all in peices. Any ideas or suggestions to another software for that matter? Help is really appreacited :)



parsonsbear@Posted: Sat Jun 24, 2006 2:19 am :
Doom3 actually has one of the best highpoly-lowpoly normalmap transfers available. Do some searches for renderbump, or look in the art reference at quake4/iddevnet.



MichaelZee@Posted: Sat Jun 24, 2006 4:42 am :
Ok, by reading through several differant sources I have found out like parsonbear had mentioned, a built in renderbump system in doom3. This is my siutation:

I have a low polygon character and a high polygon version of that character. I would like to use the high polygon version to generate a normal map for my low polygon character. To do that with the Doom Engine's renderbump, how should I go about it? What should the code look like?

I am really thankful for any help.



MichaelZee@Posted: Mon Jun 26, 2006 3:23 am :
Alright I need help big time!!!

I'm trying all I can to generate a normal map but it just never comes out how I want it to. I was able to get melody (a normal map generater problem by nvidia) to respect my uvw map coordinets but no mather what I cant get it to where my nromal map sits in well with my character. It just seems absolutly impossble to make a high polygon generated normal map for a character, its an complete mystery to me how id coudeve made theres so well.

So far I have been trying Melody and 3DS Max 8 and I have realized from that of my experience that it is best to seperate objects that are on your character becuase if you dont it will interfear with the cage. For example, the side packs of my character's belt was in the way of the belt area so I would get bad results. Even though with that method in mind I still get bad edging and some undisirable resaults as you can see with a piece of the character included in the picture (Please See Picture--This map was generated in max).
Image

The bad edging is common throughout my normal map and some resualts are not what I am looking for, I beleive it has to do with the cage.

Please Please Please help, Im getting desperate! :cry:



rich_is_bored@Posted: Mon Jun 26, 2006 4:43 am :
It's really hard to tell what your problem is because all we have to look at are the resulting normal maps.

But it's impossible to gauge how your normal maps should have turned out because we've never seen the models you're using to generate them.

The only thing I can comment on is the "bad edges". If you look closely at that area you'll see that the circle in fact is well defined. It's just the surrounding border of pixels which is stretched out a bit.

Without seeing your UV map I can't say for certain but this may not even be an issue. Most programs that render out a normal map draw outside the bounds of each UV group a set number of pixels.

The idea is much the same as traditional texturing in that you want to paint around the bounds of the UV map. For instance, if you painted a diffuse map on a white image and stayed within the bounds, you'd have white areas around all the UV seams.



MichaelZee@Posted: Tue Jun 27, 2006 1:49 am :
Thank you for the information. To make the situation more clear I took some screenshots

Heres the UV map for the character

Image

Here is the best normal map I have generated with melody so far. I took off some pieces of the character because of projection problems so I'd would do them individually but here is the body and head of the chracters normal map. The shoe part is on the right middle.

Image

With this current normal map I am having problems with various parts like the bottom bevel of the shoe. Here is a picture of the shoe of my highpoly character model.

Image

Yet in the low poly character I get problems like this when I apply the normal map and I dont know how to prevent them.

Image

I hope I made this more clear, I just get random problems like were seeing in the boot bevel. I did noticed however the color coordination in that area is kind of messy but I dont know how to fix it. Any idea on what I may be doing wrong? If you need more pictures I can send them over via email. The help so far is really apprecatied :D



rich_is_bored@Posted: Tue Jun 27, 2006 5:00 am :
Is this character for a Doom 3 engine game? If so, your normal map should be rendered in tangent space. The normal map you've posted appears to be rendered in object space.

And yes, it's pretty common to have to break the model into pieces, render them all individually, and composite the resulting normal maps in post.

Also, if the screenshot of that boot is any indication as to how dense a mesh your using for your high poly character, I'd say you could up the polycount there considerably.

I realize that you're trying to preserve hard edges but I'd turn that high poly model into a subdivision surface and use edge loops to preserve the hard edges. You can always apply the subdivision to the mesh at a later state to end up with polygons which you can then render a normal map with.

I wonder, have you tried rendering normal maps for simple primatives yet? You know, just to get a feel for the workflow you'll need to follow given the applications you are using. Things like what file formats you'll need to utilize, ect...

I suggest you put your character on the back burner for a bit and try rendering a normal map using a high and low poly sphere. Just start with something simple. No hard edges. Just a low and high poly sphere.



parsonsbear@Posted: Wed Jun 28, 2006 12:54 am :
Like I said before, you should follow the instructions at idDevnet. They really did an underappreciated job with that site, it's very good- much better than most tutorials for any system in fact.

http://www.iddevnet.com/quake4/ArtRefer ... tingModels

Also, the introductory text on normalmaps by JCarmack is a good read too:
http://www.iddevnet.com/doom3/bumpmaps.php

I've used melody before, and I ran into the same problem- I'm much happier now that I follow the id system.



der_ton@Posted: Wed Jun 28, 2006 10:42 pm :
On a side-note, your uv-mapping is not very suitable for normalmapping. Here is a quote from the iddevnet-article on bumpmapping, linked above by parsonsbear:

Quote:
The lowPolyModel must have texture coordinates on it, and care should be taken to make sure the mapping is as good as possible. Before doing a RenderBump, test the model in the game with "r_showTexturePolarity 1" and "r_showEdges 1". Make sure that there aren’t any texture seams that aren’t absolutely necessary, and that there are no overlapped texture projections.


The texture seams look bad ingame, and they even affect rendering performance negatively, because a vertex on a seam has to be duplicated into two vertices for the rendering.



MichaelZee@Posted: Thu Jun 29, 2006 11:23 pm :
thanks for the information and help guys.

rich_is_bored: Thanks for the help, I changed my other normal maps to now be tangent space and I practiced on some more simplier objects; helped me out well to get more of the feel like you said.

Parsonsbear: Thank you for the links. With what you provided I am learning how to do it id's way (currently with the quake 4 link). Everything is going pretty well so far but I ran into one problem. On step 4 they use lightwave which makes it hard for me to understand becuase I use 3dsmax8. I am not sure if you use lightwave yourself but if you know how to do this part with 3dsmax 8 that would be a gigantic help.

der_ton: Thanks for the side note but I am going to take my chances with this Uv set up for now. If it doesent look good or performance is hoged then I'll just have to re-Uv map it. But how should this Uv map look to be more suitable?



parsonsbear@Posted: Fri Jun 30, 2006 6:48 am :
well, it's hard to say because it's directly related to the file format that you load into quake4. Basically, they look at the shader name that's assigned to the poly's of the low poly model to find the doom3 material that's going to be used in-game (and also can contain your renderbump options)

If you export as 3dsmax .ase files, you're in for a world of hurt, but feel free to search around here and modwiki.net for info on the process. (AFAIK) it involves opening the .ase files in a text editor and manually changing the material names to the d3 shader name.



MichaelZee@Posted: Fri Jun 30, 2006 8:06 pm :
parsonsbear wrote:
well, it's hard to say because it's directly related to the file format that you load into quake4. Basically, they look at the shader name that's assigned to the poly's of the low poly model to find the doom3 material that's going to be used in-game (and also can contain your renderbump options)

If you export as 3dsmax .ase files, you're in for a world of hurt, but feel free to search around here and modwiki.net for info on the process. (AFAIK) it involves opening the .ase files in a text editor and manually changing the material names to the d3 shader name.


Ok, on a video tutorial by Brain Trepaning on developing your own static meshes for doom3, I remember him going inside the .ase file using the text editor and changing the shader name. Perhaps he would know how this is done but another thing is that I plan on making an animation model. If I recall, .ase are good for static models but I would want to do an md5mesh, or does it not matter since after all I am going to just be redering a bumpmap with the two models for now?

So would the shader on the low poly character model be the _d map of your character and is the shader put on to your character as if your assigning the low poly model a texture or just naming the mesh the path name of the shader? I'm sorry I don't quite get the process yet, I have made characters for unreal but this is diffenant.



rich_is_bored@Posted: Sat Jul 01, 2006 5:29 am :
As long as the UV maps are the same for both the ASE and MD5mesh, it won't matter which model you use for rendering a normal map.



MichaelZee@Posted: Sat Jul 01, 2006 8:43 pm :
Ok.

I am attempting to just render the normal map out to at least get the feel how this way works. I am on part 5 where you render out the normal map. Here is my mtr file for what i am going to render.

Code:
//----------------------------Faction_Grunt---MatierialCode-----------------------------------------------

models/faction_enemies/Faction_Grunt_Body_Low

{
        noselfShadow
        unsmoothedtangents

renderbump
-size 1024 1024
-trace .05
-aa 2
-mergehigh

textures/faction_enemies/Faction_Grunt_local.tga

models/faction_enemies/Faction_Grunt_Body_High.ASE


diffusemap              textures/faction_enemies/Faction_Grunt_d.tga
bumpmap addnormals ( textures/faction_enemies/Faction_Grunt_local.tga, heightmap ( textures/faction_enemies/Faction_Grunt_h.tga, 1 ) )

}


On command prompt I can get it to work. I dont think I am intreprating iddevnet's directions correctly.

Image

Whenever I compile this I get dialog saying ....
Code:
< was unexpected at this time


What am I doing wrong here?

UPDATE: I just delleted all the < simbles and it launched me up into the quake4 menu in window mode. I also got rid of the ] [ simbols and it is still taking me to the main menu. I am not sure what is suppose to happen next but how come rendering of the normal map isent happening?



rich_is_bored@Posted: Sun Jul 02, 2006 4:13 am : Doom 3 world • View topic - How did id do it with zbrush?

Doom 3 world

Doom3world.org - the world is yours, soon in 6 degrees of freedom!
It is currently Sat Sep 22, 2007 5:37 pm

All times are UTC




Post new topic Reply to topic  [ 17 posts ] 
Author Message
 Post subject: How did id do it with zbrush?
PostPosted: Fri Jun 23, 2006 8:17 am 
Offline
picked up 75 health
User avatar

Joined: Wed Dec 29, 2004 12:14 am
Posts: 97
Location: CA USA
Hello :)

With the character models such as the Doom Marines in green, how did id go about making there entire normal map? Did they import their whole low poly models into zbrush and skulped them there? I am having a hard time trying to preserve hard edges for my models in Zbrush that I designated in max :( . In resault, it seems almost impossible to create various armor types yet I see id's armored characters such as the doom marines and I really wonder how did id make there normal maps for them with zbrush(especially there armor). Does anyone know how they went about doing it? The information would really help me out big time

Thanks :)

_________________
Immortality, eternal youth is within reach and is on its way soon! Please pass the message along and make a donation to the mouse prize to help the development to the cure to aging. The website at http://www.mprize.org/index.php?pagename=whatisthemf


Top
 Profile  
 
 Post subject:
PostPosted: Fri Jun 23, 2006 10:54 am 
Offline
respawned 1350 times
User avatar

Joined: Thu Dec 05, 2002 1:08 pm
Posts: 1365
Id made only few characters out of Zbrush for vanilla DooM3. As Kenneth Scott said they used Zbrush for sculpting new monsters for the expantion pack RoE... Techy parts such weapons, armors etc are modelled in maya/lightwave

_________________
theRev is coming...


Top
 Profile  
 
 Post subject:
PostPosted: Fri Jun 23, 2006 8:26 pm 
Offline
picked up 75 health
User avatar

Joined: Wed Dec 29, 2004 12:14 am
Posts: 97
Location: CA USA
hmm, so more than likely with the doom marines they just made a high poly model in their 3d package. Did they use a third party program to generate the normal map? I'm trying to use max's but its proving to be pretty challanging in attempt to get the cage working and then getting the normal map; so far I havent been able to get desirable reaults.

EDIT:

I currently found a nvidia software called melody that does the job. I am having a problem with it though, when ever I generate a normal map it doesnt respect the uvw map I made and comes out all in peices. Any ideas or suggestions to another software for that matter? Help is really appreacited :)

_________________
Immortality, eternal youth is within reach and is on its way soon! Please pass the message along and make a donation to the mouse prize to help the development to the cure to aging. The website at http://www.mprize.org/index.php?pagename=whatisthemf


Top
 Profile  
 
 Post subject:
PostPosted: Sat Jun 24, 2006 2:19 am 
Offline
found a secret
User avatar

Joined: Thu Jan 06, 2005 11:27 pm
Posts: 541
Doom3 actually has one of the best highpoly-lowpoly normalmap transfers available. Do some searches for renderbump, or look in the art reference at quake4/iddevnet.


Top
 Profile  
 
 Post subject:
PostPosted: Sat Jun 24, 2006 4:42 am 
Offline
picked up 75 health
User avatar

Joined: Wed Dec 29, 2004 12:14 am
Posts: 97
Location: CA USA
Ok, by reading through several differant sources I have found out like parsonbear had mentioned, a built in renderbump system in doom3. This is my siutation:

I have a low polygon character and a high polygon version of that character. I would like to use the high polygon version to generate a normal map for my low polygon character. To do that with the Doom Engine's renderbump, how should I go about it? What should the code look like?

I am really thankful for any help.

_________________
Immortality, eternal youth is within reach and is on its way soon! Please pass the message along and make a donation to the mouse prize to help the development to the cure to aging. The website at http://www.mprize.org/index.php?pagename=whatisthemf


Top
 Profile  
 
 Post subject:
PostPosted: Mon Jun 26, 2006 3:23 am 
Offline
picked up 75 health
User avatar

Joined: Wed Dec 29, 2004 12:14 am
Posts: 97
Location: CA USA
Alright I need help big time!!!

I'm trying all I can to generate a normal map but it just never comes out how I want it to. I was able to get melody (a normal map generater problem by nvidia) to respect my uvw map coordinets but no mather what I cant get it to where my nromal map sits in well with my character. It just seems absolutly impossble to make a high polygon generated normal map for a character, its an complete mystery to me how id coudeve made theres so well.

So far I have been trying Melody and 3DS Max 8 and I have realized from that of my experience that it is best to seperate objects that are on your character becuase if you dont it will interfear with the cage. For example, the side packs of my character's belt was in the way of the belt area so I would get bad results. Even though with that method in mind I still get bad edging and some undisirable resaults as you can see with a piece of the character included in the picture (Please See Picture--This map was generated in max).
Image

The bad edging is common throughout my normal map and some resualts are not what I am looking for, I beleive it has to do with the cage.

Please Please Please help, Im getting desperate! :cry:

_________________
Immortality, eternal youth is within reach and is on its way soon! Please pass the message along and make a donation to the mouse prize to help the development to the cure to aging. The website at http://www.mprize.org/index.php?pagename=whatisthemf


Top
 Profile  
 
 Post subject:
PostPosted: Mon Jun 26, 2006 4:43 am 
Offline
a gun & a nice word
User avatar

Joined: Sat Jan 11, 2003 8:30 pm
Posts: 7421
Location: Orlando, FL
It's really hard to tell what your problem is because all we have to look at are the resulting normal maps.

But it's impossible to gauge how your normal maps should have turned out because we've never seen the models you're using to generate them.

The only thing I can comment on is the "bad edges". If you look closely at that area you'll see that the circle in fact is well defined. It's just the surrounding border of pixels which is stretched out a bit.

Without seeing your UV map I can't say for certain but this may not even be an issue. Most programs that render out a normal map draw outside the bounds of each UV group a set number of pixels.

The idea is much the same as traditional texturing in that you want to paint around the bounds of the UV map. For instance, if you painted a diffuse map on a white image and stayed within the bounds, you'd have white areas around all the UV seams.

_________________
Image Staff
Learn something today? Why not write an article about it on modwiki.net?


Top
 Profile  
 
 Post subject:
PostPosted: Tue Jun 27, 2006 1:49 am 
Offline
picked up 75 health
User avatar

Joined: Wed Dec 29, 2004 12:14 am
Posts: 97
Location: CA USA
Thank you for the information. To make the situation more clear I took some screenshots

Heres the UV map for the character

Image

Here is the best normal map I have generated with melody so far. I took off some pieces of the character because of projection problems so I'd would do them individually but here is the body and head of the chracters normal map. The shoe part is on the right middle.

Image

With this current normal map I am having problems with various parts like the bottom bevel of the shoe. Here is a picture of the shoe of my highpoly character model.

Image

Yet in the low poly character I get problems like this when I apply the normal map and I dont know how to prevent them.

Image

I hope I made this more clear, I just get random problems like were seeing in the boot bevel. I did noticed however the color coordination in that area is kind of messy but I dont know how to fix it. Any idea on what I may be doing wrong? If you need more pictures I can send them over via email. The help so far is really apprecatied :D

_________________
Immortality, eternal youth is within reach and is on its way soon! Please pass the message along and make a donation to the mouse prize to help the development to the cure to aging. The website at http://www.mprize.org/index.php?pagename=whatisthemf


Top
 Profile  
 
 Post subject:
PostPosted: Tue Jun 27, 2006 5:00 am 
Offline
a gun & a nice word
User avatar

Joined: Sat Jan 11, 2003 8:30 pm
Posts: 7421
Location: Orlando, FL
Is this character for a Doom 3 engine game? If so, your normal map should be rendered in tangent space. The normal map you've posted appears to be rendered in object space.

And yes, it's pretty common to have to break the model into pieces, render them all individually, and composite the resulting normal maps in post.

Also, if the screenshot of that boot is any indication as to how dense a mesh your using for your high poly character, I'd say you could up the polycount there considerably.

I realize that you're trying to preserve hard edges but I'd turn that high poly model into a subdivision surface and use edge loops to preserve the hard edges. You can always apply the subdivision to the mesh at a later state to end up with polygons which you can then render a normal map with.

I wonder, have you tried rendering normal maps for simple primatives yet? You know, just to get a feel for the workflow you'll need to follow given the applications you are using. Things like what file formats you'll need to utilize, ect...

I suggest you put your character on the back burner for a bit and try rendering a normal map using a high and low poly sphere. Just start with something simple. No hard edges. Just a low and high poly sphere.

_________________
Image Staff
Learn something today? Why not write an article about it on modwiki.net?


Top
 Profile  
 
 Post subject:
PostPosted: Wed Jun 28, 2006 12:54 am 
Offline
found a secret
User avatar

Joined: Thu Jan 06, 2005 11:27 pm
Posts: 541
Like I said before, you should follow the instructions at idDevnet. They really did an underappreciated job with that site, it's very good- much better than most tutorials for any system in fact.

http://www.iddevnet.com/quake4/ArtRefer ... tingModels

Also, the introductory text on normalmaps by JCarmack is a good read too:
http://www.iddevnet.com/doom3/bumpmaps.php

I've used melody before, and I ran into the same problem- I'm much happier now that I follow the id system.


Top
 Profile  
 
 Post subject:
PostPosted: Wed Jun 28, 2006 10:42 pm 
Offline
Camper
User avatar

Joined: Fri Jun 27, 2003 10:24 pm
Posts: 2484
Location: Munich, Germany
On a side-note, your uv-mapping is not very suitable for normalmapping. Here is a quote from the iddevnet-article on bumpmapping, linked above by parsonsbear:

Quote:
The lowPolyModel must have texture coordinates on it, and care should be taken to make sure the mapping is as good as possible. Before doing a RenderBump, test the model in the game with "r_showTexturePolarity 1" and "r_showEdges 1". Make sure that there aren’t any texture seams that aren’t absolutely necessary, and that there are no overlapped texture projections.


The texture seams look bad ingame, and they even affect rendering performance negatively, because a vertex on a seam has to be duplicated into two vertices for the rendering.

_________________
Image Staff
Modelviewer | 3DSMax<->MD5 | Blender<->MD5


Top
 Profile  
 
 Post subject:
PostPosted: Thu Jun 29, 2006 11:23 pm 
Offline
picked up 75 health
User avatar

Joined: Wed Dec 29, 2004 12:14 am
Posts: 97
Location: CA USA
thanks for the information and help guys.

rich_is_bored: Thanks for the help, I changed my other normal maps to now be tangent space and I practiced on some more simplier objects; helped me out well to get more of the feel like you said.

Parsonsbear: Thank you for the links. With what you provided I am learning how to do it id's way (currently with the quake 4 link). Everything is going pretty well so far but I ran into one problem. On step 4 they use lightwave which makes it hard for me to understand becuase I use 3dsmax8. I am not sure if you use lightwave yourself but if you know how to do this part with 3dsmax 8 that would be a gigantic help.

der_ton: Thanks for the side note but I am going to take my chances with this Uv set up for now. If it doesent look good or performance is hoged then I'll just have to re-Uv map it. But how should this Uv map look to be more suitable?

_________________
Immortality, eternal youth is within reach and is on its way soon! Please pass the message along and make a donation to the mouse prize to help the development to the cure to aging. The website at http://www.mprize.org/index.php?pagename=whatisthemf


Top
 Profile  
 
 Post subject:
PostPosted: Fri Jun 30, 2006 6:48 am 
Offline
found a secret
User avatar

Joined: Thu Jan 06, 2005 11:27 pm
Posts: 541
well, it's hard to say because it's directly related to the file format that you load into quake4. Basically, they look at the shader name that's assigned to the poly's of the low poly model to find the doom3 material that's going to be used in-game (and also can contain your renderbump options)

If you export as 3dsmax .ase files, you're in for a world of hurt, but feel free to search around here and modwiki.net for info on the process. (AFAIK) it involves opening the .ase files in a text editor and manually changing the material names to the d3 shader name.


Top
 Profile  
 
 Post subject:
PostPosted: Fri Jun 30, 2006 8:06 pm 
Offline
picked up 75 health
User avatar

Joined: Wed Dec 29, 2004 12:14 am
Posts: 97
Location: CA USA
parsonsbear wrote:
well, it's hard to say because it's directly related to the file format that you load into quake4. Basically, they look at the shader name that's assigned to the poly's of the low poly model to find the doom3 material that's going to be used in-game (and also can contain your renderbump options)

If you export as 3dsmax .ase files, you're in for a world of hurt, but feel free to search around here and modwiki.net for info on the process. (AFAIK) it involves opening the .ase files in a text editor and manually changing the material names to the d3 shader name.


Ok, on a video tutorial by Brain Trepaning on developing your own static meshes for doom3, I remember him going inside the .ase file using the text editor and changing the shader name. Perhaps he would know how this is done but another thing is that I plan on making an animation model. If I recall, .ase are good for static models but I would want to do an md5mesh, or does it not matter since after all I am going to just be redering a bumpmap with the two models for now?

So would the shader on the low poly character model be the _d map of your character and is the shader put on to your character as if your assigning the low poly model a texture or just naming the mesh the path name of the shader? I'm sorry I don't quite get the process yet, I have made characters for unreal but this is diffenant.

_________________
Immortality, eternal youth is within reach and is on its way soon! Please pass the message along and make a donation to the mouse prize to help the development to the cure to aging. The website at http://www.mprize.org/index.php?pagename=whatisthemf


Top
 Profile  
 
 Post subject:
PostPosted: Sat Jul 01, 2006 5:29 am 
Offline
a gun & a nice word
User avatar

Joined: Sat Jan 11, 2003 8:30 pm
Posts: 7421
Location: Orlando, FL
As long as the UV maps are the same for both the ASE and MD5mesh, it won't matter which model you use for rendering a normal map.

_________________
Image Staff
Learn something today? Why not write an article about it on modwiki.net?


Top
 Profile  
 
 Post subject:
PostPosted: Sat Jul 01, 2006 8:43 pm 
Offline
picked up 75 health
User avatar

Joined: Wed Dec 29, 2004 12:14 am
Posts: 97
Location: CA USA
Ok.

I am attempting to just render the normal map out to at least get the feel how this way works. I am on part 5 where you render out the normal map. Here is my mtr file for what i am going to render.

Code:
//----------------------------Faction_Grunt---MatierialCode-----------------------------------------------

models/faction_enemies/Faction_Grunt_Body_Low

{
        noselfShadow
        unsmoothedtangents

renderbump
-size 1024 1024
-trace .05
-aa 2
-mergehigh

textures/faction_enemies/Faction_Grunt_local.tga

models/faction_enemies/Faction_Grunt_Body_High.ASE


diffusemap              textures/faction_enemies/Faction_Grunt_d.tga
bumpmap addnormals ( textures/faction_enemies/Faction_Grunt_local.tga, heightmap ( textures/faction_enemies/Faction_Grunt_h.tga, 1 ) )

}


On command prompt I can get it to work. I dont think I am intreprating iddevnet's directions correctly.

Image

Whenever I compile this I get dialog saying ....
Code:
< was unexpected at this time


What am I doing wrong here?

UPDATE: I just delleted all the < simbles and it launched me up into the quake4 menu in window mode. I also got rid of the ] [ simbols and it is still taking me to the main menu. I am not sure what is suppose to happen next but how come rendering of the normal map isent happening?

_________________
Immortality, eternal youth is within reach and is on its way soon! Please pass the message along and make a donation to the mouse prize to help the development to the cure to aging. The website at http://www.mprize.org/index.php?pagename=whatisthemf


Top
 Profile  
 
 Post subject:
PostPosted: Sun Jul 02, 2006 4:13 am 



MichaelZee@Posted: Fri Jun 23, 2006 8:17 am :
Hello :)

With the character models such as the Doom Marines in green, how did id go about making there entire normal map? Did they import their whole low poly models into zbrush and skulped them there? I am having a hard time trying to preserve hard edges for my models in Zbrush that I designated in max :( . In resault, it seems almost impossible to create various armor types yet I see id's armored characters such as the doom marines and I really wonder how did id make there normal maps for them with zbrush(especially there armor). Does anyone know how they went about doing it? The information would really help me out big time

Thanks :)



Rayne@Posted: Fri Jun 23, 2006 10:54 am :
Id made only few characters out of Zbrush for vanilla DooM3. As Kenneth Scott said they used Zbrush for sculpting new monsters for the expantion pack RoE... Techy parts such weapons, armors etc are modelled in maya/lightwave



MichaelZee@Posted: Fri Jun 23, 2006 8:26 pm :
hmm, so more than likely with the doom marines they just made a high poly model in their 3d package. Did they use a third party program to generate the normal map? I'm trying to use max's but its proving to be pretty challanging in attempt to get the cage working and then getting the normal map; so far I havent been able to get desirable reaults.

EDIT:

I currently found a nvidia software called melody that does the job. I am having a problem with it though, when ever I generate a normal map it doesnt respect the uvw map I made and comes out all in peices. Any ideas or suggestions to another software for that matter? Help is really appreacited :)



parsonsbear@Posted: Sat Jun 24, 2006 2:19 am :
Doom3 actually has one of the best highpoly-lowpoly normalmap transfers available. Do some searches for renderbump, or look in the art reference at quake4/iddevnet.



MichaelZee@Posted: Sat Jun 24, 2006 4:42 am :
Ok, by reading through several differant sources I have found out like parsonbear had mentioned, a built in renderbump system in doom3. This is my siutation:

I have a low polygon character and a high polygon version of that character. I would like to use the high polygon version to generate a normal map for my low polygon character. To do that with the Doom Engine's renderbump, how should I go about it? What should the code look like?

I am really thankful for any help.



MichaelZee@Posted: Mon Jun 26, 2006 3:23 am :
Alright I need help big time!!!

I'm trying all I can to generate a normal map but it just never comes out how I want it to. I was able to get melody (a normal map generater problem by nvidia) to respect my uvw map coordinets but no mather what I cant get it to where my nromal map sits in well with my character. It just seems absolutly impossble to make a high polygon generated normal map for a character, its an complete mystery to me how id coudeve made theres so well.

So far I have been trying Melody and 3DS Max 8 and I have realized from that of my experience that it is best to seperate objects that are on your character becuase if you dont it will interfear with the cage. For example, the side packs of my character's belt was in the way of the belt area so I would get bad results. Even though with that method in mind I still get bad edging and some undisirable resaults as you can see with a piece of the character included in the picture (Please See Picture--This map was generated in max).
Image

The bad edging is common throughout my normal map and some resualts are not what I am looking for, I beleive it has to do with the cage.

Please Please Please help, Im getting desperate! :cry:



rich_is_bored@Posted: Mon Jun 26, 2006 4:43 am :
It's really hard to tell what your problem is because all we have to look at are the resulting normal maps.

But it's impossible to gauge how your normal maps should have turned out because we've never seen the models you're using to generate them.

The only thing I can comment on is the "bad edges". If you look closely at that area you'll see that the circle in fact is well defined. It's just the surrounding border of pixels which is stretched out a bit.

Without seeing your UV map I can't say for certain but this may not even be an issue. Most programs that render out a normal map draw outside the bounds of each UV group a set number of pixels.

The idea is much the same as traditional texturing in that you want to paint around the bounds of the UV map. For instance, if you painted a diffuse map on a white image and stayed within the bounds, you'd have white areas around all the UV seams.



MichaelZee@Posted: Tue Jun 27, 2006 1:49 am :
Thank you for the information. To make the situation more clear I took some screenshots

Heres the UV map for the character

Image

Here is the best normal map I have generated with melody so far. I took off some pieces of the character because of projection problems so I'd would do them individually but here is the body and head of the chracters normal map. The shoe part is on the right middle.

Image

With this current normal map I am having problems with various parts like the bottom bevel of the shoe. Here is a picture of the shoe of my highpoly character model.

Image

Yet in the low poly character I get problems like this when I apply the normal map and I dont know how to prevent them.

Image

I hope I made this more clear, I just get random problems like were seeing in the boot bevel. I did noticed however the color coordination in that area is kind of messy but I dont know how to fix it. Any idea on what I may be doing wrong? If you need more pictures I can send them over via email. The help so far is really apprecatied :D



rich_is_bored@Posted: Tue Jun 27, 2006 5:00 am :
Is this character for a Doom 3 engine game? If so, your normal map should be rendered in tangent space. The normal map you've posted appears to be rendered in object space.

And yes, it's pretty common to have to break the model into pieces, render them all individually, and composite the resulting normal maps in post.

Also, if the screenshot of that boot is any indication as to how dense a mesh your using for your high poly character, I'd say you could up the polycount there considerably.

I realize that you're trying to preserve hard edges but I'd turn that high poly model into a subdivision surface and use edge loops to preserve the hard edges. You can always apply the subdivision to the mesh at a later state to end up with polygons which you can then render a normal map with.

I wonder, have you tried rendering normal maps for simple primatives yet? You know, just to get a feel for the workflow you'll need to follow given the applications you are using. Things like what file formats you'll need to utilize, ect...

I suggest you put your character on the back burner for a bit and try rendering a normal map using a high and low poly sphere. Just start with something simple. No hard edges. Just a low and high poly sphere.



parsonsbear@Posted: Wed Jun 28, 2006 12:54 am :
Like I said before, you should follow the instructions at idDevnet. They really did an underappreciated job with that site, it's very good- much better than most tutorials for any system in fact.

http://www.iddevnet.com/quake4/ArtRefer ... tingModels

Also, the introductory text on normalmaps by JCarmack is a good read too:
http://www.iddevnet.com/doom3/bumpmaps.php

I've used melody before, and I ran into the same problem- I'm much happier now that I follow the id system.



der_ton@Posted: Wed Jun 28, 2006 10:42 pm :
On a side-note, your uv-mapping is not very suitable for normalmapping. Here is a quote from the iddevnet-article on bumpmapping, linked above by parsonsbear:

Quote:
The lowPolyModel must have texture coordinates on it, and care should be taken to make sure the mapping is as good as possible. Before doing a RenderBump, test the model in the game with "r_showTexturePolarity 1" and "r_showEdges 1". Make sure that there aren’t any texture seams that aren’t absolutely necessary, and that there are no overlapped texture projections.


The texture seams look bad ingame, and they even affect rendering performance negatively, because a vertex on a seam has to be duplicated into two vertices for the rendering.



MichaelZee@Posted: Thu Jun 29, 2006 11:23 pm :
thanks for the information and help guys.

rich_is_bored: Thanks for the help, I changed my other normal maps to now be tangent space and I practiced on some more simplier objects; helped me out well to get more of the feel like you said.

Parsonsbear: Thank you for the links. With what you provided I am learning how to do it id's way (currently with the quake 4 link). Everything is going pretty well so far but I ran into one problem. On step 4 they use lightwave which makes it hard for me to understand becuase I use 3dsmax8. I am not sure if you use lightwave yourself but if you know how to do this part with 3dsmax 8 that would be a gigantic help.

der_ton: Thanks for the side note but I am going to take my chances with this Uv set up for now. If it doesent look good or performance is hoged then I'll just have to re-Uv map it. But how should this Uv map look to be more suitable?



parsonsbear@Posted: Fri Jun 30, 2006 6:48 am :
well, it's hard to say because it's directly related to the file format that you load into quake4. Basically, they look at the shader name that's assigned to the poly's of the low poly model to find the doom3 material that's going to be used in-game (and also can contain your renderbump options)

If you export as 3dsmax .ase files, you're in for a world of hurt, but feel free to search around here and modwiki.net for info on the process. (AFAIK) it involves opening the .ase files in a text editor and manually changing the material names to the d3 shader name.



MichaelZee@Posted: Fri Jun 30, 2006 8:06 pm :
parsonsbear wrote:
well, it's hard to say because it's directly related to the file format that you load into quake4. Basically, they look at the shader name that's assigned to the poly's of the low poly model to find the doom3 material that's going to be used in-game (and also can contain your renderbump options)

If you export as 3dsmax .ase files, you're in for a world of hurt, but feel free to search around here and modwiki.net for info on the process. (AFAIK) it involves opening the .ase files in a text editor and manually changing the material names to the d3 shader name.


Ok, on a video tutorial by Brain Trepaning on developing your own static meshes for doom3, I remember him going inside the .ase file using the text editor and changing the shader name. Perhaps he would know how this is done but another thing is that I plan on making an animation model. If I recall, .ase are good for static models but I would want to do an md5mesh, or does it not matter since after all I am going to just be redering a bumpmap with the two models for now?

So would the shader on the low poly character model be the _d map of your character and is the shader put on to your character as if your assigning the low poly model a texture or just naming the mesh the path name of the shader? I'm sorry I don't quite get the process yet, I have made characters for unreal but this is diffenant.



rich_is_bored@Posted: Sat Jul 01, 2006 5:29 am :
As long as the UV maps are the same for both the ASE and MD5mesh, it won't matter which model you use for rendering a normal map.



MichaelZee@Posted: Sat Jul 01, 2006 8:43 pm :
Ok.

I am attempting to just render the normal map out to at least get the feel how this way works. I am on part 5 where you render out the normal map. Here is my mtr file for what i am going to render.

Code:
//----------------------------Faction_Grunt---MatierialCode-----------------------------------------------

models/faction_enemies/Faction_Grunt_Body_Low

{
        noselfShadow
        unsmoothedtangents

renderbump
-size 1024 1024
-trace .05
-aa 2
-mergehigh

textures/faction_enemies/Faction_Grunt_local.tga

models/faction_enemies/Faction_Grunt_Body_High.ASE


diffusemap              textures/faction_enemies/Faction_Grunt_d.tga
bumpmap addnormals ( textures/faction_enemies/Faction_Grunt_local.tga, heightmap ( textures/faction_enemies/Faction_Grunt_h.tga, 1 ) )

}


On command prompt I can get it to work. I dont think I am intreprating iddevnet's directions correctly.

Image

Whenever I compile this I get dialog saying ....
Code:
< was unexpected at this time


What am I doing wrong here?

UPDATE: I just delleted all the < simbles and it launched me up into the quake4 menu in window mode. I also got rid of the ] [ simbols and it is still taking me to the main menu. I am not sure what is suppose to happen next but how come rendering of the normal map isent happening?