playcanvas
Version:
PlayCanvas WebGL game engine
55 lines (53 loc) • 1.25 kB
JavaScript
var gsplatPS = `
varying float id;
uniform float alphaClip;
varying float vLinearDepth;
const float EXP_A = 12102203.0;
const int EXP_BC_RMS = 1064866808;
float fastExp(float x) {
int i = int(EXP_A * x) + EXP_BC_RMS;
return intBitsToFloat(i);
}
varying mediump vec2 gaussianUV;
varying mediump vec4 gaussianColor;
void main(void) {
mediump float A = dot(gaussianUV, gaussianUV);
if (A > 1.0) {
discard;
}
mediump float alpha = fastExp(-A * 4.0) * gaussianColor.a;
if (alpha < alphaClip) {
discard;
}
gl_FragColor = getPickOutput();
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 };