The order in which primitives appear within a model is important! Depending on the order, things like grouped translations/rotations and coloring can produce different effects. So the V3D format should be considered a serial procedure to most applications.
All the primitives that exist in the V3D format fall into two basic catagories, visual and control. Visual primitives are drawn, like lines, triangles, quads, etc. While control primitives (rotate, translate, select color, etc) are used to modify the state of the drawing context (ie modifying the GL states of the current GL context if this model is to be drawn using OpenGL rendering).
For example, the following abstract occurance of primitives will produce a red triangle, a green triangle, and a textured triangle:
Color
red
Triangle
Color
green
Triangle
Texture Select
(some texture)
Color
white
Triangle
Color
blue
Triangle
Texture Unselect
Note the Color
primitive just after the Texture
Select
which specifies a white tint for the texture, that will
texture the following Triangle
with texture texels exactly as
they appear on the texture. Following that is another Color
primitive changes the tint to blue and the following triangle will be
textured but with a blue tint.
While you are getting used to the notion of procedural 3D data, keep in mind that everything under V3D is ultimatly abstract, V3D is mearly data without a non-variant output standard. That means the program interpriting the V3D data can decide whatever it wants the data to look like with very little constraints other than the basic V3D specification.
In this next abstract example, two triangles have vertex data that are identical but they will be drawn differently beacause we insert a translate primitive.
Color
red
Triangle
Translate
XYZ: +5 -4 +0
Triangle
Untranslate
So the second triangle will be moved to the right 5 units and back 4 units.
Next Lesson: Editing Primitives
Back to the top
Vertex is Copyright © 2000-2001 WolfPack Entertainment