p
This commit is contained in:
parent
1a190594fe
commit
90d565ff8d
3 changed files with 67 additions and 11 deletions
|
|
@ -1,6 +1,5 @@
|
||||||
#version 330 core
|
#version 330 core
|
||||||
out vec4 FragColor;
|
out vec4 FragColor;
|
||||||
in vec2 uv;
|
|
||||||
uniform vec2 WindowSize;
|
uniform vec2 WindowSize;
|
||||||
uniform float time;
|
uniform float time;
|
||||||
|
|
||||||
|
|
@ -8,7 +7,28 @@ float rand(vec2 co){
|
||||||
return fract(sin(dot(co, vec2(12.9898, 78.233))) * 43758.5453);
|
return fract(sin(dot(co, vec2(12.9898, 78.233))) * 43758.5453);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
float cell_size = 0.1;
|
||||||
|
|
||||||
void main() {
|
void main() {
|
||||||
float glob = rand(gl_FragCoord.xy / WindowSize + time);
|
// We'll make origin in the top-left.
|
||||||
FragColor = vec4(glob * (sin(time)/2 + 0.5), glob, 1.0, 1.0); //vec4(gl_FragCoord.xy / WindowSize, 0.0, 1.0);
|
vec2 uv = gl_FragCoord.xy / WindowSize;
|
||||||
|
uv.y = 1.0 - uv.y;
|
||||||
|
vec2 grid_edge_offset = mod(uv, cell_size);
|
||||||
|
// c: corner
|
||||||
|
vec2 c_tl = uv - grid_edge_offset;
|
||||||
|
vec2 c_tr = uv - grid_edge_offset + vec2(cell_size, 0);
|
||||||
|
vec2 c_bl = uv - grid_edge_offset + vec2(0, cell_size);
|
||||||
|
vec2 c_br = uv - grid_edge_offset + vec2(cell_size, cell_size);
|
||||||
|
// random vectors
|
||||||
|
vec2 c_tl_ran = rand(c_tl);
|
||||||
|
vec2 c_tr_ran = rand(c_tr);
|
||||||
|
vec2 c_bl_ran = rand(c_bl);
|
||||||
|
vec2 c_br_ran = rand(c_br);
|
||||||
|
// offset vectors
|
||||||
|
vec2 c_tl_off = c_tl - uv;
|
||||||
|
vec2 c_tr_off = c_tr - uv;
|
||||||
|
vec2 c_bl_off = c_bl - uv;
|
||||||
|
vec2 c_br_off = c_br - uv;
|
||||||
|
|
||||||
|
FragColor =
|
||||||
}
|
}
|
||||||
|
|
|
||||||
25
main.c
25
main.c
|
|
@ -13,8 +13,9 @@ void checkGlError() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// returns 0 if failed.
|
||||||
GLuint compile_shader(GLuint type, const char *src) {
|
GLuint compile_shader(GLuint type, const char *src) {
|
||||||
GLuint id = glCreateShader(GL_FRAGMENT_SHADER);
|
GLuint id = glCreateShader(type);
|
||||||
glShaderSource(id, 1, &src, 0);
|
glShaderSource(id, 1, &src, 0);
|
||||||
glCompileShader(id);
|
glCompileShader(id);
|
||||||
|
|
||||||
|
|
@ -34,16 +35,19 @@ GLuint compile_shader(GLuint type, const char *src) {
|
||||||
return id;
|
return id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// returns 0 if failed.
|
||||||
GLuint create_shader(const char *fragment_src) {
|
GLuint create_shader(const char *fragment_src) {
|
||||||
GLuint program = glCreateProgram();
|
GLuint program = glCreateProgram();
|
||||||
GLuint fragment_shader = compile_shader(GL_FRAGMENT_SHADER, fragment_src);
|
GLuint fragment_shader = compile_shader(GL_FRAGMENT_SHADER, fragment_src);
|
||||||
|
if (!(fragment_shader == 0)) {
|
||||||
glAttachShader(program, fragment_shader);
|
glAttachShader(program, fragment_shader);
|
||||||
glLinkProgram(program);
|
glLinkProgram(program);
|
||||||
glValidateProgram(program);
|
glValidateProgram(program);
|
||||||
glDeleteShader(fragment_shader);
|
glDeleteShader(fragment_shader);
|
||||||
|
|
||||||
return program;
|
return program;
|
||||||
|
} else {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
GLuint load_shader(const char *path) {
|
GLuint load_shader(const char *path) {
|
||||||
|
|
@ -60,6 +64,21 @@ GLuint load_shader(const char *path) {
|
||||||
|
|
||||||
GLuint shader = create_shader(string);
|
GLuint shader = create_shader(string);
|
||||||
|
|
||||||
|
if (shader == 0) {
|
||||||
|
// print file
|
||||||
|
int line_count = 1;
|
||||||
|
printf("%i\t", line_count);
|
||||||
|
line_count++;
|
||||||
|
for (int i = 0; i < length; i++) {
|
||||||
|
printf("%c", string[i]);
|
||||||
|
if (string[i] == '\n') {
|
||||||
|
printf("%i\t", line_count);
|
||||||
|
line_count++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
printf("\n");
|
||||||
|
}
|
||||||
|
|
||||||
free(string);
|
free(string);
|
||||||
return shader;
|
return shader;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
17
pulsating-noise.glsl
Normal file
17
pulsating-noise.glsl
Normal file
|
|
@ -0,0 +1,17 @@
|
||||||
|
#version 330 core
|
||||||
|
out vec4 FragColor;
|
||||||
|
uniform vec2 WindowSize;
|
||||||
|
uniform float time;
|
||||||
|
|
||||||
|
float rand(vec2 co){
|
||||||
|
return fract(sin(dot(co, vec2(12.9898, 78.233))) * 43758.5453);
|
||||||
|
}
|
||||||
|
|
||||||
|
float cell_size = 0.1;
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
vec2 uv = gl_FragCoord.xy / WindowSize;
|
||||||
|
// grid
|
||||||
|
float glob = rand(uv + time);
|
||||||
|
FragColor = vec4(glob * (sin(time)/2 + 0.5), glob, 1.0, 1.0); //vec4(gl_FragCoord.xy / WindowSize, 0.0, 1.0);
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue