playcanvas
Version:
Open-source WebGL/WebGPU 3D engine for the web
68 lines (67 loc) • 1.6 kB
JavaScript
var gsplat_default = `
varying float id;
uniform float alphaClip;
varying float vLinearDepth;
uniform float alphaClipForward;
varying mediump vec2 gaussianUV;
varying mediump vec4 gaussianColor;
flat varying uint vPickId;
const float EXP4 = exp(-4.0);
const float INV_EXP4 = 1.0 / (1.0 - EXP4);
float normExp(float x) {
return (exp(x * -4.0) - EXP4) * INV_EXP4;
}
void main(void) {
mediump float A = dot(gaussianUV, gaussianUV);
if (A > 1.0) {
discard;
}
mediump float alpha = normExp(A) * gaussianColor.a;
if (alpha < alphaClip) {
discard;
}
pcFragColor0 = encodePickOutput(vPickId);
pcFragColor0 = getPickOutput();
pcFragColor1 = getPickDepth();
gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0);
gl_FragColor = float2vec4(vLinearDepth);
if (alpha < alphaClipForward) {
discard;
}
opacityDither(alpha, id * 0.013);
gl_FragColor = vec4(gaussianColor.xyz * alpha, alpha);
}
`;
export {
gsplat_default as default
};