osgNV Project Pages
17th Dec 2008
Add a new example osgnvcginkwash, which is contributed by a Chinese engineer Wei Ye and shows
how to implement inkwash painting effect to models.
Add a new osgNVPhysx library, which is going to support the nVIDIA physX physics engine
step by step! Creation and computation of scenes and rigid actors are supported at present.
Add a new example osgnvphysxboxes to demonstrate how to create a physics scene and dynamic boxes
and do physics simulations using the osgNVPhysx library.
15th Dec 2008
Resloved makefile problems when compiling debug libraries and examples.
Add a new example osgnvcgbuffer to demonstrate how to use Cg buffer (introduced in Cg 2.0)
to work with uniform values.
12th Dec 2008
Added a new example osgnvcggeometry to demonstrate how to use gemetry shaders of new graphics
Modified headers and sources to fit the compiling on GNU/Linux.
11th Dec 2008
Added new BufferParameterValue class for buffer parameters.
Modified old examples and the reader/writer plugin to fit the changes.
Modified Program and Context classes and add some functions for convenience.
10th Dec 2008
Added new TextureParameterValue class for texture parameters.
Added new ProgramManager class to slove the disable operations problems.
Integrated parameter pointer functions to LocalParameter, using setUseParamPointer()
to switch between parameter pointers and arrays, see applyVectorArrayValue() for details.
VaryingParameter and CgGeometry are deleted because of the integration.
Added setEnabled() to switch on/off the Cg program attribute.
Modified CMakeLists.txt to move osgNVSLang and old examples to optional, and add a new example
osgnvcgprograms, which demonstrates how to use Cg programs in different nodes, how to create
callbacks for parameter animation, and how to use the new texture parameter class.
8th Dec 2008
Fixed the destroying Cg contexts and programs problems.
Added new profiles supported by Cg 2.1.
Reconstruct some of the osgNV/osgNVCg files and add some comments.
18th Dec 2008
Synchronized with latest OSG updates (2.7.6) and CMake building system is used.
6th Dec 2008
Synchronized with latest OSG updates (2.7.6) and CMake building system is used.
13th May 2005
Synchronized with latest OSG updates (pre-0.9.9)
10th March 2005
Added preliminary support for osgIntrospection (limited to osgNV and
osgNVCg namespaces for now)
16th February 2005
Fixed a circular reference between osgNVCg::Context and osgNVCg::Program
12th October 2004
Fixed return type of various getType() methods in classes derived
from StateAttribute, to reflect changes made in OSG.
10th September 2004
Added first iteration of GLSL support. You can now run GLSL shaders
by using classes defined in the osgNVSlang module. See the new
6th September 2004
Fixed a bug in osgNV::ParameterValue
28th August 2004
Modified TimePicker so that it stores the last frame's time in
the y component.
Fixed a bug in osgnvcg4
Added some #defines in osgNVExt/Extensions to support floating-point
texture formats and PBuffer modes.
17th August 2004
Fixed compatibility with VC6
11st August 2004
Improved the ParameterValue's "dirty state" mechanism. Now the actual
check and reset of dirty states (based on change count) occur in the
Parameter, not in the ParameterValue itself, so sharing a ParameterValue
among different parameters becomes possible (out-of-the-box parameter
10th August 2004
The shader abstraction framework has been completely redesigned for
flexibility and robustness.
Moved all implementations of nVIDIA extensions (register combiners,
vertex programs, etc.) to a new module/namespace: osgNVExt. Now the
osgNV namespace contains only the base abstraction framework, with
specific implementations being left to other modules.
Added support for global (context-wise) parameters that can be bound
to local parameters. This feature provides the means for sharing
values and for implementing abstract interfaces (see Cg 1.2 docs for
Added support for accessing struct fields and array items that
belong to Cg parameters.
Better multithreading support: now you should be able to run Cg-based
applications on multipipe systems as long as you don't use pickers.
7th August 2004
Modified ParameterBlock so that its getType() method returns an
identifier which is different for each instance of the class.
This makes ParameterBlock a "state attribute family" and prevents
single instances from being overriden by subsequent ones in the
6th August 2004
Added support for "literal" program parameters in osgNVCg. See
Fixed a couple of minor bugs.
12th March 2004
The code responsible for disabling profiles in osgNVCg::Context has
been moved so that it is always executed before applying a context.
This ensures that no spurious profiles are enabled when they should
Added an error callback to grab all errors generated by the Cg
runtime and not only compile errors.
Updated descendants of StateAttribute to match recent changes in OSG.
23rd January 2004
Fixed a bug in VectorPicker's I/O code
30th December 2003
Fixed two bugs in osgNV::MatrixParameter, now it should behave
correctly and send column-ordered matrices down to the GPU (you
may notice that your matrices now get to the vertex program
transposed, but you should also notice that OpenGL and Cg use
postfix matrix multiplication while OSG uses prefix multiplication).
Thanks Ruben for spotting this bug!
19th November 2003
Added a demo application for osgNV::ParameterBlock.
31st October 2003
Added code to display detailed error messages when a Cg program
fails to compile.
Minor fixes in osgNVCg::Context to prevent it from disabling
unsupported profiles. In addition, supported profile names are now
displayed when the context initializes (output to DEBUG_INFO).
Added a new class: ParameterBlock which inherits from StateAttribute
and allows to apply a set of parameters as a stand-alone unit to
any part of the scene graph. With this class you can decouple the
program from its parameters, improving flexibility.
7th September 2003
Added a new Cg example (osgnvcg4) to show how to use pickers
Added ModelMatrixPicker class
30th July 2003
Fixed some minor bugs in osgNV.
Fixed a serious bug in osgNVCg which didn't manage state changes
Added two picker classes: ViewMatrixPicker and EyePointPicker, with
full I/O support.
26th June 2003
Added I/O support for new "picker" classes: TimePicker and LightPicker
14th June 2003
First implementation of a set of classes for picking attribute values
from OSG objects (or from the current state) and automatically
assigning them to parameters. Two classes have been implemented:
TimePicker, which extracts the current time from a FrameStamp or from
osg::State and puts it to a VectorHolder, and LightPicker which picks
light properties and stores them into a VectorHolder. Several mapping
combinations are possible via their base class, VectorPicker.
A new non-trivial issue has been found: it seems that enabling a
vector parameter at the same register address where a state matrix
parameter were enabled before, it doesn't overwrite the previous matrix
tracking. This could cause unwanted behaviours when you have two
or more vertex program because matrix trackings will propagate
through different programs.
10th May 2003
Created a new class for parameter callbacks (ParameterCallback)
which replaces the previous osgNV::Parameter::Callback class and
inherits from osg::Object (so that dot_osg I/O is possible).
26th March 2003
Source code of demo applications has been moved from /src/Demos to
/examples, for consistency with latest changes in OpenSceneGraph.
23rd March 2003
The MatrixTracking class has been renamed to StateMatrixParameter
for consistency with osgNVCg.
I/O support for osgNVCg objects has been implemented.
22nd March 2003
osgNVCg::UniformParameter has been splitted into several classes as
for osgNV::VertexProgramData; all parameters that contain the same
data type inherit from the same base class, so there is a common
interface for assigning values to any parameter class that contains
a particular type of data. Please note that the transition has not
been completed yet, and the library can compile only on VS .NET now.
19th March 2003
osgNV::VertexProgramData has been replaced by a set of classes that
handle different types of data: VectorParameter, MatrixParameter and
VectorArrayParameter; next step is to convert osgNVCg parameters to
match this new structure. Once osgNV and osgNVCg parameters share a
common structure, I'll implement a set of classes that will act like
a glue between OSG objects and osgNV/Cg parameters.
18th March 2003
Fixed a serious bug in osgNVCg::Context
Converted all demos to use Producer instead of GLUT
Added the applyWithoutCallback() method to osgNV::Parameter
Added TEXTURE_0 ... TEXTURE_3 matrix types to osgNV::MatrixTracking
22nd January 2003
Fixed some minor bugs
Fixed compatibility on Unix/Linux systems
18th January 2003
Added support for the NV_texture_shader3 extension
First attempt to support the Cg language
VisualStudio 6 project files have been moved into the
same directories where VS .NET project files are stored
22nd December 2002
Added support for the NV_texture_shader2 extension
I/O support for the osgNV::TextureShader class
20th December 2002
First implementation of texture shaders (NV_texture_shader)
2nd December 2002
Added support for the NV_register_combiners2 extension
20th November 2002
Compatibility fixes from Michael (VC6)
VisualStudio 6 project files
15th November 2002
Compatibility fixes from Ruben (gcc 2.95 on Debian)
13th November 2002
Per-context OpenGL extensions.
Fixed nvparse on Linux, added osgNVParse to makefiles.
10th November 2002
I/O support (.osg) for all object classes.
New "membrane" rendering demo.
9th November 2002
Fixed some warnings/errors on the Linux platform.
[NOTE: the osgNVParse library is excluded from makefiles; you can add
it if you have correctly compiled and installed the nvparse library]
6th November 2002
This is the first public release of the osgNV library!
Currently implemented features:
+ vertex programs;
+ register combiners;
+ nvparse interface;
+ enhanced VpGeometry class for use with vertex programs.
+ some demo applications;
+ I/O support;
+ texture shaders;
+ support for the NV_register_combiners2 extension;
+ support for the NV_vertex_program1_1 extension;
+ better parameter value lookup mechanism;
+ support for NV30 advanced features (like fragment shaders);
+ NV evaluators
+ support for the CG compiler;