rgba-to-float
v1.0.0
Published
packs a RGBA color into a single float
Downloads
12
Maintainers
Readme
rgba-to-float
Packs a RGBA color into an ABGR-encoded float. This is useful in WebGL to interleave color data into a Float32Array, but only using a single float for RGBA.
var pack = require('rgba-to-float')
//packs RGBA into a float,
var color = pack(0, 255, 128, 127)
This will only work in browsers that implement typed arrays correctly.
precision
This masks high bits to avoid NaN values, and has a slight amount of precision loss. In the vertex shader you may want to bias it so that 0.0
and 1.0
alpha produces expected results.
attribute vec4 color;
varying vec4 v_color;
void main() {
v_color = color;
v_color.a = color.a * (255.0/254.0);
//...
}
Usage
color = pack(r, g, b, a)
Packs the red, green, blue and alpha channels (0 - 255) into a single float, encoded as ABGR.
License
MIT, see LICENSE.md for details.