Chapter 32. An Introduction to Shader Interfaces
Matt Pharr NVIDIA
The release of Cg 1.2 introduced an important new feature to the Cg programming language called shader interfaces. Shader interfaces provide functionality similar to Java or C# interface classes and C++ abstract base classes: they allow code to be written that makes calls to abstract interfaces, without knowing what the particular implementation of the interface will be. The user must provide objects that implement the interfaces used in the program to the Cg runtime, which then handles putting together the final shader code to run on the hardware.
Unlike object-oriented languages that provide this kind of mechanism for abstraction for developing large software systems, the motivation ...