Open Inventor FAQs


  1. Where can I find information about licensing?
  2. If I want to distribute my Open Inventor application to other sites, what do I need to do?
  3. Why my application takes time in getting FLEXnet licenses or does not take in account my FLEXnet licenses?

File Formats

  1. What file formats does Open Inventor read?
  2. What file formats does Open Inventor write?
  3. Are there APIs in Inventor for reading in WRL files directly?

Other Tools/Operating System Features

  1. How can I write my application so it will run on UNIX, Linux, and Windows?
  2. Can we use OpenGL functions in Open Inventor?
  3. [Win32] If I want to use GDI with Open Inventor (e.g., for drawing a rubberband line), what do I need to look out for?
  4. Can I make my Open Inventor program multi-threaded to run on more than one CPU?
  5. Is there any Unicode support in Open Inventor and/or MeshViz?
  6. Can I run a 3D graphics application on a UNIX system and display the graphics remotely on a Windows PC?
  7. Does Open Inventor support 64-bit programming?

Hardware Features/Stereo/Overlays

  1. [Win32] What hardware do you recommend that I buy for use with Open Inventor?
  2. [Win32] Can you recommend a graphics card for my system?
  3. [Win32/Linux] Can you tell me which 3D accelerators have full OpenGL support?
  4. How can I determine the features of my graphics board?
  5. [Win32] What makes a pixel format "good" or "bad" for use by Open Inventor?
  6. [Win32] When I tried to run an Open Inventor program on my laptop, I got an Inventor error "choosePixelFormat failed". What do I do?
  7. [Linux] What are the server settings to turn on overlays and stereo ?

