[OSG]OSG的相关扩展
参考:osg官网 http://www.osgchina.org/index.php?view=article&id=176
http://trac.openscenegraph.org/projects/osg//wiki/Community/NodeKits
https://github.com/xarray/osgRecipes/wiki
OSG的相关扩展,OSG针对每个特定应用,也有很多的开发者进行开发和完善,难能可贵的是然后还进行了开源。本文的目的是让大家能够站在巨人肩上,可以选择在能找到的成熟的开源库基础上开发。 ----FreeSouth注。
- osgBullet: OSG和 Bullet 物理引擎的结合。
- osgCairo: OSG 和 Cairo API 的结合,Cairo是一个2D图形库。
- osgEarth: 基于分页数据的功能强大的开源地球地形系统。.
- osgEphemeris: 模型星象数据的开源工程。
- osgOcean: 用来模拟海洋。
- osgRiver: 有爱好者基于osgOcean修改的模拟河流的库。
- osgPPU: 一个基于OSG的post-render的库。
- osgToy and osgVRPN: OSG实用库,包含OSG和VRPN的结合。
- osgWorks: 一个OSG的工具库,包含很多实用类。
- osgTransparencyToolkit: 一个实现了多重透明的OSG实用工具库。
- osg.JS: 使用JS实现的OSG。
- osgAndroid: 在Android上开发OSG程序的工具库。
- osgRecipes: array主导的,将OSG与AntTweakBar、AssImp、Awesomium、FreeImage、Kinect、PhysX、Spark、TUIO、VLC进行结合的集合库。
- osgExp: 用于在3DMAX中将模型导出成OSG/IVE。
- osgNV: 为OSG提供对CG语言的支持,提供一些示例。
- osgART: OSG的增强现实库。
- osgGLSL: OSG写的Shader的一些示例。
- osgToy: toys for OSG。
- osgVisual: 一个地形可视化库,里面包含了OSG和sliverning, triton相结合的功能。
- osgXI: array主导的,包含了很多GPU效果和游戏开发组件,也包含对CG以及maya导出的支持。
- delta3D: 美国海军研院所投入研发的基于OSG的军事仿真库。
- osghimmel: OSG另一个和天空星象模拟的库。
- osgEphemeris: 天体和星象模拟软件。
- flightgear: 基于OSG的极为专业的飞行模拟软件,有osgEarth的版本。
- osgcal: OSG和cal结合的库。CAL是做骨骼动画的。
- osgHaptics: OSG和Haptics结合的库。Haptics是一个触觉相关的系统。
- osgVirtualEnvironment: Configurable, device-independent virtual reality engine built on top of OpenSceneGraph.
- osgAudio: 3D声音库,将OSG与FMOD结合。
- osgAL: 3D声音库,将OSG与openAL结合。
- osgModeling: array主导的,使用OSG建贝塞尔曲面等各种偏数学模型的库。
- osgode: 将osg与ODE相结合的库,ODE是个物理引擎。
- osgsmallcity: 如其名所述,模型一个小城市。
- osgpango: osg和pango的结合,pango是个专业的文字渲染库,比如:可以渲染跳动的文字等。
This project is 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
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.
GUI components
AGG
Use AGG (Anti-Grain Geometry) - the high fidelity 2D graphics library with OSG.
Setup & use: just run the program, copying font file to valid directory.
Future plan: none.
AntTweakBar
A light and intuitive GUI framework.
http://www.antisphere.com/Wiki/tools:anttweakbar
Setup & use: just operate on the embedded GUI window.
Future plan: none.
Awesomium
A web-browser framework for in-app browsing and HTML UIs.
Setup & use: load websites (including HTML5 and Flash) to OSG images.
Future plan: load native files, execute JavaScript programs, and improve the efficiency.
MyGUI
A fast, flexible and simple GUI.
Setup & use: copy MyGUI media files and default resource XMLs to correct locations and then run the demo.
Future plan: support IMEs.
VLC
A cross-platform multimedia player and framework.
Setup & use: put the executable into VLC path, then load movies to OSG images using the command:
./osgvlc movie_file_or_stream
Future plan: improve the efficiency.
Visual effects
Microsoft DirectWrite
A text-layout and glyph-rendering API. You may find it in the Windows SDK.
Setup & use: draw texts on a quad and render it in the scene.
Future plan: Finish the custom text renderer to support all kinds of layouts.
Spark
A crossplatform particle engine.
Setup & use: copy integrations/data to executable path, then run with any of the following argument:
./osgspark [--simple/--explosion/--fire/--rain/--smoke]
Future plan: add more effects, and add support for particle callbacks.
ngPlant
A plant modeling software suite.
The source code is already included in the source code. You may also visithttp://ngplant.sourceforge.net for updates.
Setup & use: copy integrations/data to executable path, then view the loaded tree model.
Future plan: use GLSL to improve the rendering, and consider some more effects on plants.
Interactions
libGizmo
Gizmo control library for 3D object manipulation.
https://github.com/CedricGuillemet/LibGizmo
Setup & use: direct drag the gizmo to manipulate, scroll mouse to change gizmo types, and use CTRL and mouse to navigate scene as usual.
Future plan: none.
Microsoft Kinect SDK
http://www.microsoft.com/en-us/kinectforwindows/develop/developer-downloads.aspx
Setup & use: install the XBox Kinect device, and act in front of it.
Future plan: use Kinect to control real human skeletons.
OpenNI
A natural interaction devices middleware, including Kinect.
Setup & use: install the XBox Kinect device (with OpenNI/NITE driver), and act in front of it.
Future plan: use Kinect to control real human skeletons.
TUIO
A common API for tangible multitouch surfaces.
The source code is already included in the source code. You may also visit http://www.tuio.org/ for updates.
Setup & use: install a TUIO server on some other device (e.g., TUIOpad on iPad, and TUIOdroid on Android), setup the server to connect to correct IP and port (3333), and control the scene with multi-touch gestures.
Future plan: none.
Physics components
Box2D
A 2D physics engine for games.
Setup & use: Press Left/Right/Up/Down keys on the keyboard to fire disks to hit the boxes.
Future plan: add more physics features (joints, ropes and vehicles).
Bullet
A professional free 3D game multiphysics library.
http://bulletphysics.org/wordpress/
Setup & use: simulate the scene and fire sphere objects to the box wall with Enter key.
Future plan: add more physics features (joints, cloth, soft bodies and characters).
NVIDIA PhysX version 3.2
A well-rounded physics engine.
http://developer.nvidia.com/physx-downloads
Setup & use: --rigid: simulate the scene and fire sphere objects to the box wall with Enter key.
--cloth: see a sample cloth fall onto a set of sticks
Future plan: add more physics features (joints, soft bodies and characters).
Misc
MicroPather
A path finder and A* solver.
The source code is already included in the source code. You may also visithttp://www.grinninglizard.com/MicroPather/ for updates.
Setup & use: just see the result in any customized maze.
Future plan: none.
RVO2
Reciprocal collision avoidance for realtime multi-agent simulation. Thanks Christian Buchner for the original osgrvo2 example on osg-submissions.
Setup & use: double click to make spheres move from one place to another, automatically avoiding obstacles.
Future plan: add billboard person animation from Christian Buchner, add 3D support.
Reader/writers
AssImp
A library to import various well-known 3D model formats.
http://assimp.sourceforge.net/
Setup & use: load model files (3ds, obj, dae, etc.) with the .assimp extension:
./osgviewer your_model.dae.assimp
Future plan: import skeleton data, and add more material support.
FreeImage
A library supporting popular image formats.
http://freeimage.sourceforge.net/
Setup & use: load image files (dds, jpg, png, psd, etc.) with the .freeimage extension:
./osgviewer your_image.dds.freeimage
Future plan: add writing functions, and add more options.
OTL
Oracle, Odbc and DB2-CLI template library.
The source code is already included in the source code. You may also visit http://otl.sourceforge.net/for updates.
Setup & use: load/save data in ODBC databases with the .otl extension (tested with Sqlite3):
Create new table and save first node: ./osgotl --new-table --src cow.osg --output usr/pwd@DSN:table_name:cow.osg.otl
Save the second node: ./osgotl --src cessna.osg --output usr/pwd@DSN:table_name:cessna.osg.otl
Read one of the nodes: ./osgotl --input usr/pwd@DSN:table_name:cessna.osg.otl
Future plan: tests and fixes for more databases.
SilverLining SDK Triton SDK
The Weather/Cloud library and Ocean library from SunDog: http://www.sundog-soft.com/
The example here is easier to integrate and can render ocean on arbitrary meshes.
Setup & use: Start the program and see the source code
Future plan: add ocean and clouds on earth
Windowing, GUI and HUD
- osgProducer- Integrates OpenSceneGraph with Producer (License : OSGPL)
- Leandro Motta Barros's OSGUIsh. OSGUIsh allows a programer to register callbacks that are called when GUI-like events happen on scene graph nodes. So, you can have some code executed whenever the user clicks a certain node, or moves the mouse over it, or turns the mouse wheel, or... (License: OSGPL)
- osgGauge - A 2D gauge and instrument panel rendering library, courtesy Delta3D.
- osgWidget Nodekit that allows for the creation of UI elements natively (without having data reproduction in external projects like CEGUI) and provides helpers for event handling, scripting, etc.
- osgCairo Nodekit that allows for the creation of Cairo surfaces as instances of osg::Image. These images can be used as textures in OSG, and harnessed to create clean, anti-aliased interface elements.
- osgEgypt Nodekit that embeds the Python interpreter to allow the loading of Python scripts as images. This allows OSG to load any image that Python can convert into a buffer object, and facilitates fast prototyping of and testing of osgCairo (a Nodekit on which osgEgypt relies) images.
Additional OpenGL feature support
- osgOQ- Adds OpenGL occlusion query support to OSG (License : OSGPL)
- osgNV (discontinued) - Marco Jez's library which adds support the latest NVidia extensions and Cg high level shader language (License : GNU LGPL).
Animation
- osgCharacter- Neil South's character animation Plugin, includes a maya exporter, (License : OSGPL)
- VRlab's ReplicantBody character animation library based on Cal3D and the OSG (License : GNU LGPL).
- osgCal which integrates Cal3D and the OSG. There are two active branches now, the original LGPL one by Ruben Lopez, and another released under the GPL and derived from the 2003 LGPL code.
- Toshiyuki Takahei's osgField provides universal way to implement and serialize animations based on osgIntrospection (License : GNU LGPL).
- osgAnimation Nodekit that allows for skinning and rigid object animation in OpenSceneGraph. It was called osgATK before renaming osgAnimation. You can find info on it on a new page consacred to it.
Modeling
- Wang Rui's osgModeling is a open source modeling library. Its purpose is to help generate kinds of parametric curves and surfaces (extrusions, revolutions, lofts, Bezier, NURBS and so on) and convert them to osg::Geometry instances, build BSP tree for models and do boolean operations. (License : GNU LGPL)
Support for general graphical algorithms and effects
- Michael Gronager's [Attach:osgvtk.zip osgVTK] which integrates VTK and the OSG (License : unknown).
- Vladimir Vukicevic's osgChunkLOD implemention (License : OSGPL).
- Ulrich Hertlein's OSG page on stl and .x loaders, outline F/X, video texture, and particles systems (Licenses : OutlineFX is OSGPL, videotex-0.1.2 and particle-0.2.1 are GNU LGPL).
- osgchips, 3D representation of casino chips (License: GNU GPL)
- osgEphemeris - An Ephemeris Model for OSG.
- osgTDS - Terrain Deformation Software for OSG.
- osgPPU - post processing nodekit for HDR, DoF, SSAO, ...
Virtual Reality
- osgVR - Michael Gronager's OSG nodekit for viewer independent setup of VR systems and applications (License : OSGPL)
- OpenSceneGraph HapticLibrary, (osgHaptics), incorporates force/sence rendering into OpenSceneGraph . osgHaptics depends on OpenHaptics from Sensable Inc. Sensable.
- osgVRPN - Mike Weiblen's set of classes to integrate OpenSceneGraph with the Virtual Reality Peripheral Network (License : OSGPL).
- AR scene graph, Extension of OpenSceneGraph to support Augmented Reality.
GIS and Mapping
- osgEarth - Dynamic terrain rendering toolkit that reads imagery, elevation, and vector data and generates whole-earth terrain databases at run time. Supports OGC open standards, local files, and a wide variety of rendering options.
- osgGIS - Scalable toolkit for generating 3D geometry from geospatial vector data. Use osgGIS to build large numbers of 3D buildings, trees, or cartographic features that you can incorporate into anosgEarth or VPB terrain.
Audio
- OpenSceneGraph Audio Library, (osgAL), integrates OpenAL and OSG.
- OpenSceneGraph Audio, (osgAudio), the successor to osgAL, supporting openAL and FMOD and improved state handling.
Miscellaneous
- Mike Weiblen's osgToy, a random collection of fun and useful tools, such as fractal generators, normal visualizers, normal generators, and more. (License : OSGPL)
Obsolete
- [attachments:osgGL2.zip osgGL2] - Mike Weiblen's original KnowledgeBase?/OpenGL Shading Language node kit. Since support for KnowledgeBase?/OpenGL Shading Language has moved into the OSG core, osgGL2 is obsolete.
- Changzhi Li's [Attach:osgShadow.zip osgShadow] nodekit which adds stencil shadow volume rendering (License : proprietary although the intent was probably to publish it under the GNU GPL or GNU LGPL but the distribution does not contain any mention of the licensing terms which makes it proprietary).
- Parallel-Split Shadow Maps : I started with the OpenSceneGraph integration, i would be very pleased if the community would support me. more information about PSSM, have a look at GameDev, to get involed please contact Adrian Egli [3dhelp (@) gmail.com]
Attachments
- osgGL2.zip (124.9 kB) - added by martin 10 years ago.