Formax converts 3-D models from several popular file formats to my IFF format. These files can then be used in a game based on the Actor Engine. Formax is also available as a plug-in for 3D Studio Max. While you can modify the models using Formax, you can not create them from scratch.
Formax currently reads the following file formats, with various stages of completeness:
3DS | Autodesk 3D Studio |
---|---|
LWO | Lightwave Object |
FLT | OpenFlight |
MAP | Quake & Half Life |
Most 3-D model files refer to separate texture map and other files. Instead of immediately trying to find these files, Formax displays the directory paths where it would look in its lower right corner. You can edit these paths and change their order before pressing the resolve button, which searches for the texture files. When reading Quake and Half-Life files, WAD files can be included in the search paths.
Animax file format stores 3D objects in a simple scene graph, where properties are attached to nodes in a tree. The 'Hierarchy' button shows the parent and child relationships of the geometry, while 'Properties' shows the details of the whole scene graph, including render states and materials.
The scene graph control displays nodes and properties using their 4 letter type codes. Clicking on these allows you to view their details and, in many cases, modify them. Right clicking brings up a menu so you can add and remove properties from the tree.
Geometry nodes have several types but most will be triangles, abbreviated as 'TRGL', quadrilaterals, 'QUAD', and polygons, 'POLY'. These contain lists of vertices, normals and texture coordinates. In a triangle node, every 3 entries defines a face in the mesh, in a quad every 4 defines a face. Geometry nodes can contain child nodes forming the tree, and a node with children but no geometry appears as a 'MESH'.
Entries in a geometry node are specified as indexes so data can be reused. These indexes refer to entries in vertex, normal and texture coordinate pools, abbreviated as 'VRTX', 'NRML' and 'PNTn'. The pools are properties, so a skinned model would have a single pool of each type at the root of its tree. The jointed model above has separate pools for each mesh.
Surface types are normally specified as materials, 'MTRL', which are properties containing pigment and texture properties. A material can contain any number of textures, as each texture has mode settings to define its effect. Materials can also contain shader programs, currently using OpenGL's assembly language.
Models can also have transform properties to orient nodes and their children: gimbals ('GMBL') use Euler angles and joints ('JOIN') use quaternions. Animated meshes use the quaternion joints.
The 'optimize' command merges similar nodes and removes redundant properties, making the resulting model more efficient for the renderer. Clicking in the render window then moving the mouse zooms the object forward and backward. With a right click the mouse translates the object, and while holding the shift key the mouse tilts it.