Cg: a system for programming graphics hardware in a C-like language

  • Authors:
  • William R. Mark;R. Steven Glanville;Kurt Akeley;Mark J. Kilgard

  • Affiliations:
  • The University of Texas at Austin;NVIDIA Corporation;NVIDIA Corporation;NVIDIA Corporation

  • Venue:
  • ACM SIGGRAPH 2003 Papers
  • Year:
  • 2003

Quantified Score

Hi-index 0.00

Visualization

Abstract

The latest real-time graphics architectures include programmable floating-point vertex and fragment processors, with support for data-dependent control flow in the vertex processor. We present a programming language and a supporting system that are designed for programming these stream processors. The language follows the philosophy of C, in that it is a hardware-oriented, general-purpose language, rather than an application-specific shading language. The language includes a variety of facilities designed to support the key architectural features of programmable graphics processors, and is designed to support multiple generations of graphics architectures with different levels of functionality. The system supports both of the major 3D graphics APIs: OpenGL and Direct3D. This paper identifies many of the choices that we faced as we designed the system, and explains why we made the decisions that we did.