30 lines
616 B
Plaintext
30 lines
616 B
Plaintext
|
#version 430
|
||
|
|
||
|
// Game of Life rendering shader
|
||
|
// Just renders the content of the ssbo at binding 1 to screen
|
||
|
|
||
|
#define GOL_WIDTH 768
|
||
|
|
||
|
// Input vertex attributes (from vertex shader)
|
||
|
in vec2 fragTexCoord;
|
||
|
|
||
|
// Output fragment color
|
||
|
out vec4 finalColor;
|
||
|
|
||
|
// Input game of life grid.
|
||
|
layout(std430, binding = 1) readonly buffer golLayout
|
||
|
{
|
||
|
uint golBuffer[];
|
||
|
};
|
||
|
|
||
|
// Output resolution
|
||
|
uniform vec2 resolution;
|
||
|
|
||
|
void main()
|
||
|
{
|
||
|
ivec2 coords = ivec2(fragTexCoord*resolution);
|
||
|
|
||
|
if ((golBuffer[coords.x + coords.y*uvec2(resolution).x]) == 1) finalColor = vec4(1.0);
|
||
|
else finalColor = vec4(0.0, 0.0, 0.0, 1.0);
|
||
|
}
|