UNPKG

playcanvas

Version:

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

3 lines (2 loc) 1.73 kB
declare const _default: "\n#if SH_BANDS > 0\n\nfn unpack8888s(bits: u32) -> half4 {\n let unpacked_u = (vec4<u32>(bits) >> vec4<u32>(0u, 8u, 16u, 24u)) & vec4<u32>(0xffu);\n return half4(vec4f(unpacked_u) * (8.0 / 255.0) - 4.0);\n}\n\nfn readSHData(sh: ptr<function, array<half3, 15>>, scale: ptr<function, f32>) {\n // read the sh coefficients using format-generated load functions\n let shData0: vec4<u32> = loadShTexture0();\n let shData1: vec4<u32> = loadShTexture1();\n let shData2: vec4<u32> = loadShTexture2();\n\n let r0: half4 = unpack8888s(shData0.x);\n let r1: half4 = unpack8888s(shData0.y);\n let r2: half4 = unpack8888s(shData0.z);\n let r3: half4 = unpack8888s(shData0.w);\n\n let g0: half4 = unpack8888s(shData1.x);\n let g1: half4 = unpack8888s(shData1.y);\n let g2: half4 = unpack8888s(shData1.z);\n let g3: half4 = unpack8888s(shData1.w);\n\n let b0: half4 = unpack8888s(shData2.x);\n let b1: half4 = unpack8888s(shData2.y);\n let b2: half4 = unpack8888s(shData2.z);\n let b3: half4 = unpack8888s(shData2.w);\n\n sh[0] = half3(r0.x, g0.x, b0.x);\n sh[1] = half3(r0.y, g0.y, b0.y);\n sh[2] = half3(r0.z, g0.z, b0.z);\n sh[3] = half3(r0.w, g0.w, b0.w);\n sh[4] = half3(r1.x, g1.x, b1.x);\n sh[5] = half3(r1.y, g1.y, b1.y);\n sh[6] = half3(r1.z, g1.z, b1.z);\n sh[7] = half3(r1.w, g1.w, b1.w);\n sh[8] = half3(r2.x, g2.x, b2.x);\n sh[9] = half3(r2.y, g2.y, b2.y);\n sh[10] = half3(r2.z, g2.z, b2.z);\n sh[11] = half3(r2.w, g2.w, b2.w);\n sh[12] = half3(r3.x, g3.x, b3.x);\n sh[13] = half3(r3.y, g3.y, b3.y);\n sh[14] = half3(r3.z, g3.z, b3.z);\n\n *scale = 1.0;\n}\n\n#endif\n"; export default _default;