playcanvas
Version:
PlayCanvas WebGL game engine
3 lines (2 loc) • 938 B
TypeScript
declare const _default: "\nvar means_l: texture_2d<f32>;\nvar means_u: texture_2d<f32>;\n\nuniform numSplats: u32;\nuniform means_mins: vec3f;\nuniform means_maxs: vec3f;\n\n@fragment\nfn fragmentMain(input: FragmentInput) -> FragmentOutput {\n var output: FragmentOutput;\n\n let w: u32 = textureDimensions(means_l, 0).x;\n let uv: vec2<i32> = vec2<i32>(input.position.xy);\n if (u32(uv.x + uv.y * i32(w)) >= uniform.numSplats) {\n discard;\n return output;\n }\n\n let l: vec3f = textureLoad(means_l, uv, 0).xyz;\n let u: vec3f = textureLoad(means_u, uv, 0).xyz;\n let n: vec3f = (l * 255.0 + u * 255.0 * 256.0) / 65535.0;\n let v: vec3f = mix(uniform.means_mins, uniform.means_maxs, n);\n let center: vec3f = sign(v) * (exp(abs(v)) - 1.0);\n\n let packed: vec4<u32> = bitcast<vec4<u32>>(vec4f(center, 0.0));\n output.color = packed;\n return output;\n}\n";
export default _default;