Mercurial > hg > forks > gldragon
changeset 65:71f6c5cc8eec
Add 'ftime' uniform for shaders, which is time in milliseconds from start of rendering loop.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Sun, 15 Dec 2019 02:54:39 +0200 |
parents | e8100c1c5d99 |
children | 1d24faa5bfb9 |
files | dmglexts.h dmglrender.cpp shader.frag |
diffstat | 3 files changed, 4 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/dmglexts.h Sun Dec 15 02:53:49 2019 +0200 +++ b/dmglexts.h Sun Dec 15 02:54:39 2019 +0200 @@ -16,6 +16,7 @@ DM_GLEXT_INIT(PFNGLSHADERSOURCEPROC, glShaderSource) DM_GLEXT_INIT(PFNGLUNIFORM1IPROC, glUniform1i) +DM_GLEXT_INIT(PFNGLUNIFORM1FPROC, glUniform1f) DM_GLEXT_INIT(PFNGLGETSHADERINFOLOGPROC, glGetShaderInfoLog) DM_GLEXT_INIT(PFNGLGETSHADERIVPROC, glGetShaderiv)
--- a/dmglrender.cpp Sun Dec 15 02:53:49 2019 +0200 +++ b/dmglrender.cpp Sun Dec 15 02:54:39 2019 +0200 @@ -252,6 +252,7 @@ // Enable shader program glUseProgram(model.id_prog); glUniform1i(glGetUniformLocation(model.id_prog, "nlights"), scene.lights.size()); + glUniform1f(glGetUniformLocation(model.id_prog, "ftime"), time); } // Set the material of the model
--- a/shader.frag Sun Dec 15 02:53:49 2019 +0200 +++ b/shader.frag Sun Dec 15 02:54:39 2019 +0200 @@ -1,6 +1,7 @@ varying vec3 snormal; varying vec3 svertex; uniform int nlights; +uniform float ftime; float maxdot(vec3 sveca, vec3 svecb) @@ -22,7 +23,7 @@ //vec4 poo = vec4(0.0, 0.0, 0.0, 0.0); vec4 poo = gl_FragCoord; //poo += vec4(snormal.x, snormal.y, snormal.z, 0.0); - vec4 finalColor = vec4(poo.x * 0.1, poo.y * 0.001, poo.z, 1.0); + vec4 finalColor = vec4(poo.x * 0.1, poo.y * 0.001, poo.z + sin(ftime * 0.001), 1.0); for (int i = 0; i < nlights; i++) {