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++)
   {