Skip to content

xarray/osgRecipes

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

80 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

osgRecipes
=============

The osgRecipes project includes different recipes written with OpenSceneGraph (OSG) and can help developers work with this famous 3D rendering engine, as well as other auxiliary libraries. The osgRecipes project itself is in the Public Domain, but some of its recipes may be under other licenses.

This project is also the source code repository of Rui Wang & Xuelei Qian's book `OpenSceneGraph 3.0 Cookbook`, Packt Publishing, 2012. You may read more details or order this book at: http://www.packtpub.com/openscenegrap-3-for-advanced-3d-programming-using-api-cookbook/book

------------
Installation
------------

1. Use CMake (or cmake-gui) to build makefiles or solutions of the recipes
# cmake <recipe_dir> -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=<install_dir>

2. Run 'make' to build and install all recipes
# make
# make install

4. Copy data files from both cookbook and integrations into the binary directory.
# cp <recipe_dir>/cookbook/data/*.* <install_dir>/bin
# cp -r <recipe_dir>/integrations/data <install_dir>/bin

5. Have fun!

------------
Cookbook
------------

You may have to download and compile these third-party dependencies to test all the recipes:
* CEGUI: http://www.cegui.org.uk
* NVIDIA Cg: http://developer.nvidia.com/cg-toolkit
* DirectInput (Windows only): http://msdn.microsoft.com/en-us/directx/aa937788
* GLUT: http://www.opengl.org/resources/libraries/glut
* NVIDIA Physx (version 2.8.x): http://developer.nvidia.com/physx-downloads
* Qt (version 4): http://qt.nokia.com/products
* FireBreath: http://www.firebreath.org/display/documentation/FireBreath+Home

------------
Integrations
------------

This section will show you how to integrate OSG with different kinds of libraries and SDKs. These libraries can add extra functionalities like special effects, visual components and interaction methods to your OSG scene and greatly improve the performance of the applications. These libraries must be free for downloading and for non-commercial purpose of use. The license of the example code may vary according to the license of the third-party library if it does not fit the public domain.

The third-party libraries that can be embedded with OSG are listed here for downloading:
* AGG (the anti-grain geometry library for 2D rendering): already included in the source code
* ALVAR (virtual and augmented reality develop library): http://virtual.vtt.fi/virtual/proj2/multimedia/alvar/index.html
* AntTweakBar (a light and intuitive GUI framework): http://www.antisphere.com/Wiki/tools:anttweakbar
* AssImp (a library to import various well-known 3D model formats): http://assimp.sourceforge.net/
* Awesomium (a web-browser framework for in-app browsing and HTML UIs): http://awesomium.com/
* Box2D (a 2D physics engine for games): http://box2d.org/
* Bullet (A professional multiphysics library): http://bulletphysics.org/wordpress/
* FreeImage (a library supporting popular image formats): http://freeimage.sourceforge.net/
* GUIChan (a lightweight GUI framework): already included in the source code
* libGizmo (gizmo control library for 3D object manipulation): https://github.com/CedricGuillemet/LibGizmo
* MicroPather ( a path finder and A* solver): already included in the source code
* Microsoft DirectWrite (a text-layout and glyph-rendering API): in the Windows SDK
* Microsoft Kinect SDK: http://www.microsoft.com/en-us/kinectforwindows/develop/developer-downloads.aspx
* MyGUI (a fast, flexible and simple GUI): http://mygui.info/
* NanoVG (Antialiased 2D vector drawing library): https://github.com/memononen/nanovg
* ngPlant (a plant modeling software): core library already included in the source code
* NVIDIA PhysX (a well-rounded physics engine, version 3.2): http://developer.nvidia.com/physx-downloads
* OpenNI (natural interaction devices middleware, including Kinect): http://www.openni.org/
* OTL (Oracle, Odbc and DB2-CLI template library): already included in the source code
* PhysFS (PhysicsFS, provide abstract access to various archives): http://icculus.org/physfs/
* RecastNavigation (Famous navigation-mesh toolset for games): https://github.com/memononen/recastnavigation
* RVO2 (Reciprocal collision avoidance for multi-agent simulation): http://gamma.cs.unc.edu/RVO2/
* Spark (a crossplatform particle engine): http://spark.developpez.com/
* Sundog SilverLining & Triton (Weather & ocean rendering commercial middleware): http://www.sundog-soft.com
* Swift++ (a collision detection package): already included in the source code
* TUIO (a common API for tangible multitouch surfaces): already included in the source code
* VLC (a cross-platform multimedia player and framework): http://www.videolan.org/vlc/
* To be continued...

------------
Contributing
------------

Any suggestions and contributions are welcomed all the time. :-)