Restructures an inventor object for improved rendering performance
ivfix [ -ahntvV ] [ -d dir ] [infile] [outfile]
ivfix reads an Inventor object and restructures it to improve the object's rendering performance. ivfix processes the scene graph in two phases:
Phase 1)
Analyzes the organization of the input scene graph, and tries to sort it a better way to take advantage of coherence. For example, it tries to organize subgraphs by common textures, since switching textures is expensive. Once sorted, it also tries to combine subgraphs so that the final result has fewer nodes.
Phase 2)
"Flattens" the subgraphs that result from the first phase. This tessellates all shapes into triangles that are then organized into triangle strips. For example, two spheres may be combined into one triangle strip.
Warning! ivfix does not try to preserve any non-appearance attributes, such as names. It will also remove most engines, animation nodes, and field-to-field connections. ivfix is best run on individual objects, not on entire scenes. When rendered, the output object will be equivalent to the original file, but much of the object hierarchy will be lost.
Note also that the output file may be larger than the input file. For example, a sphere node will be converted into triangle strips.
The following command line options are allowed:
-a
Write an ASCII file. The output file is binary by default.
-d dir
Add dir to the list of directories to search, e.g. for file nodes.
-h
Print the usage message.
-n
Do not generate any normals.
-p
ivfix usually tries to define properties as SoVertexProperty nodes. This option prevents that.
-t
Do not generate any texture coordinates.
-v
(Verbose) Display status information during processing.
-V
(Very verbose) Display more detailed status information.
Note that the source code to ivfix comes with the Open Inventor 3d Toolkit.
/usr/share/data/models/* - Sample 3D data files /usr/share/src/Inventor/tools/ivfix/* - Source to ivfix
ivfix < slowObject.iv > quickObject.iv
inventor, ivview, ivcat, ivinfo, SceneViewer, gview, drop, maze, noodle, revo, showcase, textomatic
Ignore flags are not properly handled.