Abstract

We present a new approach for implementing effects using the GPU shading languages. Our effects seamlessly cooperate with each other and with the shaders used internally by the 3D application. Thus the effects are reusable, work in various combinations and under all lighting and texture conditions. This makes the GPU shaders more useful for 3D content authors.

Our approach may also be used to integrate internal effects inside a 3D renderer. Modern renderers need to combine many effects, like lighting, bump mapping and shadow maps. As such, it becomes important to develop all these internal effects easily and separately.

We have designed our effects to fit naturally in 3D scene graph formats, in particular we present a number of extensions to the X3D standard. Our extensions nicely integrate shader effects with X3D concepts like shapes, groups, light sources and textures.