UNPKG

playcanvas

Version:

Open-source WebGL/WebGPU 3D engine for the web

39 lines (38 loc) 1.19 kB
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() { #ifdef GSPLAT_COLOR_FLOAT cachedColor = loadDataColor(); #else 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)); #endif 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 };