Texture map breakdown

I’ve been looking carefully for several weeks now at textures and channels in both pre export and post export examples. I’ve been able to pretty much figure out what’s going on but would like some DEV team input just to make sure I have it all correct. I’ve found some places where an alpha was used pre export and other places where an alpha was not used so I may not have it all right. There are hints and suggestions strung out on these boards and I was wanting to have them all condensed. Here’s my list as I’ve been able to interpret. Could someone from GBX please correct and/or point out further details? It would be a big help. Thanks.

texture maps

Base files before import:

NORM = Standard normal map. No alpha.
REFL = BW, no alpha (glossiness).
SPEC = Standard specular map. BW, no alpha.
GLOW = Color map, no alpha.
PAIN = White RGB with alpha. Details under team colors. Not always used.
STRP = Black RGB with alpha. White RGB chanels shows stripe colors?
TEAM = Black RGB with alpha. White RGB chanels shows team colors?
DIFF = Standard diffuse map. No alpha.

Output files:

DIFF: Standard (no alpha)

NORM: (no alpha)
R = NA
G = NA
B = pain overlay map

GLOW: (no alpha)
R = glossiness
G = Self illuminating
B = specular

TEAM/STRP: (no alpha)
R = team
G = stripe
B = Details

1 Like

Ummmm - as has been said a few times (here and on other forums) - there’s no real need to ‘research’ this stuff - nor is trying to reverse-engineer the ‘in HOD’ textures… because there is no firm rule. It depends, entirely, on the shader - and the info on how any given ‘in HOD’ texture is built is very easy to determine - look in the SHADERS.MAP used by HODOR. Couldn’t get much clearer. The ‘in HOD’ data should be even less interesting because the current hacked tools to edit it won’t work in the near future, at all. The pre-HODOR format/layouts are useful to know, but completely depend on the shader used.

ALSO - Mods and others will make new shaders (and the next HODOR will load more than one .MAP so you can add more without having to ‘lose’ ours during updates) - which will further change the layout. It is very, very flexible.

Please, don’t try to ‘document’ the ‘in HOD’ layout - because that’s got many, many variances/gotchas - so it’s bad documentation. We won’t document this further for the same reasons - for any given shader the inputs and outputs vary, and those extensions can and do sometimes mean different things. They’re all just data fed into a shader that does what it wants with the bits…

Some of us are not understanding the shader file thoroughly enough. Not all the terms are clear to a novice. Not enough details are defined. I was only trying to get a more clear picture of what’s going on with the regular $ship shader as it is. If I understood that then the others would make more sense as well.

From looking at the SHADERS.MAP, I can tell you that the normal map comes entirely from the NORM file, and PAIN only goes into the team texture, as the blue channel.

Edit: @Bitvenom It might be useful to have some more comments salted into shaders.map, PAIN’s function in particular is not especially obvious from just looking at this. I can guess in this case, but I’d have to go hunt through the actual shader code to know for sure.

1 Like

Could you please help me better understand the terminology?
I understand the RGB and I think the 0 = Black and 1 = White, but I don’t get the ‘inverse’, rgb, or the i.e. “$team[DXT1] = 1 1 0 1”, or i.e. “TEAM = 1 1 1 r #invert into a…”
It’s the terminology that has me baffled.
I’ve been pretty much a simple modeler and texturer. I never got too deep into the details.

Inverse means that if the value is at the maximum in the source file, it’ll be at the minimum in the destination, and visa versa. The 1,1,0,1 I think is the default value of the pixels in that map, though I’m not sure if it’s from 1.0-0.0 or from 255-0. I’d guess 1.0-0.0, but the 5s in the normal maps throw me off that idea.

Perhaps the most important thing though is that for the ends of feeding data into HODOR, you don’t really need to know all that, you just need to know what maps it’s expecting as inputs for the shader. What contortions it does to them is it’s own business.

1 Like

That would be excellent :smiley:

IIRC bitvenom already said the PAIN channel is actually used to give a more paint-like reflection to a part of the texture without actually giving it a team color.

It would be nice to have these things all together in one place or in a file we can reference. Searches don’t always produce relevant results.

I agree that we should have better reference as to what particular shader does what. Some shaders may be obvious to the experienced modeler, but a novice has no clue as to what he/she is looking at.

Some of us just want to fully understand what does what before making the mistake of creating something that will turn out to be overridden in an update.

1 Like

Is this a possibility? Or do we need to find people that can fill in the blanks for us… dummies?

We need a SHADERS.MAP for dummies :smile:

I’ll add some documentation to my wiki for the shaders, give me a day or two. Any specific questions?

Whatever info you can add would be great. I’m pretty clueless.