How Do you add Normal Maps and Specular Maps to a Texture to make it work in game?

Curious on how to utilize the new shader system in NWN:EE. I seen some tilesets already online using these new shaders and they look great, but am at a loss on how to get them to work in such an old game engine? I am use to newer engines were ti is easy to setup such texture maps, but not sure how to go about making it work in the Aurora Toolset/NWN game itself.

If anybody has any input or links they could share with me that would be awesome.

'ive seen a few for E.E myself and i can tell you many of them are photoshopped. I dont think there are many shaders and the ones ive seen are quite subtle and nothing too drastic.

Thanks for the info but I know they are photoshopped. That program is a must in all game design when it comes to textures, I use it all the time. The question is how do they do it? Engines have certain ways they render shaders, a pipeline per say, and since NWN is indeed a older engine and EE just adds minor additions to the same engine, my question is how do they import textures to register use of normal maps and specular, because if you simply just bring those in to photoshop, say, one layer is the original texture, the next is normal map, and the third is specular, if you merge them it looks awful, so there must be a method on how to get them to work properly in the game engine. I just cannot find any topic on the matter so not sure how people figured it out so quickly. :stuck_out_tongue:

disregard any reference there to editing the mdl file… We use an mtr file now easily created with any text editor.

further info here:

1 Like

Thanks for the info. Maybe I am just slow, but I am not sure I understand all of that, it’s pretty vague or missing information, as well as not explaining things to well for beginners. The two links, one of them on the vault has another link in the, but it just leads to the BeamDog forums and not directly on the topic at hand.

ok, here’s the simple version… you have a texture. Make a mtr (with text editor) for it , same name as texture. ext .mtr

inside mtr looks like this:

renderhint NormalAndSpecMapped

// Textures
texture0 xxx
texture1 xxx_n
texture2 xxx_s
texture3 null
texture4 null

Thats it… I linked the other stuff because you said you wanted to know about the shaders. If you want to add more maps, like roughness for example, you’ll need to add shader info in the mtr. The above example is all that is needed for a normal + specular map. You’re welcome to join us on discord where there are more technical minded people who can give you a more in depth explanation.

Thank you for the info. I just tried doing what you said but sadly it does not work. There is something being left out. I added the .mtr file to the hak pak file with the other textures and models. What happens is the diffuse shows up properly, but with the normal/spec map on the model, they seem to be in the wrong place as if the UV Map has not been laid out but it has been. I replaced the “xxx” with the texture name (EX: plc_castle1_n.tga, plc_castle1_s.tga). This would be easier for everyone if you, or somebody else could just do a step by step video on YouTube. May help the community to utilize these better. :slight_smile: Here is a picture to show what is occurring. Not sure what I am doing wrong? Seems like the new Normal Map and Specular textures are not displaying properly on the model, maybe because the .MDL file is not sure what to do with the extra Normal and Spec Maps? mtrnotworking|690x388

Dl’ing something that works is a good way to get an idea of how things work.
In your example ,(assuming plc_castle1 is name of texture and not mdl) your mtr would be named
and your mtr would look like this:

renderhint NormalAndSpecMapped

// Textures
texture0 plc_castle1
texture1 plc_castle1_n
texture2 plc_castle1_s
texture3 null
texture4 null

If still not working some of the common issues, name too long. Using an older nwhak will not work. Try newer. If this is a vanilla texture, iirc it has to be dds… I’m not sure if this is an issue still tho. If none of that works, pop into dicord for further assistance please.