Light | Dark



unpackUnorm2x16, unpackSnorm2x16, unpackUnorm4x8, unpackSnorm4x8 — unpack floating-point values from an unsigned integer


vec2 unpackUnorm2x16( uint p);
vec2 unpackSnorm2x16( uint p);
vec2 unpackUnorm4x8( uint p);
vec2 unpackSnorm4x8( uint p);



Specifies an unsigned integer containing packed floating-point values.


unpackUnorm2x16, unpackSnorm2x16, unpackUnorm4x8, and unpackSnorm4x8 unpack single 32-bit unsigned integers, specified in the parameter p into a pair of 16-bit unsigned integers. a pair of 16-bit signed integers, four 8-bit unsigned integers, or four 8-bit signed integers respectively. Then, each component is converted to a normalized floating-point value to generate the returned two- or four-component vector.

The conversion for unpacked fixed point value f to floating-point is performed as follows:

  • unpackUnorm2x16: f / 65535.0

  • unpackSnorm2x16: clamp(f / 32727.0, -1.0, 1.0)

  • packUnorm4x8: f / 255.0

  • packSnorm4x8: clamp(f / 127.0, -1.0, 1.0)

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.

Version Support

OpenGL ES Shading Language Version
Function Name 1.00 3.00 3.10
unpackUnorm2x16 -
unpackSnorm2x16 -
unpackSnorm4x8 - -
unpackSnorm4x8 - -
Think you can improve this page? Edit this page on GitHub.