From cf6c5af521b0d6872cd15173801c7d1a0088eecf Mon Sep 17 00:00:00 2001
From: Robert Osfield The OSG also has a set of plug-ins which support non-native 3d database
-and image formats, several have no dependencies on external libraries (flt,3ds,obj,
-lwo,dw, tga & pic), while others (pfb,jpeg,gif,tiff) require other
-libraries to be installed to compile them. If you don't already have them
-installed then don't worry, you'll still be able to use the OSG, just comment
-out the plugins you can't compile from the src/osgPlugins/Makefile. The
-core osg library and viewer has been designed to load the plug-ins at run-time
-only and if they are required to load a specific data set. If you don't
-need them for your datasets then it won't matter that you haven't been
-able to compile all the plug-ins. A full list of dependencies and where
-to download the required libraries are listed in the
-dependencies.html
- If you're coming across the OSG for the first time and want to get started
-quickly, go right ahead and follow the compilation instructions. You can
-always later download the libraries which the plug-ins require if you eventually
-need them.
+C++ compiler up to the task and OpenGL or Mesa installed. The example
+applications depend upon Open Producer which you'll need to download and
+install from the Producer website. The OSG has it own native ascii file
+format, and .rgb image reader which allows you read the example data
+with any dependencies other than C++, STL and OpenGL.
+ The OSG also has a set of plug-ins which support non-native 3d
+database and image formats, several have no dependencies on external
+libraries (flt,3ds,obj, lwo,dw, tga & pic), while others
+(pfb,jpeg,gif,tiff) require other libraries to be installed to compile
+them. If you don't already have them installed then don't worry, you'll
+still be able to use the OSG, just comment out the plugins you can't
+compile from the Make/makedirdefs file. The core osg library and viewer
+has been designed to load the plug-ins at run-time only and if they are
+required to load a specific data set. If you don't need them for your
+datasets then it won't matter that you haven't been able to compile all
+the plug-ins. A full list of dependencies and where to download the
+required libraries are listed in the dependencies.html If you're coming across the OSG for the first time and want to get
+started quickly, go right ahead and follow the compilation instructions.
+You can always later download the libraries which the plug-ins require
+if you eventually need them. Almost all of the unix compiling is done simply with make; make install
-with make help to bring up help. For platform specific details:
- Almost all of the unix compiling is done simply with make;
+make install with make help to bring up help. For platform
+specific details: The Microsoft Visual C++ 6.0 workspace file is VisualStudio.dsw located
-in the VisualStudio below the OSG this root directory. VC++6.0 workspace
-files can also be used in VisualStudio7.0 without problem.
-
- IMPORTANT NOTE: Whilst the OSG will compile cleanly with the basic VC++6.0 and
-its own STL implementation, the OSG will crash regularily due to bugs in VC++6.0's
-STL. VC++6.0's STL is horribly broken and therefore is *NOT* supported. Do not
-attempt to use the OSG in conjunction with native VC++6.0 STL implemention.
- The supported combinations are:
+ The Microsoft Visual C++ 6.0 workspace file is VisualStudio.dsw
+located in the VisualStudio below the OSG this root directory. VC++6.0
+workspace files can also be used in VisualStudio7.0 without problem. IMPORTANT NOTE: Whilst the OSG will compile cleanly with the
+basic VC++6.0 and its own STL implementation, the OSG will crash
+regularily due to bugs in VC++6.0's STL. VC++6.0's STL is horribly
+broken and therefore is *NOT* supported. Do not attempt to use
+the OSG in conjunction with native VC++6.0 STL implemention. The supported combinations are: The OSG is composed of a number of scene graph libraries (with Core in
-front of the project names), executables (with examples in front of the project
-names), and plugins which read and write 3D data formats and 2D image formats
-(with osgPlugins in front of the project names).
-To get the OSG running you'll need at least to compile Core osg,osgUtil,osgDB,osgProducer,
-osgPlugin dot_osg and Demo osgviewer. The rest of the libraries and executables
-are optional and can be compiled if you need them, however for simplicity
-I would recommend doing a batch build of all the libraries and executables
-in the distribution, some of the plug-ins which support non native file
-formats may not compile due to dependencies on other libraries (such as
-libpng), you can ignore these compilation errors unless you need to load
-the related file types. To help the compilation the plugins, osgProducer and
+ The OSG is composed of a number of scene graph libraries (with Core
+in front of the project names), executables (with examples in front of
+the project names), and plugins which read and write 3D data formats and
+2D image formats (with osgPlugins in front of the project names). To
+get the OSG running you'll need at least to compile Core
+osg,osgUtil,osgDB,osgProducer, osgPlugin dot_osg and Demo osgviewer. The
+rest of the libraries and executables are optional and can be compiled
+if you need them, however for simplicity I would recommend doing a
+batch build of all the libraries and executables in the distribution,
+some of the plug-ins which support non native file formats may not
+compile due to dependencies on other libraries (such as libpng), you
+can ignore these compilation errors unless you need to load the related
+file types. To help the compilation the plugins, osgProducer and
osgText one can download .zip archive will all the dependencies in it.
-Further details on this .zip file can be found in dependencies.html
-
- To execute the viewer the file path for the .dll's and .exe, both compiled
-into the OSG's bin directory, need to be setup, such as by adding the PATH
-to your autoexec.bat, its also useful to add the OSGFILEPATH to your autoexec.bat
-to help the location of datafiles. For example :
- SET OSGFILEPATH=D:\OpenSceneGraph-Data;D:\OpenSceneGraph-Data\Images
- To help compilation of the image reader plugins, various image libraries
-have been zipped up for your convenience, your find these on the OSG release
-download directory
-
- Once it is installed everything should compile fine and not crash, but
-you won't be running at full speed since the build #ifdef's out some important
-state optimizations since the basic VisualStudio can't handle it. You can
-safely remove the #ifdef from src/osgUtil/Otimizer.cpp, Line 44. The #ifdef
-is smart enough to do this automatically when using VisualStudio .NET and
-STLport so that modification by hand won't be required. Unfortunately there
-doesn't seem to be a special define associated with the Dinkumware STL
-for the #ifdef to pick up on.
- A very good HOWTO for installing and making the STLPort libs on MSVC6
-can be found at http://www.softadvances.com/articles/stlportusing.html
-
-
- The OSG has been tested under Windows with STLport-4.5, which allows the
-users to configure the type of STL support required for STLport itself.
-The key configuration that the OSG needs to do is to enable the wrapping
-of MS's own iostreams, than using STLport's own implementation. The later
-is not required because this has not be problematic under Windows, it is
-only the container classes and algorithms that need replacing. Using the iostream wrapping
-option means the STLport can just be used on your include path, there is
-no need to compile STLport itself, or link into any special libraries.
-To configure STLport simply comment IN (its commented out by default),
-the following line from STLport-4.5/stlport/stl_user_config.h so it should
-look:
+Further details on this .zip file can be found in dependencies.html To execute the viewer the file path for the .dll's and .exe, both
+compiled into the OSG's bin directory, need to be setup, such as by
+adding the PATH to your autoexec.bat, its also useful to add the
+OSGFILEPATH to your autoexec.bat to help the location of datafiles. For
+example : SET OSGFILEPATH=D:\OpenSceneGraph-Data;D:\OpenSceneGraph-Data\Images To help compilation of the image reader plugins, various image
+libraries have been zipped up for your convenience, your find these on
+the OSG release download directory Once it is installed everything should compile fine and not crash,
+but you won't be running at full speed since the build #ifdef's out some
+important state optimizations since the basic VisualStudio can't handle
+it. You can safely remove the #ifdef from src/osgUtil/Otimizer.cpp,
+Line 44. The #ifdef is smart enough to do this automatically when using
+VisualStudio .NET and STLport so that modification by hand won't be
+required. Unfortunately there doesn't seem to be a special define
+associated with the Dinkumware STL for the #ifdef to pick up on. A very good HOWTO for installing and making the STLPort libs on
+MSVC6 can be found at http://www.softadvances.com/articles/stlportusing.html The OSG has been tested under Windows with STLport-4.5, which allows
+the users to configure the type of STL support required for STLport
+itself. The key configuration that the OSG needs to do is to enable the
+wrapping of MS's own iostreams, than using STLport's own implementation.
+The later is not required because this has not be problematic under
+Windows, it is only the container classes and algorithms that need
+replacing. Using the iostream wrapping option means the STLport can
+just be used on your include path, there is no need to compile STLport
+itself, or link into any special libraries. To configure STLport simply
+comment IN (its commented out by default), the following line from
+STLport-4.5/stlport/stl_user_config.h so it should look: Then configure the includes path in Visual Studio to pick up on STLport: Select the "Tools" menu. Select
-"Options" In the Options dialog, select the "Directories" tab Under the
-"include" option, add the path to STLport4.5, something like: D:/STLport4.5/stlport
-Then press the up array to move the entry all the way to the top of the
-list, thus overriding MS's own STL implementations.
-
+ Then configure the includes path in Visual Studio to pick up on
+STLport: Select the "Tools" menu. Select "Options" In the Options
+dialog, select the "Directories" tab Under the "include" option, add the
+path to STLport4.5, something like: D:/STLport4.5/stlport Then press
+the up array to move the entry all the way to the top of the list, thus
+overriding MS's own STL implementations. All OpenSceneGraph libraries, plugins and executables are compiled with
-the multi-threaded dll option turned ON, and with RTTI turned ON. Your own
-projects which link to the OpenSceneGraph must uses these same options or
-your application will crash or produce unpredicatable behavior.
-
-
+ All OpenSceneGraph libraries, plugins and executables are compiled
+with the multi-threaded dll option turned ON, and with RTTI turned ON.
+Your own projects which link to the OpenSceneGraph must uses these same
+options or your application will crash or produce unpredicatable
+behavior. The OpenSceneGraph uses Standard C++ style extensionless headers, which
-poor VisualStudio doesn't automatically recognize as suitable for
+ The OpenSceneGraph uses Standard C++ style extensionless headers,
+which poor VisualStudio doesn't automatically recognize as suitable for
syntax highlighting (compile works fine though), even the StandardC++
header themselves require a hack to get VisualStudio to highlight them
-properly. The easy answer is to use that same hack to get it to recognize
-the OpenSceneGraph headers too. To make easy a modified header listing file
-can be found in the VisualStudio/LANDEXT.DAT. First copy the original
-LANDEXT.DAT file (located in C:\Progam Files\Microsoft Visual Studio\Common\MSDev98\Bin)
-to LANDEXT.DAT.BKP, and then copy over the OpenSceneGraph one. Once you have
-done this VisualStudio will syntax highlight them without problem.
+properly. The easy answer is to use that same hack to get it to
+recognize the OpenSceneGraph headers too. To make easy a modified
+header listing file can be found in the VisualStudio/LANDEXT.DAT. First
+copy the original LANDEXT.DAT file (located in C:\Progam
+Files\Microsoft Visual Studio\Common\MSDev98\Bin) to LANDEXT.DAT.BKP,
+and then copy over the OpenSceneGraph one. Once you have done this
+VisualStudio will syntax highlight them without problem. The osgText library now depends upon GLU1.3 functionality, and only
-the recent Mesa version have this as standard. Unfortunately not all Linux
-distributions are up to date even recent ones. If you have problems compiling
-osgText due to GLU problems then check out the details at the bottom of
-this file, under the title RedHat7.1 & GLU1.3 for a quick way of installing
-GLU1.3 in the right place.
-
+
+
-
-
-
-
+
+ Index
-
-Introduction
-
-Contents
-
-Install
-
-Dependencies
-
-examples
-
-Data
-
-Viewer
-
-Stereo
-
-Plan
-
-Reference Guides
-
+
+
Index
+ Introduction
+ Contents
+ Install
+ Dependencies
+ examples
+ Data
+ Viewer
+ Stereo
+ Plan
+ Reference Guides
+
-Compiling and installing the OpenSceneGraph
+ Compiling and installing the OpenSceneGraph
The scene graph depends upon Standard C++, STL and OpenGL so you need a
-C++ compiler up to the task and OpenGL or Mesa installed. The example applications depend
-upon Open Producer which you'll need to download and install from the Producer website.
-The OSG has it own native ascii file format, and .rgb image reader
-which allows you read the example data with any dependencies other than
-C++, STL and OpenGL.
-
-
-
Building the OSG requires 'gmake', due to the extensive use of gmake
-directives in the Makefiles. You can get gmake from here if you don't already
-have it installed: http://www.gnu.org/software/make/
-
-
-
+Building the OSG requires 'gmake', due to the extensive use of gmake
+directives in the Makefiles. You can get gmake from here if you don't
+already have it installed: http://www.gnu.org/software/make/
-
-Compiling under
-Windows with Visual Studio.
-
- Compiling
+under Windows with Visual Studio.
+
-
-
-
SET PATH=C:\WINDOWS;C:\WINDOWS\COMMAND;D:\osg-0.8.43\bin;
-
-Using Visual Studio .NET
-Visual Studio 7.0 .MET has a solid STL implementation and improve standard C++ complient
-and works with the OpenSceneGraph without problems. This is the recommended route.
-
-Using Dinkumware STL
-The basic jist is that you'll need to download their STL implementation,
-and follow their instructions of how to force VisualStudio to pick up the
-new STL implementation. More details at http://www.dinkumware.com/vc_fixes.html.
-
-Using STLport
-
-
+SET PATH=C:\WINDOWS;C:\WINDOWS\COMMAND;D:\osg-0.8.43\bin; Using Visual Studio .NET
+Visual Studio 7.0 .MET has a solid STL implementation and improve
+standard C++ complient and works with the OpenSceneGraph without
+problems. This is the recommended route.
+ Using Dinkumware STL
+The basic jist is that you'll need to download their STL
+implementation, and follow their instructions of how to force
+VisualStudio to pick up the new STL implementation. More details at http://www.dinkumware.com/vc_fixes.html.
+ Using STLport
+
# define _STLP_NO_OWN_IOSTREAMS 1
-Linking your own apps to the OpenSceneGraph
-Syntax highlight + OpenScenegraph Standard C++ style headers
-
-
-Compiling under Linux
+ Compiling under Linux
Compile, from the OSG root directory, ('%' is UNIX csh prompt) type:
% make
-Note, make should automatically detect linux and build optimized targets
-for your system. And if you wish to install the OSG type:
+Note, make should automatically detect linux and build optimized
+targets for your system. And if you wish to install the OSG type:
% make install
or
% make instlinks
@@ -216,168 +186,158 @@ To get full details of make options, type:
% make help
(highly recommended)
-RedHat 7.2 & GLU1.3
-I have posted a simple fix for those of us who have been unable to correctly
-build OSG 0.8.43 on Redhat 7.2. You can download it at http://www.openscenegraph.org/download/dependencies/ReadHat7.2_fixglu.tar.gz
+the recent Mesa version have this as standard. Unfortunately not all
+Linux distributions are up to date even recent ones. If you have
+problems compiling osgText due to GLU problems then check out the
+details at the bottom of this file, under the title RedHat7.1 &
+GLU1.3 for a quick way of installing GLU1.3 in the right place.
English -
1) Untar the tarball. It will create a directory called fixosg/ -+
2) Change to the ReadHat7.2_fixglu/ directory -
3) Become root -
4) Run the script called fixglu
English
+1) Untar the tarball. It will create a directory called +fixosg/Cmd line -
+2) Change to the ReadHat7.2_fixglu/ directory
+3) Become root
+4) Run the script called fixglu
tar xvzf ReadHat7.2_fixglu.tar.gz --You should then be able to do a "make" in your OSG directory and everything -will build as it should. Let me know if this doesn't work and I will try -to improve it. Email me directly for help instead of posting here. There's -a README in the tarball with some info on what the script actually does. -There's nothing wrong with OSG itself; the problem with Redhat 7.2 is that -it doesn't have GLU 1.3 by default, which OSG is now dependent on (for -osgText.) Good luck everyone. - Clay -
cd ReadHat7.2_fixglu/ -
su (your root password) -
./fixglu -
exit
+
tar xvzf ReadHat7.2_fixglu.tar.gz+You should then be able to do a "make" in your OSG directory and +everything will build as it should. Let me know if this doesn't work and +I will try to improve it. Email me directly for help instead of posting +here. There's a README in the tarball with some info on what the script +actually does. There's nothing wrong with OSG itself; the problem with +Redhat 7.2 is that it doesn't have GLU 1.3 by default, which OSG is now +dependent on (for osgText.) Good luck everyone. - Clay +
+cd ReadHat7.2_fixglu/
+su (your root password)
+./fixglu
+exit
% make-Note, make should automatically detect linux and build optimized targets -for your system. And if you wish to install the OSG type: +Note, make should automatically detect linux and build optimized +targets for your system. And if you wish to install the OSG type:
% make installor
% make instlinksTo get full details of make options, type:
% make help(highly recommended) -
+
Compile, from the OSG root directory, ('%' is UNIX csh prompt) type: +
Compile, from the OSG root directory, ('%' is UNIX csh prompt) type:
% make-Note, make should automatically detect linux and build optimized targets -for your system. And if you wish to install the OSG type: +Note, make should automatically detect linux and build optimized +targets for your system. And if you wish to install the OSG type:
% make installor
% make instlinksTo get full details of make options, type:
% make help-(highly recommended) -
% make-Note, make should automatically detect linux and build optimized targets -for your system. And if you wish to install the OSG type: +Note, make should automatically detect linux and build optimized +targets for your system. And if you wish to install the OSG type:
% make installor
% make instlinksTo get full details of make options, type:
% make help-(highly recommended) -
Everything is done command-line, so you need to get to a shell before -proceeding. The Mac comes with an app in Applications/Utilities -called Terminal - open up any Finder window (e.g double-click on your hard -disk icon), click on the Applications icon at the top right of the window, -then click on the Utilities folder to get access to the Terminal. -When you start Terminal it brings you up a csh running from your ~/ directory. -Now, go to your OpenSceneGraph directory, and simply type: -
-
-make -j2 -- -And some time later you'll be rewarded with a lovely set of binaries and -libraries. The Mac OSX build currently only builds a subset of the total -functionality in OpenSceneGraph, but a large subset at that. Some of -the remaining projects are known to build as well, but have external -dependencies on libraries such as libtiff, libjpg, libpng, etc. and -so are not included in the default build. However, if you examine -the file OpenSceneGraph/Make/makedefs you will find which extra -projects build for the mac, provided you have the external libraries -required. Details -on how to install these external libraries are outside the scope of -this document, but for starting points, see one of: +
Everything is done command-line, so you need to get to a shell +before proceeding. The Mac comes with an app in Applications/Utilities +called Terminal - open up any Finder window (e.g double-click on your +hard disk icon), click on the Applications icon at the top right of the +window, then click on the Utilities folder to get access to the +Terminal. When you start Terminal it brings you up a csh running from +your ~/ directory. Now, go to your OpenSceneGraph directory, and simply +type:
++
make -j2+And some time later you'll be rewarded with a lovely set of binaries +and libraries. The Mac OSX build currently only builds a subset of the +total functionality in OpenSceneGraph, but a large subset at that. Some +of the remaining projects are known to build as well, but have external +dependencies on libraries such as libtiff, libjpg, libpng, etc. and so +are not included in the default build. However, if you examine the file OpenSceneGraph/Make/makedefs +you will find which extra projects build for the mac, provided you have +the external libraries required. Details on how to install these +external libraries are outside the scope of this document, but for +starting points, see one of:
- -setenv OSGHOME `pwd`/OpenSceneGraph
+Once you've got OpenSceneGraph built, you're ready to run your +examples. As with other builds on other platforms, OpenSceneGraph +requires you to set a few environment variables which describe your +installation. These environment variables should be full-path, not +relative, and a list of these for a csh-derived environment follow: +setenv OSGHOME `pwd`/OpenSceneGraph- +
setenv OSGFILEPATH `pwd`/OpenSceneGraph-Data
setenv OSG_LD_LIBRARY_PATH ${OSGHOME}/lib
setenv DYLD_LIBRARY_PATH ${OSG_LD_LIBRARY_PATH}
setenv DYLD_BIND_AT_LAUNCH
- -
OSG_FILE_PATH environmental variable -
For the OSG to locate file data files easily an environmental variable -OSG_FILE_PATH is used at run-time by the osgDB library. Note, for examples -below substitute in the ${OSGDATA} directory with your own path where appropriate) -Add the following to your .cshrc (note paths separated by colon's): setenv -OSG_FILE_PATH ./:${OSGDATA}:${OSGDATA}/Images Or the following if you're -using a sh compatible shell : export OSG_FILE_PATH=./:${OSGDATA}:${OSGDATA}/Images: -Or under windows (note paths seperated by semi-colon's) : SET OSG_FILE_PATH=./:${OSGDATA};${OSGDATA}/Images +
OSG_FILE_PATH environmental variable
+For the OSG to locate file data files easily an environmental +variable OSG_FILE_PATH is used at run-time by the osgDB library. Note, +for examples below substitute in the ${OSGDATA} directory with your own +path where appropriate) Add the following to your .cshrc (note paths +separated by colon's): setenv OSG_FILE_PATH +./:${OSGDATA}:${OSGDATA}/Images Or the following if you're using a sh +compatible shell : export +OSG_FILE_PATH=./:${OSGDATA}:${OSGDATA}/Images: Or under windows (note +paths seperated by semi-colon's) : SET +OSG_FILE_PATH=./:${OSGDATA};${OSGDATA}/Images