2011 Khronos Group
unpackUnorm 3G
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

#VARTABLECOLS#
#FUNCTABLEHEADER#
unpackUnorm2x16#newin41#
unpackSnorm2x16#newin42#
unpackUnorm4x8#newin41#
unpackSnorm4x8#newin41#

## 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/.