UNPKG

playcanvas

Version:

PlayCanvas WebGL game engine

25 lines (21 loc) 654 B
// procedural Bayer matrix, based on: https://www.shadertoy.com/view/Mlt3z8 var bayerPS = /* glsl */ ` // 2x2 bayer matrix [1 2][3 0], p in [0,1] float bayer2(vec2 p) { return mod(2.0 * p.y + p.x + 1.0, 4.0); } // 4x4 matrix, p - pixel coordinate float bayer4(vec2 p) { vec2 p1 = mod(p, 2.0); vec2 p2 = floor(0.5 * mod(p, 4.0)); return 4.0 * bayer2(p1) + bayer2(p2); } // 8x8 matrix, p - pixel coordinate float bayer8(vec2 p) { vec2 p1 = mod(p, 2.0); vec2 p2 = floor(0.5 * mod(p, 4.0)); vec2 p4 = floor(0.25 * mod(p, 8.0)); return 4.0 * (4.0 * bayer2(p1) + bayer2(p2)) + bayer2(p4); } `; export { bayerPS as default };