Name

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

Declaration

vec2 unpackUnorm2x16(uint p);

vec2 unpackSnorm2x16(uint p);

vec4 unpackUnorm4x8(uint p);

vec4 unpackSnorm4x8(uint p);

Parameters

p

Specifies an unsigned integer containing packed floating-point values.

Description

unpackUnorm2x16, unpackSnorm2x16, unpackUnorm4x8 and unpackSnorm4x8 unpack single 32-bit unsigned integers, specified in the parameter p into a pair of 16-bit unsigned integers, four 8-bit unsigned integers or four 8-bit signed integers. 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:

  • packUnorm2x16: f / 65535.0
  • packSnorm2x16: 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

FunctionVersion 1.10Version 1.20Version 1.30Version 1.40Version 1.50Version 3.30Version 4.00Version 4.10Version 4.20Version 4.30
unpackUnorm2x16-------YYY
unpackSnorm2x16--------YY
unpackUnorm4x8-------YYY
unpackSnorm4x8-------YYY

See Also

packUnorm2x16, packUnorm4x8, packSnorm4x8

Copyright

Copyright © 2011 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999. http://opencontent.org/openpub/.