Sh

From ShWiki

Contents

One-sentence description

Sh lets you write programs that run on modern graphics cards using plain C++, with many novel features.

Slightly longer description

Sh looks like a portable C++ library for computer graphics, and can be used that way. However, it supports a special "retained" mode, which collects a sequence of Sh operations into a program (at run time), optimizes it and generates code for modern GPUs. This lets you write programs for graphics cards in C++ itself, rather than a separate language such as Cg or the OpenGL Shading Language. Using Sh is very natural and offers many advantages, and it presents many new features not found in other shading languages.

Where did Sh originate?

Sh started out as a research project at the University of Waterloo Computer Graphics Lab. The idea for Sh was conceived by Professor Michael McCool, who subsequently implemented several Sh prototypes with his graduate students, in particular Zheng Qin. By the year 2003 a working prototype of Sh was developed targeting the Sm GPU simulator. At this point it was decided to cleanly rewrite the language using the knowledge gained from prototyping, and to target real programmable floating-point GPUs (which were not available when the Sh project began). It is this rewrite that makes up the current implementation of Sh. Sh continues to be developed from within the University of Waterloo CGL, commercially through RapidMind Inc. and over the Internet through contributions from volunteers thanks to the Open Source nature of the library.

Releases

More information

See the Frequently Asked Questions for more information about Sh.

There is also more information about the reasons why Sh works the way it does.