@playcanvas/splat-transform
Version:
Library and CLI tool for 3D Gaussian splat format conversion and transformation
14 lines (13 loc) • 929 B
TypeScript
/**
* Spherical-harmonics degree-1 evaluation (3 coefficients per channel).
*
* Reads: dirX, dirY, dirZ, base, splats, COEFFS_PER_CHANNEL,
* SH_C1
* Defines: (mutates) cR, cG, cB
*
* Appends the band-1 contribution to the accumulating per-channel color
* radiance. Channel-major SH layout: `f_rest_0..N-1` red, then green,
* then blue.
*/
declare const shBand1 = "\n {\n let n = COEFFS_PER_CHANNEL;\n let shBase = base + 14u;\n let b0 = -SH_C1 * dirY;\n let b1 = SH_C1 * dirZ;\n let b2 = -SH_C1 * dirX;\n cR = cR + b0 * splats[shBase + 0u] + b1 * splats[shBase + 1u] + b2 * splats[shBase + 2u];\n cG = cG + b0 * splats[shBase + n + 0u] + b1 * splats[shBase + n + 1u] + b2 * splats[shBase + n + 2u];\n cB = cB + b0 * splats[shBase + 2u * n + 0u] + b1 * splats[shBase + 2u * n + 1u] + b2 * splats[shBase + 2u * n + 2u];\n }\n";
export { shBand1 };