playcanvas
Version:
PlayCanvas WebGL game engine
57 lines (55 loc) • 1.29 kB
JavaScript
var gsplatPS = `
varying float id;
uniform float alphaClip;
varying float vLinearDepth;
varying mediump vec2 gaussianUV;
varying mediump vec4 gaussianColor;
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 = getPickOutput();
pcFragColor1 = getPickDepth();
gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0);
gl_FragColor = float2vec4(vLinearDepth);
if (alpha < 1.0 / 255.0) {
discard;
}
opacityDither(alpha, id * 0.013);
gl_FragColor = vec4(gaussianColor.xyz * alpha, alpha);
}
`;
export { gsplatPS as default };