@playcanvas/splat-transform
Version:
Library and CLI tool for 3D Gaussian splat format conversion and transformation
11 lines (10 loc) • 1.68 kB
TypeScript
/**
* Spherical-harmonics degree-3 evaluation (7 additional coefficients per
* channel, indices [8..14]).
*
* Reads: dirX, dirY, dirZ, base, splats, COEFFS_PER_CHANNEL,
* SH_C3_0, SH_C3_1, SH_C3_2, SH_C3_3, SH_C3_4, SH_C3_5, SH_C3_6
* Defines: (mutates) cR, cG, cB
*/
declare const shBand3 = "\n {\n let n = COEFFS_PER_CHANNEL;\n let shBase = base + 14u;\n let xx2 = dirX * dirX;\n let yy2 = dirY * dirY;\n let zz2 = dirZ * dirZ;\n let xy2 = dirX * dirY;\n let b8 = SH_C3_0 * dirY * (3.0 * xx2 - yy2);\n let b9 = SH_C3_1 * xy2 * dirZ;\n let b10 = SH_C3_2 * dirY * (4.0 * zz2 - xx2 - yy2);\n let b11 = SH_C3_3 * dirZ * (2.0 * zz2 - 3.0 * xx2 - 3.0 * yy2);\n let b12 = SH_C3_4 * dirX * (4.0 * zz2 - xx2 - yy2);\n let b13 = SH_C3_5 * dirZ * (xx2 - yy2);\n let b14 = SH_C3_6 * dirX * (xx2 - 3.0 * yy2);\n cR = cR + b8 * splats[shBase + 8u] + b9 * splats[shBase + 9u] + b10 * splats[shBase + 10u] + b11 * splats[shBase + 11u] + b12 * splats[shBase + 12u] + b13 * splats[shBase + 13u] + b14 * splats[shBase + 14u];\n cG = cG + b8 * splats[shBase + n + 8u] + b9 * splats[shBase + n + 9u] + b10 * splats[shBase + n + 10u] + b11 * splats[shBase + n + 11u] + b12 * splats[shBase + n + 12u] + b13 * splats[shBase + n + 13u] + b14 * splats[shBase + n + 14u];\n cB = cB + b8 * splats[shBase + 2u * n + 8u] + b9 * splats[shBase + 2u * n + 9u] + b10 * splats[shBase + 2u * n + 10u] + b11 * splats[shBase + 2u * n + 11u] + b12 * splats[shBase + 2u * n + 12u] + b13 * splats[shBase + 2u * n + 13u] + b14 * splats[shBase + 2u * n + 14u];\n }\n";
export { shBand3 };