playcanvas
Version:
PlayCanvas WebGL game engine
3 lines (2 loc) • 1.66 kB
TypeScript
declare const _default: "\n var means_l: texture_2d<f32>;\n var means_u: texture_2d<f32>;\n var quats: texture_2d<f32>;\n var scales: texture_2d<f32>;\n var sh_labels: texture_2d<f32>;\n\n uniform numSplats: u32;\n\n fn packU32(v: vec4<f32>) -> u32 {\n return (u32(v.x * 255.0) << 24u) |\n (u32(v.y * 255.0) << 16u) |\n (u32(v.z * 255.0) << 8u) |\n u32(v.w * 255.0);\n }\n\n fn packUVec32(a: vec4<f32>, b: vec4<f32>, c: vec4<f32>, d: vec4<f32>) -> vec4<u32> {\n return vec4<u32>(packU32(a), packU32(b), packU32(c), packU32(d));\n }\n\n @fragment\n fn fragmentMain(input: FragmentInput) -> FragmentOutput {\n var output: FragmentOutput;\n\n let w: u32 = textureDimensions(means_l, 0).x;\n let uv: vec2<u32> = vec2<u32>(pcPosition.xy);\n if (uv.x + uv.y * w >= uniform.numSplats) {\n discard;\n return output;\n }\n\n // fetch the source index and calculate source uv\n let meansLSample: vec3<f32> = textureLoad(means_l, uv, 0).xyz;\n let meansUSample: vec3<f32> = textureLoad(means_u, uv, 0).xyz;\n let quatsSample: vec4<f32> = textureLoad(quats, uv, 0);\n let scalesSample: vec3<f32> = textureLoad(scales, uv, 0).xyz;\n let shLabelsSample: vec2<f32> = textureLoad(sh_labels, uv, 0).xy;\n\n output.color = packUVec32(\n vec4(meansLSample, shLabelsSample.x),\n vec4(meansUSample, shLabelsSample.y),\n vec4(quatsSample),\n vec4(scalesSample, 0.0)\n );\n\n return output;\n }\n";
export default _default;