130 likes | 441 Views
Open Inventor. A short introduction. Capabilities of Open Inventor. Easy construction of 3D scenes User i nteraction Animation. Overview. Open Inventor is a “ s cenegraph“ graphics API: All visible objects are stored in a scenegraph Built on top of OpenGL. Scenegraph Anatomy.
E N D
Open Inventor A short introduction
Capabilities of Open Inventor • Easy construction of 3D scenes • User interaction • Animation
Overview • Open Inventor is a “scenegraph“ graphics API: All visible objects are stored in a scenegraph • Built 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 SoNode • can 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 objects • specify the appearance of scene objects (like radius, height, color ...)
... Fields • Newly created scene Objects have fields with default values • Fields can be “connected“ to other fields • Fields 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 scene • Actions compute bounding boxes, picks objects ... • Sensors can detect changes in the scene and invoke callback functions • Engines 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.org • Inventor Mentor: A good online reference book • Another presentation: http://vrlab.postech.ac.kr/vr/gallery/edu/vr/openinventor.ppt • dev-gallery: Some simple tutorials www.dev-gallery.com/programming/openInventor/main.html