Graphics Reference
In-Depth Information
Floating-point pack and unpack functions do not operate component-
wise, rather as described in each case (Table B-4).
Table B-4
Floating-Point Pack and Unpack Functions
Syntax
Description
highp uint
packSnorm2x16
(vec2
v
)
First, converts each component of the
normalized floating-point value
v
into
16-bit integer values. Then, the results are
packed into the returned 32-bit unsigned
integer. The conversion for component
c
of
v
to fixed point is done as follows:
packSnorm2x16:
round(clamp(
c
, -1, +1) * 32767.0)
The first component of the vector will be
written to the least significant bits of the
output; the last component will be
written to the most significant bits.
highp vec2
unpackSnorm 2x16
(highp uint
p
)
First, unpacks a single 32-bit unsigned
integer
p
into a pair of 16-bit unsigned
integers. Then, each component is
converted to a normalized floating-
point value to generate the returned
two-component vector.
The conversion for unpacked fixed-
point value
f
to floating point is done
as follows:
unpackSnorm2x16:
clamp(f/32767.0,
f
/32767.0, -1, +1)
The first component of the returned
vector will be extracted from the
least significant bits of the input;
the last component will be extracted
from the most significant bits.
highp vec2
unpackUnorm2x16
(highp uint
p
)
First, unpacks a single 32-bit unsigned
integer
p
into a pair of 16-bit unsigned
integers. Then, each component is
converted to a normalized floating-
point value to generate the returned
two-component vector.
(continues)