Return to VScape home page...
 

VScape VML

The VML project is a pair of file formats, one XML based human readable and editable text, the other a cross-platform packed binary IFF format. The project also includes C++ API's for reading, writing, and interfacing to the formats, and will include demo applications, exporters, and tool frameworks.

Why? The effort to create a simple 3d file format isn't too significant, but as you start to build needed tools around that format (such as stripification, simplification, CLOD preprocessing, or self-occlusion mapping such as spherical harmonic coefficient generation), the quantity of code locked to that format and the time involved therein becomes very significant. That effort also becomes captive to that format, and as formats evolve it becomes necessary to burn valuable time to rework growing numbers of sophisticated tools.

VML is an attempt to create an open 3d file format sufficiently flexible to facilitate high-end content, while maintaining both human editability and binary efficiency. It also seeks to create a platform for generic, reusable tools. It is our hope that a community of tool creators will adopt and extend this work, making it possible for many tool programmers to stop reinventing the same wheels…

Feature List

  • Cross-platform text and binary formats for 3d content with basic API in C++
  • Read and write to XML format VML
  • Read and write to binary format VML
  • Geometry
    • Vertex parameter tables for most int and float types as scalar, vector or matrix
    • Parameter tables are separately indexed per vertex for optimal storage footprint
    • Primitive lists define surfaces as triangle in list, strip, or fan format.
  • Materials
    • Maps: Texture, bump, transparency, specularity
    • Colors: Ambient, Diffuse, Specular, Emissive
    • Shader filenames and configurations
    • Texture UV animation
  • Multiple primitive groups per mesh
    • Multitexturing - change material per group
    • Presort by bone weight set for skeletal animation (which is coming soon)
    • Preserve feature boundaries and hint attributes for morphological processing…
  • Vertex colors
  • A reusable generic VmlMesh OpenGL rendering service class
    • Full support for primitive groups
    • Multitexturing using application callbacks to load/unload textures
    • Vertex colors
    • Texture reloading capability

Documentation Summary

This documentation was written to help tool creators understand the design decisions involved in VML. As such, it progressively introduces concepts.

 
developers/vml/index.txt · Last modified: 2008/11/10 10:14 (external edit)
 
Copyright © 2008 VScape ®, All Rights Reserved.