@animech-public/playcanvas
Version:
PlayCanvas WebGL game engine
25 lines (23 loc) • 725 B
JavaScript
var opacityDitherPS = `
uniform vec4 blueNoiseJitter;
uniform sampler2D blueNoiseTex32;
void opacityDither(float alpha, float id) {
float noise = bayer8(floor(mod(gl_FragCoord.xy + blueNoiseJitter.xy + id, 8.0))) / 64.0;
vec2 uv = fract(gl_FragCoord.xy / 32.0 + blueNoiseJitter.xy + id);
float noise = texture2DLodEXT(blueNoiseTex32, uv, 0.0).y;
vec3 magic = vec3(0.06711056, 0.00583715, 52.9829189);
float noise = fract(magic.z * fract(dot(gl_FragCoord.xy + blueNoiseJitter.xy + id, magic.xy)));
if (alpha < noise)
discard;
}
`;
export { opacityDitherPS as default };