OSGInstallKC

From Immersive Visualization Lab Wiki
Revision as of 20:25, 17 January 2013 by Jschulze (Talk | contribs)

Jump to: navigation, search

Kevin's Installation Instructions with VRML Support

I have compiled OpenSceneGraph with VRML support through the Inventor (iv) plugin. This required compiling Coin3D and SoWin and then configuring OpenSceneGraph correctly through CMake. I also tried using the OpenVRML plugin, but when I tried loading the provided wrl files there was an exception within the OpenVRML code. The Inventor plugin appears to load the wrl files correctly.

Here are the compiled binaries:

You can use these binaries in the same way as the ones provided by AlphaPixel. Visual Studio 2010 was used to compile all of the code, so these binaries will probably only work with VS2010.

I would recommend using the release binaries, as they are much faster than the debug binaries. There should be no reason to use the debug binaries unless you run into issues with OSG.

If you want to compile your own version of OpenSceneGraph, here are the steps I used:

  1. First compile Coin3D and SoWin. I downloaded https://bitbucket.org/Coin3D/coin/downloads/Coin-3.1.3.zip and https://bitbucket.org/Coin3D/coin/downloads/SoWin-1.5.0.zip.
    1. Download Coin3D & SoWin, extract files.
    2. Follow the guide at [1] and do steps 1-5. Steps 2 & 3 are important - otherwise, you will not be able to compile SoWin without error. Step 4 corrects a compile error with VS2010. I didn't find step 6 necessary.
    3. Compile SoWin in the same way you did Coin3D. The build will have an error...
    4. Fix the compile error by moving the file SoWin-1.5.0/build/msvc9/src/Inventor/Win/SoWinColorEditor.h to SoWin-1.5.0/build/msvc9/src/Inventor/Win/editors/SoWinColorEditor.h (move it into the editors directory). This error appears to happen because the build script misplaces the file.
    5. Build SoWin again; it should compile without errors.
  2. Now we are ready to compile OpenSceneGraph. For this portion you can pretty much follow http://www.openscenegraph.org/projects/osg/wiki/Support/PlatformSpecifics/VisualStudio#Initialsetup but I will summarize the steps and include additional instructions that I found were needed.
    1. Install CMake - [2]. I'm using 2.8.10.2.
    2. Download necessary files. For the OpenSceneGraph source code I used [3]. You will also need the third party dependencies, which I got from AlphaPixel at [4]. Download the version matching the type of build you're making (by default, it's 32 bit debug).
    3. Extract the OpenSceneGraph code. Extract the contents of the third party depedencies 7z you downloaded to a new directory named 3rdparty in the same location as the OpenSceneGraph-3.0.1 directory.
    4. Close any instances of Visual Studio you have open - otherwise, CMake will complain.
    5. Open cmake-gui and enter the path to OpenSceneGraph-3.0.1 for both "Where is the source code" and "Where to build the binaries."
    6. Click the Configure button and use Visual Studio 10 as the generator and default native compilers.
    7. CMake will run configuration. Assuming that Coin3D was compiled and installed into COINDIR correctly, the Inventor plugin will be configured and enabled automatically. After it's done, all of the values will be red. Click Configure again to update the red values.
    8. Some values may not have been set correctly. Here is a list of values to check and correct (check the Advanced box to see them all):
      1. Set JPEG_LIBRARY to match JPEG_LIBRARY_DEBUG
      2. Set ZLIB_LIBRARY to match ZLIB_LIBRARY_DEBUG
      3. Set TIFF_LIBRARY and TIFF_LIBRARY_DEBUG to the full path to 3rdParty/lib/libtiffD.lib or 3rdParty/lib/libtiff.lib
      4. Set PNG_LIBRARY to match PNG_LIBRARY_DEBUG
      5. Set PNG_PNG_INCLUDE_DIR to match PNG_INCLUDE_DIR
    9. Click Generate and the solution files will be created.
    10. Open the solution and build. This will take a while. There shouldn't be any errors.
    11. Build the INSTALL project. This will place the compiled binaries and other files into C:\Program Files (x86)\OpenSceneGraph. You should be able to change this location via the CMAKE_INSTALL_PREFIX value.
  3. Now we have a compiled version of OpenSceneGraph with the Inventor (iv) plugin. The last step is to copy the Coin3D and 3rdParty binaries into the same location as the OpenSceneGraph binaries - otherwise there will be errors at run time. Copy all the directories in your COINDIR to C:\Program Files (x86)\OpenSceneGraph (or whatever your CMAKE_INSTALL_PREFIX is). Copy all the files in 3rdParty\bin to C:\Program Files (x86)\OpenSceneGraph\bin.
  4. You can test VRML support using osgviewer.exe or osgviewerd.exe (debug). Run the program on the command line with a path to a wrl file and it should be displayed.

You may have noticed that when viewing either the wrl or the obj files there are a lot of artifacts and the objects don't look like they should. I don't think it's my build, because my partner was having the same issues with the AlphaPixel builds. It looks like the artifacts are caused by a massive amount of Z-fighting, but I could be wrong. Does anyone have insight into this issue?