General Reference Info

  1. How do I get Open Inventor to do flat shading?
  2. How can I change the appearance of a manipulator? For example, I am using an SoHandleBoxDragger in my app and I only want it to scale and translate in the X and Y directions. I also want to get rid of the extruders in the middle of the box. How can I restrict the dragger to the xy direction and also to get rid of the unwanted extruders?
  3. How do I do a background image? I want a background image to be fixed in a scene with all graphics rendered on top of it. For example, Mona Lisa as a background, with spinning cubes on top.
  4. For Large Model Viewing (especially SoSimplify Action), which geometry nodes get decimated by SoDecimator? Which don't?
  5. Does Open Inventor support Boolean operations? For example, how can I create a model of a cube with a cylindrical hole, something like myGraph = Cube - Cylinder?
  6. I am using SoCoordinate3 and SoFaceSet to represent some polygons. When the draw style is "wireframe", the tessellation of the polygons appears and is not very pretty. Wireframe mode should show the only the edges of each polygon. Would using an SoVertexProperty node solve this problem?
  7. How does Open Inventor convert a quaternion into a rotation matrix?
  8. Is there any way to suppress fill using SoVRMLIndexedFaceset? I was hoping to achieve a "hidden line" effect using VRML.
  9. Which VRML 2.0 (now officially VRML97) nodes does Open Inventor support?
  10. I have read my VRML scene into Open Inventor. Now how do I access the VRML scene to perform actions such as moving objects from one location to another?
  11. I was trying to map a 3D point in world coordinates to a 2D point in screen coordinates. I used a function called ProjectToScreen in class SbViewVolume, but could not get the desired results. Do you have an example to do that?
  12. Does Open Inventor support "hidden line removal" mode? I know Open Inventor has HLR mode but when you set it, you see all the triangles. I am interested in having an HLR mode where there are no triangles, just the contours.
  13. I'm having difficulty trying to understand the screenArea parameter of the SoLevelOfDetail node. The Inventor Mentor states that it is in "square pixels", but I'm having trouble relating that to anything else. It does not seem to be related to the getSize of the Render Area from what I have tested, and I don't see how to determine it through any boundingBoxAction calls. How should I be computing the screen area?
  14. We want to render 3D files that have 2 million points (i.e. 200 by 200 by 50) where each point will have a certain 3D coordinate and a value at that coordinate. The coordinates will not be equidistant. Can you do this with Open Inventor for Win32?
  15. How can I prevent a callback node from being cached?
  16. [Win32] Is there a way to suppress Open Inventor automatic redraw on Windows when the window including the render area is exposed or de-iconified?
  17. How do I create an array of objects such as SoCone? I tried to do:
          SoCone *cones[]=new[] SoCone;
          but it doesn't work!
  18. How do I prevent an SoCallback node from being render cached? I need to make sure my callback is called on every render traversal.
  19. What happens if an Open Inventor geometry file contains multiple file headers?
  20. How can I save a scene graph such that it is "self-contained"?
  21. Can you give me more info about writing a "self-contained" file?
  22. How can I tell Open Inventor to ignore a particular node? Is there a way to set an ignore flag on a scene node (object) to disregard it, in the same manner that we can ignore a field?
  23. How can I customize the behavior of SoWriteAction? For example, how can I prevent certain nodes from being written out?
  24. How does Open Inventor transform normalized device coordinates (0..1) to pixel coordinates?
  25. If I set "override" on a Material node, how can I turn off override later in the traversal?
  26. Picking - If my primitives (e.g. SoIndexedFaceSet) contain multiple faces, how can I determine which face was selected?
  27. How do I do a gradient background for my viewer window?
  28. Is there a way to "capture" the normals computed by Open Inventor and save them for future use?
  29. How can I programmatically take a "screen shot" of an SoExaminer viewer window?
  30. How can I get SoExtSelection to work in "additive" mode?


  1. How can I handle double-clicks in Open Inventor?
  2. How is the functionality behind the viewer controls accessed in Open Inventor?
  3. How do I select the type of camera (perspective or orthographic) through the Examiner viewer class?
  4. Is there any other way to know when a traversal ends and everything has been rendered to the viewer, other than adding a callback node at the last node of the scenegraph?
  5. When I read my VRML model into (for example) the SceneViewer, and then I try to spin it, it flies offscreen. In general, it seems hard to control the camera with the hand cursor if I'm dealing with a VRML model.
  6. Is there a way to use a keyboard or a mouse event in an Examiner Viewer? (I could do it in a Render Area.)
  7. [Win32] Why does changing the scene graph not trigger a redraw?
  8. [Win32] When/How should my application call SoWin::doIdleTasks?
  9. How can I turn off viewing mode in my application so that the user cannot move or spin the scene?
  10. When I click the seek button on the viewer to set a new center of rotation for the camera I want to store the center of rotation position. Where is it stored? Is there an easy way to get this information?


  1. I would like to be able to rotate the camera around an object, the way the bottom wheel does it in the examiner viewer. Unfortunately, the Inventor Mentor (Chapter 11) provides code only for moving the camera in the x or y direction, but not actually for rotating it. Do you have any source code for the rotation?
  2. How come my camera (or other object) isn't rotating the way I expect?
  3. How can I make a function that pans the current view in the x and y direction relative to the screen? I tried it with camera.position but if the user reorients the scene with the mouse, the movement does not occur along the screen's x and y coordinates.
  4. How I can place an object in the scene graph (for example, a color legend) that doesn't move when I move the main geometry?
  5. I've read a file into the SceneViewer, and when I use the viewer controls to move the camera, some of the geometry moves and some of it doesn't.
  6. How do I map mouse coordinates back to 3D coordinates?


  1. How come my texture appears to "warp" on the surface of my objects (when I use a perspective camera)?
  2. [Win32] I'm getting a stack overflow error when I attempt to display a scene graph with a large texture. What should I do?
  3. How does Open Inventor texture quality relate to OpenGL texture mapping options?
  4. Is there a limit for the texture size for Open Inventor?
  5. The application I have uses many scene graphs stored in .wrl files with externally defined textures (i.e. textures are stored in .jpg files and loaded by the .wrl file). Since many of the same textures are used by different input VRML files, is Open Inventor smart enough to load the texture only once and use it for all VRML files, or does it load the texture file multiple times?
  6. It seems to take a long time to display my scene graph that uses a lot of texture images.
  7. How can I texture map an RGBA image onto a polygon such that the unwanted part of the image is transparent?
  8. Tip: On some systems, you may get better performance selecting a textureQuality of 1.0.

