Real-Time Shading

Chapter 14: ISL Interactive Shading Language

Overview

ISL is the multipass interactive shading language for SGI s OpenGL Shader. OpenGL Shader compiles shaders into multiple OpenGL rendering passes. The roots of OpenGL Shader lie in a prototype RenderMan renderer developed in the late 1990 s at SGL

This RenderMan implementation used multipass rendering on a software-only OpenGL. Two key extensions made a full RenderMan implementation possible on this software OpenGL when it was not possible on any actual graphics hardware of the time.

These were a form of dependent texturing (now common on low-end and mid-range hardware) and the use of floating point for all values and computations. From this basis, OpenGL Shader developed as a more limited language that could run on any OpenGL 1.2 hardware.

The concept of multipass shading (Section 9.3) is commonly described as treating each rendering pass as a complex machine instruction. In this model, the frame buffer serves as an accumulator, blending operations as the ALU, stencil, and alpha tests control conditional execution for individual pixels, and texture or pbuffers provide extra registers or memory.

In practice, both the RenderMan implementation and OpenGL shader actually treat OpenGL as many little instructions, affectionately called statelets since each is a chunk of OpenGL state handled as an atomic unit. This treatment is used to compile shaders to either multiple passes of ordinary OpenGL, or multiple passes using the NVIDIA register combiners.

14.1 Logical Model

OpenGL shader includes shading stages for surface shading and lighting, with stages proposed for texture generation and transformation.

UNLIMITED FREE
ACCESS
TO THE WORLD'S BEST IDEAS

SUBMIT
Already a GlobalSpec user? Log in.

This is embarrasing...

An error occurred while processing the form. Please try again in a few minutes.

Customize Your GlobalSpec Experience

Category: Stencil Machines
Finish!
Privacy Policy

This is embarrasing...

An error occurred while processing the form. Please try again in a few minutes.