home - introduction - screenshots - download - documentation - contact

Main Menu


osgNV Project Pages

SourceForge.net Logo


What is osgNV?

osgNV is a C++ add-on library for OpenSceneGraph that enables your applications to take advantage of the advanced features provided by modern GPUs. 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. That's why we can't speak of osgNV today as an nVIDIA-only library. Starting from version 0.6.0 all nVIDIA-specific extensions have been moved to a separate module and namespace, leaving only the base framework in the core module.

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. Read the Documentation for more details.

Supported platforms

osgNV is not system or platform-dependent per se, you can compile and run it on whatever system supports all its dependencies (OpenSceneGraph, OpenGL, etc.). See the Prerequisites page for further details.

New osgNV (versions after 2008.12) is tested on:

Widely tested platforms are:

If you have luck compiling and running osgNV on other platforms or systems, please send a message to the author.


The osgNV library is released as LGPL, so you can use it almost freely in your applications, even in commercial ones. You should receive a copy of the LGPL licence by downloading osgNV (the file is named 'COPYING'). Please read it carefully before using osgNV.