Free, open source and cross-platform library for the latest OpenSceneGraph
Version: 0.6.2osgNV is a C++ add-on library for OpenSceneGraph that enables your applications to take advantage of the advanced features provided by modern GPUs.
Operating System: Mac OS X
osgNV was originally developed to add support for nVIDIA OpenGL extensions, because in those early days the nVIDIA GPUs were the only ones that offered programmable capabilities (vertex programs, register combiners, etc.), at least within the segment of consumer products.
As time passed by, other brands added programmability features to their GPUs, converging towards the definition of widely accepted OpenGL extensions such as ARB_vertex_program and ARB_fragment_program.
The main goal of osgNV is to add reliable and robust support for high-level shading languages to OpenSceneGraph-powered applications. The nVIDIA Cg language is already well supported by osgNV, while a GLSL module is coming soon.
However, the key component in osgNV is its shader abstraction framework, which makes it possible to implement support for a variety of shading languages that share common interfaces and therefore can interoperate transparently. For example, when GLSL is implemented it will be possible to share shader parameters between Cg and GLSL shaders without taking any special actions.
If your application uses 100 different shaders (even written in different shading languages) and each one of them need an uniform parameter with the current time coordinate, you just have to create a single instance of a parameter object and assign it to all shaders: the underlying framework will dispatch the parameter value using the correct API.
You don't even need to update the time value manually, just attach a so-called "Time Picker" to the parameter object when you create it.
NOTE: osgNV is licensed and distributed under the terms of the GNU Library or Lesser General Public License (LGPL).