playcanvas
Version:
Open-source WebGL/WebGPU 3D engine for the web
39 lines (38 loc) • 1.19 kB
JavaScript
var containerPackedRead_default = `
uvec4 cachedTransformA;
uvec2 cachedTransformB;
vec4 cachedColor;
vec3 getCenter() {
cachedTransformA = loadDataTransformA();
cachedTransformB = loadDataTransformB().xy;
return vec3(uintBitsToFloat(cachedTransformA.r), uintBitsToFloat(cachedTransformA.g), uintBitsToFloat(cachedTransformA.b));
}
float getOpacity() {
cachedColor = loadDataColor();
uvec4 packedColor = loadDataColor();
uint packed_rg = packedColor.r | (packedColor.g << 16u);
uint packed_ba = packedColor.b | (packedColor.a << 16u);
cachedColor = vec4(unpackHalf2x16(packed_rg), unpackHalf2x16(packed_ba));
return cachedColor.a;
}
vec3 getColor() {
return cachedColor.rgb;
}
vec4 getRotation() {
vec2 rotXY = unpackHalf2x16(cachedTransformA.a);
vec2 rotZscaleX = unpackHalf2x16(cachedTransformB.x);
vec3 rotXYZ = vec3(rotXY, rotZscaleX.x);
return vec4(rotXYZ, sqrt(max(0.0, 1.0 - dot(rotXYZ, rotXYZ)))).wxyz;
}
vec3 getScale() {
vec2 rotZscaleX = unpackHalf2x16(cachedTransformB.x);
vec2 scaleYZ = unpackHalf2x16(cachedTransformB.y);
return vec3(rotZscaleX.y, scaleYZ);
}
`;
export {
containerPackedRead_default as default
};