UNPKG

playcanvas

Version:

PlayCanvas WebGL game engine

4 lines (2 loc) 1.71 kB
var gsplatCompressedSHVS = "\n#if SH_BANDS > 0\n\nuniform highp usampler2D shTexture0;\nuniform highp usampler2D shTexture1;\nuniform highp usampler2D shTexture2;\n\nvec4 unpack8888s(in uint bits) {\n return vec4((uvec4(bits) >> uvec4(0u, 8u, 16u, 24u)) & 0xffu) * (8.0 / 255.0) - 4.0;\n}\n\nvoid readSHData(in SplatSource source, out vec3 sh[15], out float scale) {\n // read the sh coefficients\n uvec4 shData0 = texelFetch(shTexture0, source.uv, 0);\n uvec4 shData1 = texelFetch(shTexture1, source.uv, 0);\n uvec4 shData2 = texelFetch(shTexture2, source.uv, 0);\n\n vec4 r0 = unpack8888s(shData0.x);\n vec4 r1 = unpack8888s(shData0.y);\n vec4 r2 = unpack8888s(shData0.z);\n vec4 r3 = unpack8888s(shData0.w);\n\n vec4 g0 = unpack8888s(shData1.x);\n vec4 g1 = unpack8888s(shData1.y);\n vec4 g2 = unpack8888s(shData1.z);\n vec4 g3 = unpack8888s(shData1.w);\n\n vec4 b0 = unpack8888s(shData2.x);\n vec4 b1 = unpack8888s(shData2.y);\n vec4 b2 = unpack8888s(shData2.z);\n vec4 b3 = unpack8888s(shData2.w);\n\n sh[0] = vec3(r0.x, g0.x, b0.x);\n sh[1] = vec3(r0.y, g0.y, b0.y);\n sh[2] = vec3(r0.z, g0.z, b0.z);\n sh[3] = vec3(r0.w, g0.w, b0.w);\n sh[4] = vec3(r1.x, g1.x, b1.x);\n sh[5] = vec3(r1.y, g1.y, b1.y);\n sh[6] = vec3(r1.z, g1.z, b1.z);\n sh[7] = vec3(r1.w, g1.w, b1.w);\n sh[8] = vec3(r2.x, g2.x, b2.x);\n sh[9] = vec3(r2.y, g2.y, b2.y);\n sh[10] = vec3(r2.z, g2.z, b2.z);\n sh[11] = vec3(r2.w, g2.w, b2.w);\n sh[12] = vec3(r3.x, g3.x, b3.x);\n sh[13] = vec3(r3.y, g3.y, b3.y);\n sh[14] = vec3(r3.z, g3.z, b3.z);\n\n scale = 1.0;\n}\n\n#endif\n"; export { gsplatCompressedSHVS as default };