Jeff-Groves
07-27-16, 01:06 PM
Little project I'm working on and asking for any info on the TMAP structure.
I know the rest of the dat format so here's the relevant information.
type 1: 3D chunk
after the Chunk type, subtype/ver and size, format of the data part is like follows:
chunk_id: 8 bytes //this is used to reference this part inside the file. References usually found inside NODE (type 4) chunks
???????: 1 byte //don't know about this one
nverts: 4 byte long //number of vertices
vertex data: nverts * 3 floats(X,Y,Z)// these are vertices, 3 floats per vertex
ntri: 4 byte long //number of triangles;
triangle data: there are ntri triangles and their texture mapping, each one is as follows
vertex1: unsigned 2-byte int
vertex2: unsigned 2-byte int
vertex3: unsigned 2-byte int
texture coord1: unsigned 2-byte int
texture coord2: unsigned 2-byte int
texture coord3: unsigned 2-byte int
????????????: one byte
ntxcoords: 4 byte long //number of texture coordinates
texture coords data: ntxcoords * 2 floats // texture coordinates are 2D
some objects end here, but some have "TMAP" and a bunch of floats after this
The TMAP is used in some way to produce the AO maps used in Silent Hunter.
I'm working on a new exporter that will export the complete 3D model in one shot like Pack3D does
but adjust the positioning of each object so it's properly placed to have a completely corrected ship with no further 3D work needed.
I know the rest of the dat format so here's the relevant information.
type 1: 3D chunk
after the Chunk type, subtype/ver and size, format of the data part is like follows:
chunk_id: 8 bytes //this is used to reference this part inside the file. References usually found inside NODE (type 4) chunks
???????: 1 byte //don't know about this one
nverts: 4 byte long //number of vertices
vertex data: nverts * 3 floats(X,Y,Z)// these are vertices, 3 floats per vertex
ntri: 4 byte long //number of triangles;
triangle data: there are ntri triangles and their texture mapping, each one is as follows
vertex1: unsigned 2-byte int
vertex2: unsigned 2-byte int
vertex3: unsigned 2-byte int
texture coord1: unsigned 2-byte int
texture coord2: unsigned 2-byte int
texture coord3: unsigned 2-byte int
????????????: one byte
ntxcoords: 4 byte long //number of texture coordinates
texture coords data: ntxcoords * 2 floats // texture coordinates are 2D
some objects end here, but some have "TMAP" and a bunch of floats after this
The TMAP is used in some way to produce the AO maps used in Silent Hunter.
I'm working on a new exporter that will export the complete 3D model in one shot like Pack3D does
but adjust the positioning of each object so it's properly placed to have a completely corrected ship with no further 3D work needed.