next up previous contents index
Next: 3 Rasterization Up: 2.13 Colors and Coloring Previous: 2.13.8 Color and Texture

2.13.9 Final Color Processing


For an RGBA color, each color component (which lies in [0,1]) is converted (by rounding to nearest) to a fixed-point value with m bits. We assume that the fixed-point representation used represents each value , where , as k (e.g. 1.0 is represented in binary as a string of all ones). m must be at least as large as the number of bits in the corresponding component of the framebuffer. If the framebuffer does not contain an A component, then m must be at least 2 for A. A color index is converted (by rounding to nearest) to a fixed-point value with at least as many bits as there are in the color index portion of the framebuffer.

Because a number of the form may not be represented exactly as a limited-precision floating-point quantity, we place a further requirement on the fixed-point conversion of RGBA components. Suppose that lighting is disabled, the color associated with a vertex has not been clipped, and one of Colorub , Colorus , or Colorui  was used to specify that color. When these conditions are satisfied, an RGBA component must convert to a value that matches the component as specified in the Color  command: if m is less than the number of bits b with which the component was specified, then the converted value must equal the most significant m bits of the specified value; otherwise, the most significant b bits of the converted value must equal the specified value.

David Blythe
Sat Mar 29 02:23:21 PST 1997