Microsoft Windows

  1. [Win32] How can we have a popup menu (right mouse context menu) in the Open Inventor window? Messages such as mouse right button down (WM_RBUTTONDOWN) seem to be hidden by Open Inventor.
  2. [Win32] How do I turn off the "auto focus" feature in Open Inventor applications? When the mouse moves over an Inventor window, the window immediately gets the input focus though there is no left-mouse click on it.
  3. [Win32] In the slotcar demo, how would I specify that I want the window to be frameless? I am going to be running full-screen simulations and I don't want window frames in the scene.
  4. [Win32] How can I get a full screen application using Open Inventor?
  5. [Win32] Is there a way to remove the buttons from the viewer decorations, but keep the thumbwheels?
  6. [Win32] Can I customize the Open Inventor viewer interface?
  7. [Win32] How can I send a picture of an Inventor scene to a printer?
  8. [Win32] How should I do rubberbanding?
  9. [Win32] How can I modify the Open Inventor cursor(s)? How can I make XOR cursors?
  10. [Win32] Where does Open Inventor (the help button on the viewer) search for the help file (Inventor.hlp)?
  11. [Win32] Can I get the Inventor viewer decoration Help button to reference my help file, not the Inventor help file?
  12. [Win32] Why do the distributed Mentor examples use "ivMain"?
  13. [Win32] How can I access the Intellisense functionality of Microsoft Visual C++ when writing an Open Inventor application in the IDE?

[Win32] IVF

  1. [Win32] Where can I find IVF documentation?
  2. [Win32] If I've decided to use MFC, why should I use IVF instead of using the SoWin classes directly?
  3. [Win32/MFC] Why are events in the Inventor window not delivered to my View class message handlers?
  4. [Win32] How do I integrate a custom (i.e., sub-classed) Open Inventor viewer into an IVF program?
  5. How can I tell which viewer (Examiner, Walk, etc.) is active in a SceneViewer MFC app (created by the IVF AppWizard)?
  6. In an IVF SceneViewer-based application, how do I get a pointer to the actual viewer object so that I can (for example) call pointer->setDecoration(on/off)?
  7. [Win32] Can I get the Inventor viewer decoration Help button to reference my help file, not the Inventor help file?


  1. Do you have any suggestions for measuring Open Inventor performance?
  2. [Win32] How can I tell if I am getting OpenGL acceleration in my Open Inventor application? (I'm running in the Win32 environment.)
  3. Does Open Inventor for Java perform as well as Open Inventor for C++?
  4. Instead of exposing the whole scene to SoRayPickAction, I am going to make only the shape I want it to pick available while making the rest of nodes unpickable. Will this improve picking performance?
  5. It seems to take a long time to display my scene graph that uses a lot of texture images.
  6. Tip: Restructure your Open Inventor scene graph (using ivfix or SoReorganizeAction) for improved rendering performance.
  7. Tip: Supply normals for your geometry (rather than letting the normals be computed by Open Inventor). (Or...why does it take so long to add a large surface to the scene graph?)
  8. Which shapes use OpenGL vertex arrays for better performance?
  9. Tip: On some systems, you may get better performance selecting a textureQuality of 1.0.

Troubleshooting -- Incorrect picture/no picture

  1. How come my texture appears to "warp" on the surface of my objects (when I use a perspective camera)?
  2. Why am I getting "splattery" effects in my picture (related to Z-buffering)?
  3. [UNIX] "Iv" is prepended to all of the labels and menu items in my Open Inventor viewer. How do I fix this?
  4. How come my geometry (a simple face set) is drawn incorrectly? It appears as if some vertices are being skipped.

Troubleshooting -- Compile/link/execute problems

  1. [Win32] When I try to build the Open Inventor sample examples, I get a link error.
  2. [Win32] Every time I link with the Visual C++ Linker I get an error saying "Unresolved external symbol: _main"
  3. [Win32] Why do I see so many memory leaks reported when my Open Inventor application terminates?
  4. [Win32] How do I check my path? Why should I check my path?
  5. [Win32] How can I tell which DLLs are being used by my application?
  6. I'm having a problem with custom nodes using multiple inheritance.