8.7. Further Information
Numerous books describe sound software engineering principles and practices. Two that describe tactics specific to developing shaders are Texturing and Modeling: A Procedural Approach by Ebert et al. (2002) and Advanced RenderMan: Creating CGI for Motion Pictures by Apodaca and Gritz (1999). Some of the shader development discussion in these books is specific to RenderMan, but many of the principles are also relevant to developing shaders with the OpenGL Shading Language.
For performance tuning, the best advice I have right now is to become good friends with the developer relations staff at your favorite graphics hardware company (or companies). These are the people that can provide you with additional insight or information about the underlying graphics hardware architecture and the relative performance of various aspects of the hardware. Until we go through another generation or two of programmable graphics hardware development (and perhaps even longer), performance differences between various hardware architectures will depend on the trade-offs made by the hardware architects and the driver developers. Scour the Web sites of these companies, attend their presentations at trade shows, and ask lots of questions.
The ATI developer Web site contains a number of presentations on RenderMonkey. The RenderMonkey IDE and documentation can be downloaded from either the ATI Web site or the 3Dlabs Web site. The 3Dlabs Web site contains the open source GLSL compiler front-end, the GLSLvalidate tool, and other useful tools and examples.