Light | Dark

# docs.GL

GLSL 4
GLSL ES 3

# unpackUnorm

## Name

unpackUnorm2x16, unpackSnorm2x16, 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. 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 | - | ✔ | ✔
unpackUnorm4x8 | - | - | ✔
unpackSnorm4x8 | - | - | ✔

## See Also

clamp, packUnorm2x16, packSnorm2x16 packUnorm4x8 packSnorm4x8

## Copyright

Copyright © 2011-2014 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. https://opencontent.org/openpub/.

Think you can improve this page? Edit this page on GitHub.