Character models use this vertex format:
Position : float[3]
Normal : byte[4] // only first 3 bytes are used for xyz, last one is 0
TexCoord : float[2]
Tangent : byte[4] // same format as normat
Binormal : byte[4] // same format as normat
BoneIndiciesAndWeight : byte[4]
so there are streams that each mesh should have. They need to find out which they know of and the mystery blocks will likely be the rest of them.
These are the IDs that should be used to mark them in the file:
Position: 0
BoneIndiciesAndWeight : 2
Normal : 3
TexCoord : 4
Tangent : 10
Binormal : 11
Without analyzing their data I've noticed they've been highlighting number 3 somewhere, which could mean it's normals.
I think only lod0 has all that info, other lods probably drop tangent and binormal, the rest should be there. In theory they could mark even lod0 to use lod1 material and get away with not having these two components, but that would remove per pixel normal mapping and replace it by just vertex lighting.
To get more info about what tangent and binormal is, they should look up tangent space normal mapping as that's what we're using. Mesh needs to contain valid tangent space (normal, tangent & binormal).
Bookmarks