|
Applications & Utilities | Web Log
..[t]his is why making a full-featured converter from any POV-file to any other format is an almost impossible task.
- POV-Ray Documentation 1.4.4.6: Why are there no converters from POV to other formats?
pov2mesh is a command line utility for Windows that accepts a POV-Ray .pov file as input and produces a Maya .obj file as output. While pov2mesh does not yet understand the full range of .pov syntax, it is nevertheless a valuable tool in its own right.
At present, pov2mesh accepts a subset of the POV-Ray scene description language, executes the CSG operations specified in the .pov file and tessellates the resulting shapes to produce an .obj polygon mesh file. As new versions are released, pov2mesh's support for the POV-Ray language will increase accordingly. Screenshots demonstrate some of pov2mesh's current abilities.
pov2mesh is shareware and available for download. The executable is fully functional for an evaluation period of 30 days after its first use. After the 30-day evaluation period has expired, the program must be registered to be unlocked. Once registered, users of early versions are entitled to free upgrades to future versions. The cost to register pov2mesh is US $25.
Download
| Purchase/Register
| Screenshots
| Documentation
- Language
- Certain valid POV constructs that are unsupported by pov2mesh must be removed (or commented out) from the .pov file to be valid input for pov2mesh.
- Expression evaluation (ie. arithmetic expressions) is unsupported.
- Functions (#define function()..) are unsupported.
- Control constructs (#if, #while, etc..) are unsupported.
- The matrix keyword for transformations is unsupported.
- Some other language elements are unsupported [see documentation].
- Implementation/Optimization
- All points in a model must be within the range <-1000, -1000, -1000> - <1000, 1000, 1000>. If points lie outside that range, CSG operations may have unpredictable effects.
- The CSG evaluation engine is currently implemented using recursion. This leads to stack overflows in certain cases (especially evaluating spheres with lots of slices/segments). pov2mesh is currently configured to use a maximum of 10mb of stack space.
- The CSG evaluation engine in pov2mesh is presently implemented using binary space partition trees. Certain pathological cases can cause very long running times.
- More polygons are generated than are necessary.
- Primitives
- The text primitive is unsupported.
- Some other primitives are unsupported [see documentation].
- Texturing
- Image mapping is not yet supported.
- Procedural texturing is not supported and there are no current plans for future procedural texturing support.
pov2mesh was created as the back-end of a game development tool. Another program generates urban architecture as .pov files and pov2mesh converts the files to a mesh format suitable for use in a game. As it turned out, pov2mesh was suprisingly difficult to get right. A first real foray into geometric computation, it was an entirely different challenge than prior projects.
A principal priority in future versions is to fill out support for the POV-Ray scene description language. While many language constructs are not implemented in this current version of pov2mesh, they soon will be. Faster execution is also a desired enhancement in versions to come.
For future versions of pov2mesh:
- Language
- Instead of failing, valid POV constructs that are unsupported by pov2mesh in input .pov files will be ignored.
- Full expression evaluation (ie. arithmetic expressions).
- Support for functions (#define function()..).
- Support for control contructs (#while, #if).
- Support for the matrix keyword for transformations.
- Better support for other POV language elements.
- Implementation/Optimization
- Replace the recursive CSG evaluation engine with an iterative engine to eliminate the possiblity of stack overflows.
- Detect long-running time cases with respect to the BSP tree implementation and employ an alternative algorithm (for example, octree-based) for select portions of the CSG tree.
- Currently 64% of execution time is spent in system alloc and free functions. This can be significantly reduced by pooling allocations and restructuring the code base to require fewer allocations. These change may significantly complicate the existing code base.
- Incorporate polygon reduction strategies.
- Primitives
- Change the sphere primitive to generate more efficient geospheres as opposed to spheres composed of quads.
- Support for text primitive.
- Support for other primitives.
- Texturing
- Support for image mapping.
All pov2mesh updates, news and bug reports will be posted here as they occur.
Paul D. Senzee
|
Site and pov2mesh copyright (c) 2004-2006 Paul D. Senzee
|
|