Graphics Reference
In-Depth Information
Binary Real Number System
2
100
2
10
2
1
0
1
10
100
2`
1`
Subset of binary real-numbers that can be represented with
IEEE single-precision (32-bit) loating-point format
2
100
2
10
2
1
0
1
10
100
2`
1`
Figure 14.3: Subset of binary real numbers that can be represented with IEEE single-
precision (32-bit) floating-point format. (Credit: Courtesy of Intel Corporation)
Representation uncertainty
10
2
2
Fixed-point 0.24
IEEE 32-bit loat
IEEE 32-bit loat (continuous error)
10
2
4
10
2
6
10
2
8
10
2
10
10
2
12
10
2
4
10
2
3
10
2
2
10
2
1
10
0
Value
Figure 14.4: Distance between adjacent representable real numbers in 8.24-bit fixed point
versus 32-bit floating point [AS06] over the range
[
10
−
4
,1
)
. Floating-point representation
accuracy varies with magnitude. ©2006 ACM, Inc. Included here by permission.
point (a.k.a. 7e3). Ten bits may seem like a strange size given that most
architectures prefer power-of-two sizes for data types. In the context of a
3-vector storing XYZ or RGB values, three 10-bit values fit within a 32-bit
word (the remaining two bits are then unused). Shared-exponent formats effi-
ciently combine separate mantissas for each vector element with a single expo-
nent [War94]. These are particularly useful for images, in which values may span
a large range.
The term of art, “buffer,” usually refers to a 2D rectangular array of “pixel” values
in computer graphics; for example, an image ready for display or a map of the
distance from the camera to the object seen at each pixel. Beware that in general
computer science, a “buffer” is often a queue (and that sometimes a “2D vector”
refers to a 2D array, not a geometric vector!); to avoid confusion, we never use the
general computer science terminology in this topic.