Game Development Community

gideon's normal map

by Kory Imaginism · in Torque 3D Professional · 07/13/2009 (1:48 pm) · 24 replies

I have a quick question about the normal map on the gideon character. I noticed that the normal map for gideon is on a transparency background. My question is what do I need to do to get the same look for my character models? To me it looks like after the normal map was created the face was blurred, but I'm not for sure if anyone can help, I would be grateful!

thanks in advanced
Page «Previous 1 2
#1
07/13/2009 (2:19 pm)
T3D uses the alpha channel of the normal map for specularity (unlike TGEA which used the alpha channel of the diffuse texture for that which made specular transparent object impossible)
#2
07/14/2009 (8:55 am)
Yep, the alpha channel in the normal map texture is not for transparency, but for specular information.
#3
07/14/2009 (9:08 am)
@Russell and Marc
thanks but I was wondering when making a normal map how would I achieve the same specular look as gideon? Would I blur the normal map, or adjust the brightness and contrast setting? If you take a look at gideon's normal map it almost faded and when you put the direct sunlight on him he doesn't have that un-natural specular look that my character has.
#4
07/14/2009 (9:16 am)
You don't blur normal maps, normally. The transparency you see is unrelated to the normals: it just tells how strong the specular will be at each pixel.

Unfortunately, Photoshop *still* cannot handle alpha-channels properly: when you open a PNG file, the alpha channel is shown as "layer transparency" black box, and it's impossible to "hide" the alpha and edit only the colors or edit only the alpha. Pixels under fully transparent areas are forever lost since you can never make said areas opaque again without destroying their color information as well. I think there was a plugin (SuperPNG) that loaded PNG alpha as an actual channel.

Anyway, you can still create such normal maps if you store the specular mask in a transparency mask attached to a layer, which can be disabled/enabled and can be edited separately from the color layer.
#5
07/14/2009 (9:47 am)
Quote:Unfortunately, Photoshop *still* cannot handle alpha-channels properly...I think there was a plugin (SuperPNG) that loaded PNG alpha as an actual channel.
SuperPNG solves this problem nicely, but make sure you get an older version of the plugin. Here's a download to the version that will work the way you want. Put it in the import/export folder, and make sure you remove the default PNG plugin.

So it will keep the alpha channel in the alpha channel, and not use it to force transparency on the color layer.
Quote:thanks but I was wondering when making a normal map how would I achieve the same specular look as gideon?
What is it you like about Gideon's specularity, specifically?


#6
07/14/2009 (10:20 am)
Well with my model I get a funny specular glow on the skin that looks un-natural. If I removed the normal map it is fine but it not as detailed and if I add it, it gives the specular glow that I mentioned above. I'll post a screendhot soon showing my issue.
#7
07/14/2009 (10:41 am)
Normal maps are quite often built from blurred heightmaps (or heightmaps generated from diffuse maps). Otherwise, there is too much noise. I'll be releasing a material creator in a few days that will allow you to generate the heightmaps, normal maps, specular maps, etc (with a variety of options) and create a material.CS for you with the appropriately embedded specular maps.

In the meantime, if you want to embed a specular map, you can do so with this simple utility as well:

www.garagegames.com/community/resources/view/16259
#8
07/14/2009 (11:37 am)
Manoel,
you can use the pipe of 'DirectX Texture tool' (in DirectX SDK utilities) to handle the alpha-channels in a regular way.

Format - change surface format to create an alpha bits.
File - open into alpha channel (a separate 8 bit alpha map).
Then export the collected A8R8G8B8 format into a single map,capable for shading.
#9
07/14/2009 (1:05 pm)
@Picasso: I know about the other ways of editing PNG alpha (pretty much everything except PS's default PNG plugin). I usually keep it separate using layer masks in PSDs for safety, but if need arises to extract alpha from an existing PNG there's always GIMP.
#10
07/14/2009 (4:11 pm)
In Beta4 you will have the option of using a Specular Map, which eliminates the need to use the alpha channel of the normal map for specular masking, and allows the use of DXTnm with per-pixel specular again.
#11
07/15/2009 (8:30 am)
@Pat

Oh thank god. I know stuffing the specular as the Alpha in a RGB image saved a lot on video memory usuage, but it was a frigging pain in the ass to work with. So I am very glad that at least there is an option to work with a specular bitmap in a normal way :)

@Jaimi

Cool stuff, I think a lot of people will find it pretty useful.

Also I am not trying to pick on you with this next comment, but I wanted to take a moment to make a comment on a general misconception that people have about generating Normal Bump Maps that you kind of mentioned.

