Difference between revisions of "PROCB"
From Mod Wiki
(→Simple Types) |
|||
(One intermediate revision by the same user not shown) | |||
Line 1: | Line 1: | ||
=== Simple Types === | === Simple Types === | ||
− | These are all stored as little-endian | + | |
+ | ---- | ||
+ | |||
+ | '''These are all stored as little-endian''' | ||
+ | ---- | ||
+ | |||
---- | ---- |
Latest revision as of 10:40, 12 December 2007
Contents
Simple Types
These are all stored as little-endian
- bool = 1 byte
- unsigned char = 1 byte
- int = 4 bytes
- float = 4 bytes
Compound types
- vec3 = float x, float y, float z
- bounds = vec3 mins, vec3 maxs
- string = int length, char[ length ]
File Structure
chunk id; chunk data; ... chunk id; chunk data;
Chunks needed for loading geometry data
Material Table
material chunk { string id = "materials"; int numMaterials; string array[ numMaterials ]; }
Model Chunk
model chunk { string id = "model"; int chunkLength; string name; int numSurfaces; int numAreas; int array[ numAreas ]; for each of numSurfaces { int materialIndex; bool hasVertexColor; bounds surfaceBounds; int numVerts; int numIndices; int __privateCount; for each of numVerts { int numVertexElements; // should always be 12 float vertex[ numVertexElements ]; int numColorElements; // should always be 4 unsigned char color[ numColorElements ]; // if hasVertexColor is true, use the color read above; otherwise the color is "255 255 255 255" // vertex[ 0 ] - x // vertex[ 1 ] - y // vertex[ 2 ] - z // vertex[ 3 ] - s // vertex[ 4 ] - t // vertex[ 5 ] - normal x // vertex[ 6 ] - normal y // vertex[ 7 ] - normal z // vertex[ 8 ] - tangent x // vertex[ 9 ] - tangent y // vertex[ 10 ] - tangent z // vertex[ 11 ] - bitangent sign } for each of numIndices { int index; } for each of __privateCount { float __private[ 6 ]; int __private; int __private; int __private; int __private; } } }
all_other_chunks { string id; int chunkLength; <skip ahead by chunklength to get to the next chunk> }