Open Inventor
A short introduction
Capabilities of Open Inventor
Easy construction of 3D scenesUser interactionAnimation
Overview
Open Inventor is a “scenegraph“ graphics API: All visible objects are stored in a scenegraphBuilt on top of OpenGL
Scenegraph Anatomy
There are three kinds of nodes: Group nodes: allow construction of
trees Property nodes: change the color /
location / ... of the next object Shapes: visible objects
Common node types
Group nodes SoGroup SoSeparator, SoSwitch, ...
Property nodes Transform: SoTransform, SoRotation, ... Appearance: SoMaterial, SoDrawStyle, ...
Shape nodes SoShape SoCone, SoCube, SoText2, ...
Scene objects
class name prefix: So (scene object)derived from SoNodecan be inserted directly into the scenegraph
Example:root->addChild(new SoSphere)
Fields
class name prefix: SoSF/SoMF (Single Field/Multiple Field)
public attributes of Scene objectsspecify the appearance of scene
objects (like radius, height, color ...)
... Fields
Newly created scene Objects have fields with default valuesFields can be “connected“ to other fieldsFields can be changed using setValue(s):
Example:SoSphere *sphere = new SoSphere;...sphere->radius.setValue(3);
Typical Open Inventor code...
SoSeparator *root = new SoSeparator;
SoTranslation *t = new SoTranslation;
t->translation.setValue(2, 0, 0);
root->addChild(t);
root->addChild(new SoCube);
...
Loading Scenes
Loading scenes is very easy:
SoInput scene;
scene.openFile("chessboard.iv");
root = SoDB::readAll(&scene);
Advanced Topics
Manipulators allow the user to modify the sceneActions compute bounding boxes, picks objects ...Sensors can detect changes in the scene and invoke callback functionsEngines can animate the scene
A few tips...
Follow the setup tutorial for Coin3D!You need a new So... class? You need a new #include statement!Don‘t forget to insert your nodes into the scene graph!
Resources
Coin3D: A free implementation of Open Inventor www.coin3d.orgInventor Mentor: A good online reference bookAnother presentation: http://vrlab.postech.ac.kr/vr/gallery/edu/vr/openinventor.pptdev-gallery: Some simple tutorials www.dev-gallery.com/programming/openInventor/main.html