CalVR

From Immersive Visualization Lab Wiki
Revision as of 15:24, 19 November 2010 by Hwang (Talk | contribs)

Jump to: navigation, search

Contents

This page is working in Progress



Overview

This page talks about adding a plugin in CalVR, starting from building OSG and CalVR from source. You need cmake to build OSG, CalVR and your plugins.

Building OSG

Developer release of OSG can be found here

Assume the unpacked directory is osg/, and cmake/bin/ is in the path, in osg/ run ccmake:

ccmake .

It turns into a terminal interface of cmake config for osg.

In CMAKE_BUILD_TYPE, press Enter to edit the field, type in one of the options that with debug information: RelWithDebInfo

press 'c' to configure, press 'g' to generate. and 'q' to quit. Now back to osg/, just type make to build. It takes quite a while to build.

Building CalVR

Make sure CalVR Dependencies(OSG, MXML, GLEW) are in the environment variables. If not, set them in .cshrc, for example, adding OSG in the environment, add this line at the ned of .cshrc:

setenv OSG_HOME ~/osg/


Run cmake/bin/cmake-gui, let "CalVR" be both the source and binaries

click Configure, select Unix Makefile, and it should show a configuration list for CalVR

Navigate to OSG-->OSG_LIBRARY, if it is NOTFOUND, you may need to point it to your osg/lib, this is an example input:

-L/home/hwang/CalVR/externs/osg/lib -losgFXrd -losgParticlerd -losgTextrd -losgSimrd -losgGArd -losgViewerrd -losgDBrd -losgShadowrd -losgUtilrd -lOpenThreadsrd -ldl

Note that many -losg*rd inputs, where are different than the IVL OSG_LIBRARIES, with extra "rd" tails.

You may also turn on PLUGINS->PLUGINS_CALIT to build your plugin at the same time.

click Generate, when it is done, you may exit the gui.

In CalVR folder, type make to build.

Runing CalVR

Before runing CalVR you need to add osg/lib into your LD_LIBRARY_PATH in .cshrc

Add an environment variable to .cshrc, for example:

setenv CALVR_HOME /home/hwang/CalVR/

The entrance program is in CalVR/bin/CalVR

Adding a plugin for CalVR

Take CalVR/plugins/calit2/ModelLoader as a start up example:

Make a new Copy of the ModelLoader folder, rename it to ExamplePlugin. Each directory hierarchy has files "CMakeLists.txt" and "cmake_install.cmake". In order for cmake to generate a make file for the new plugin, we need to add an entry under these cmake files in the parent directory, and modify the cmake files in the new plugin directory.

Under CalVR/plugins/calit2/CmakeLists.txt, add the following lines:

OPTION(PLUGIN_EXAMPLEPLUGIN "ExamplePlugin" ON)
IF(PLUGIN_EXAMPLEPLUGIN)
 ADD_SUBDIRECTORY(ExamplePlugin)
ENDIF(PLUGIN_EXAMPLEPLUGIN)

Under CalVR/plugins/calit2/cmake_install.cmake, find:

IF(NOT CMAKE_INSTALL_LOCAL_ONLY)

add the following line (change to absolute path):

INCLUDE("~/CalVR/plugins/calit2/ExamplePlugin/cmake_install.cmake")

Under new plugin directory you may remove the CMakeFiles folder as well as the old Makefile which were copied from ModelLoader. There should be only two source files and two cmake files left. Modify these files to adapt the new plugin's name.

Launch cmake, delete the cache if necessary, configure and generate again. Note that under the PLUGINS entry, the calit2 checkbox should be on, and you should be able to find your new plugin name under PLUGIN along with the ModelLoader.

Go back to the plugin directory, the new Makefile should have been generated. Type make to build, and launch CalVR, in the console we should see the init message of the new plugin.