140 likes | 166 Views
Explore the capabilities of Open Inventor for effortless construction of 3D scenes, user interaction, and animation. Learn about scenegraph graphics API, node types, fields, scene objects, and advanced features like manipulators, actions, sensors, and engines. Get tips for efficient coding and discover additional resources for mastering Open Inventor.
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