playcanvas
Version:
Open-source WebGL/WebGPU 3D engine for the web
26 lines (24 loc) • 833 B
JavaScript
var wgslGsplatSogReorderSH = `
var sh_centroids: texture_2d<f32>;
uniform shN_codebook: array<vec4f, 64>;
@fragment
fn fragmentMain(input: FragmentInput) -> FragmentOutput {
var output: FragmentOutput;
var uv = vec2i(input.position.xy);
var shNSample = textureLoad(sh_centroids, uv, 0).xyz;
output.color = unpack8888(pack111110(shNSample));
let shNIdx = vec3u(shNSample * 255.0);
let shNV = vec3f(
uniform.shN_codebook[shNIdx.x >> 2u][shNIdx.x & 3u],
uniform.shN_codebook[shNIdx.y >> 2u][shNIdx.y & 3u],
uniform.shN_codebook[shNIdx.z >> 2u][shNIdx.z & 3u]
);
output.color = unpack8888(pack111110((shNV - uniform.shN_codebook[0].x) / (uniform.shN_codebook[63].w - uniform.shN_codebook[0].x)));
return output;
}
`;
export { wgslGsplatSogReorderSH as default };