Vertex programs, texture shaders and register combiners provide a way to take control of the graphics pipeline at various stages. All these pieces together enable high quality real-time per-pixel shading. In the future one can expect to get even closer to a fully hardware-accelerated RenderMan [19] like programmable shading. Despite the great technological progress, a few drawbacks make it difficult to develop high-quality shaders: it would be very helpful if length preserving specular interpolation would be available, since the currently supported linear interpolation leads to a number of problems and makes expensive per-pixel normalization necessary. The register combiners are a possible way to implement programmable per-pixel operations, but a more flexible shader definition language as proposed in the upcoming OpenGL 2.0 standard [17] would be helpful.

In our current work, the vectors used to construct the tangent space are derived from the analytical definition of the used surface. In order to make the promising results for high-quality per-pixel shading applicable to a wide range of applications these vectors should be computed from an ordinary triangle mesh. Another reasonable extension would be to apply a more realistic shading model than the currently used Blinn-Phong [2] shading model. For example the Cook-Torrance [4] model or even true BRDF distributions [13] could be used. Kautz [9] describe a very promising approach which unfortunately needs too many render passes on current hardware.