The SuperShader

Published in ShaderX4.

Morgan McGuire, Williams College

Shaders
Images
Abstract
BibTex



Abstract

Abstract. SuperShader renders surfaces with many of the effects used in next-generation game engines, and allows arbitrary combinations of those effects to be applied simultaneously. It uses run-time code generation to produce optimized shaders for each surface and a cache to re-use shaders from similar surfaces. The supported effects are:

  • Parallax mapping (updated to Parallax Occlusion Mapping in 2007)
  • Percentage-closer shadow maps
  • Environment lighting
  • Emissive lighting
  • Phong lighting
  • Colored transparency
  • Reflection
  • Refraction
  • Separate R,G,B control of all constants

Images

Shaders

A full implementation of the C++ and GLSL components of the SuperShader is available for free in the open source G3D library. The following are updated shaders from G3D 7.01, released on 2007-12-19. These are newer and better than the ones published in the text.
  1. NonShadowedPass.vrt
  2. NonShadowedPass.pix
  3. ShadowMappedLightPass.vrt
  4. ShadowMappedLightPass.pix

BibTex



@inbook{ mcguire05supershader,
  author = "Morgan McGuire",
  title = "The SuperShader",
  editor = {Wolfgang Engel},
  booktitle = "ShaderX^4",
  year = {2005},
  pages = {485--498},
  chapter = {8.1},
  URL = {http://graphics.cs.williams.edu/papers/SuperShaderX4}
}