Open Inventor A short introduction. Capabilities of Open Inventor Easy construction of 3D scenes User interaction Animation.

  • Published on
    02-Jan-2016

  • View
    215

  • Download
    1

Transcript

  • Open InventorA short introduction

  • Capabilities of Open InventorEasy construction of 3D scenesUser interactionAnimation

  • OverviewOpen Inventor is a scenegraph graphics API: All visible objects are stored in a scenegraphBuilt on top of OpenGL

  • Scenegraph AnatomyThere are three kinds of nodes:Group nodes: allow construction of treesProperty nodes: change the color / location / ... of the next objectShapes: visible objects

  • Common node typesGroup nodesSoGroup SoSeparator, SoSwitch, ...Property nodesTransform: SoTransform, SoRotation, ...Appearance: SoMaterial, SoDrawStyle, ...Shape nodesSoShape SoCone, SoCube, SoText2, ...

  • Scene objectsclass name prefix: So (scene object)derived from SoNodecan be inserted directly into the scenegraph

    Example:root->addChild(new SoSphere)

  • Fieldsclass name prefix: SoSF/SoMF (Single Field/Multiple Field)public attributes of Scene objectsspecify the appearance of scene objects (like radius, height, color ...)

  • ... FieldsNewly 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 ScenesLoading scenes is very easy:

    SoInput scene;scene.openFile("chessboard.iv");root = SoDB::readAll(&scene);

  • Advanced TopicsManipulators 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!Dont forget to insert your nodes into the scene graph!

  • ResourcesCoin3D: 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

Recommended

View more >