This file will be automatically generated from the .DTD-file later on.
We are currently rewriting the specifications to better suit games. Mutliple keyframes per object (same object with different movements). Support for quake-a-like levels is also being investigated. Please comment on it.
Materials
Material
String name
Float transparency
Float mirror
Bool two-sided
Color ambient
Color diffuse
Color specular
Texture
Float percentage
Bool mip-mapped
TextureFile
String filename
TextureInternal (not in the xml-version)
String filename
Byte data[] (end where the chunk ends)
TexturePak
String filename
Int32 offset
Int32 length
Environment-mapping
Texture
Bump
Texture
Transparency
Texture
An additional texture could be added (same UV-coordinates?).
How (if) will we support sub-materials? Blowgoat:ship (material ship in blowgoat). 3ds-max style this is.
Should we have ambient, specular and such?
Scene
Ambient
Color
Colortrack
Vectortrack
Int32 keys {int32 frame, vector value, float easeTo, float easeFrom, float t, float c, float b}
Fog
Float far
Float farDensity
Color
Color background
Float near
Color nearDensity
Object
String name
String parentObject
Matrix rotation
Vector pivot
Vector scale
Dummy
Geometry
Sphere (radius and pivot is expressed in pivot/scale (force scale=r,r,r?))
Bool smoothed
String material
Box (size and pivot is expressed in pivot/scale)
Bool smoothed
String material[6]
Cone
Spline
This is currently being looked into.
If we include it, it will be a spline in space with a radius per segment,
and also TCB-values for each segment. It can be used for any worm-shaped object
or to define a static 3d-path.
Progressive-Mesh
This is currently being looked into.
If we include it, an ordinary "Mesh"-chunk will also be present.
BSP-tree-nodebased
Mesh (splitted version of mesh)
BSP-Node
BVolume
Plane plane
Int32 plane-faces {int32 faceIndex}
BSP-FrontNode
BSP-Node
BSP-BackNode
BSP-Node
Nurb
More
Mesh
Vertexdata
Int32 vertices {vector position}
Multi-mesh
Mappingindex
Facedata
Int32 faces {int32 vertices {vertexIndex}}
Texturemapdata
Materialdata
Int32 materials {string materialname, int32 faces {int32 faceIndex}}
MappingIndex
Int32 faces {int32 vertices {mappingIndex}}
Mappingcoordinates
Int32 coordinates {float u, float v}
Lightmapdata
Materialdata (perhaps not materialdata here, rather MaterialLightmap or Texture)
Mappingcoordinates
MappingIndex
Tri-mesh
Mappingindex
Facedata
Mappingindex
Texturemapdata
Lightmapdata
Vertextrack
Int32 animatedVertices {int32 vertexindex, vectortrack}
Rotationtrack
Quartaniontrack
Int32 keys {int32 frame, quaterion value, float easeTo, float easeFrom, float t, float c, float b}
Positiontrack
Vectortrack
Scaletrack
Vectortrack
Visibletrack
Booltrack
Int32 keys {int32 frame, bool value} (it's on/off, so no need for value?)
Bonestrack
This is currently being looked into.
The implementation will probably be lightwave 6.0 and 3ds-max compatible.
Lightwave 5.x bones are also being investigated. They are far more simple.
Detail-track
Floattrack
Int32 keys {int32 frame, float value, float easeTo, float easeFrom, float t, float c, float b}
Light
String lightname
String parentObject
Distantlight
Color color
Float strength
Vector direction
Omnilight
Vector position
Color color
Float strength
Float fallOff
Spotlight
Vector position
Vector target
String parentTargetObject
Color color
Float strength
Float fov
Float roll
Float fallOff
Directiontrack
Vectortrack
Fovtrack
Vectortrack
Rolltrack
Floattrack
Positiontrack
Vectortrack
Targettrack
Vectortrack
Colortrack
Vectortrack
Fallofftrack
Floattrack
Strengthtrack
Floattrack
Visibletrack (Equal to strength=0)
Booltrack
Camera
String cameraname
String parentObject
String parentTargetObject
Vector position
Vector target
Vector upVector
Float aspectRatio
Float fov
Float roll
Positiontrack
Vectortrack
Targettrack
Vectortrack
Fovtrack
Floattrack
Rolltrack
Floattrack
Viewport (current camera)
String cameraname
Viewporttrack
Int32 keys {int32 frame, string cameraname}
Visibility
Portals
Rooms
Int32 rooms {string object}
BSP-tree // Alarge BSP-tree of all static objects in the room
Doors
Int32 portals {string object, int32 roomIndex, int32 faces {int32 faceIndex}}
Doors-BSP
Doors
Placement
Int32 objects {string object, int32 roomIndex}
BSP-scene // A large BSP-tree of all static objects in the scene… And more
BSP-tree
This is merely a suggestion. Probably needs to be redone 95%. Perhaps 98%.
Perhaps a room can be built out of polygons in a object rather than of a entire object. This is not supported here.