The best normal map generation comes from within a 3D application where it can accurately detect and register the height changes between the normals of two models (ie. your low poly game model or the "destination" and an ultra high desnsity "target"). Using 2D bitmaps can produce 'decent' results at best, but it won't ever really reflect the insane accuracy and information found in 3D generation.

@Kory

Check in the material.cs too for the specular power and color setting that they are using too.

Specular is based on a few settings/info that you supply it. Based on the shader used, the specular color (combined with the light info in the scene) is added in a particular way to the diffuse textur on the model. The bump map (normal or parallex) then adjusts/affects the specular to simulate its high resultion model and then lastly the per pixel specular adjusts the strength of the shine on a per pixel basis.

So basicly there is a lot more going on than just a single bitmap affecting the model, but a combination of things that when thrown in the pot, shook around a bit and then poured into a bowl gives you the magic you see on the screen :)
#12
07/15/2009 (8:44 am)
@ Logan: The frustrating part for me is, if I had known they made such I huge difference, I would have shoved them in sooner. Gideon looks so much better with his spec-map in use. The 'gloss map' is in alpha channel of the spec map (if applicable), but I have not yet seen a super-awesome example of per-pixel specular power...but per-pixel specular color makes a world of difference.
#13
07/15/2009 (9:07 am)
What? It reads the specular color off the specular map as well? That's pretty interesting. As example, metallic materials (like gold) filter reflected light with their own color while others, like certain kinds of plastics, don't.

Per-pixel power would be interesting for a texture of leather with metallic details, as example. But where would it go?
#14
07/15/2009 (9:33 am)
Where would it go? In the spec-map! That is I think part of the point in it being its own texture. You get all color channels not just an alpha channel.
#15
07/15/2009 (11:27 am)
@Pat

Between this new specular option, the fixed and properly working normal bump mapping and of course the kick ass new lighting it will be pretty apparent to anyone with half a brain that Torque3D is not some hackily "point release" of TGEA, but a whole new beast that is ready to compete with the rest of the AAA games engine market.
#16
07/15/2009 (11:41 am)
@Logan -
Quote:The best normal map generation comes from within a 3D application where it can accurately detect and register the height changes between the normals of two models

Of course, and I agree completely. But sometimes it's not possible or really practical. For example, things like tree bark, granite stones, or sand dunes would be incredibly impractical to do in a 3D app. Generating a normal map for a character is a poor idea of course.
#17
07/15/2009 (11:47 am)
@Jaimi
You are probably right, I'm not an artist for sure. But here's an interesting article I saw where he built a 3d model to generate normals and parallax from for a bullet hole decal.

Course it looks pretty horrid and he is a programmer not an artist, but interesting idea.
#18
07/15/2009 (11:50 am)
@James:

Haha, that's funny. I'm not sure how long he took to create the mesh, but considering it would have taken around 30 seconds to create the heightmap in photoshop, it was too long. :)
#19
07/15/2009 (1:25 pm)
@Manoel and others:
This will be in the offical docs when it can be I am sure but here is my (programmer) description of the Specular/Gloss Map Feature

The Specular Map feature is a per-pixel source for the 'specular' parameter on a Material. This source is multiplied by the specular result, so if you have a pixel which is rgb(0, 0, 0), it will "mask" the specular.

If the Specular Map is a texture which has any alpha values < 255, (so it not only needs to be an RGBA/DXT5/whatever texture, but has some pixel alpha < 255 so that artists don't shoot themselves in the foot) than the alpha channel of the Specular Map will be used as a Gloss Map.

The Gloss Map feature is a per-pixel source for the 'specularPower' parameter on a material. During calculation of specular, it needs an exponent, and it will use 'alpha * 255' to get a number between 0 and 255 to use as the 'specularPower' for that pixel.

@Logan: I share your feelings wholeheartedly. Now wait until you see how fast skinned meshes render in Beta4...bwahahaha! :-)

And now, for screenshots. The color of the specular highlights are the things to be noticing. Note how the brass shines like brass now.

(Click for bigger versions)

Gideon currently, with Constant Specular:
farm3.static.flickr.com/2622/3724557862_e2970947d5.jpg

Gideon in Beta 4, with Specular Map:
farm3.static.flickr.com/2459/3723747993_31805b6f67.jpg
#20
07/15/2009 (3:08 pm)
*punches self*
Ah! Since the specular color is multiplied by the specular map's RGB, using gray values would fade out the specular and the alpha is free to act as exponent! Somehow I got stuck thinking the alpha was the specular fade... shame on me.

I have a great idea for a sample model/material: a metal globe, where the oceans are glossy (high specular power) and the continents are brushed (low specular power).

Hey... couldn't the specular map also be used to multiply a reflective cubemap? And the power could be used to change the cubemap mip LOD!
Page «Previous 1 2