summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Goodliffe <dan@randomdan.homeip.net>2024-01-01 11:36:26 +0000
committerDan Goodliffe <dan@randomdan.homeip.net>2024-01-01 11:36:26 +0000
commit8635bb43078dec951da63e3a4442f6a2f70ac686 (patch)
tree59f39dbbfae61623279137671a9d31c8f419018d
parentTemplatise functions in maths.h using PositionND (diff)
downloadilt-8635bb43078dec951da63e3a4442f6a2f70ac686.tar.bz2
ilt-8635bb43078dec951da63e3a4442f6a2f70ac686.tar.xz
ilt-8635bb43078dec951da63e3a4442f6a2f70ac686.zip
Simplify and 'fix' the wave cycle
-rw-r--r--gfx/gl/sceneShader.cpp3
-rw-r--r--gfx/gl/shaders/water.fs1
-rw-r--r--gfx/gl/shaders/water.vs6
3 files changed, 4 insertions, 6 deletions
diff --git a/gfx/gl/sceneShader.cpp b/gfx/gl/sceneShader.cpp
index 57c8bb7..ccc1a1d 100644
--- a/gfx/gl/sceneShader.cpp
+++ b/gfx/gl/sceneShader.cpp
@@ -85,8 +85,7 @@ void
SceneShader::WaterProgram::use(float waveCycle) const
{
Program::use();
- Position3D waves {waveCycle, 0.F, 0.F};
- glUniform3fv(waveLoc, 1, glm::value_ptr(waves));
+ glUniform1f(waveLoc, waveCycle);
}
SceneShader::PointLightShader::PointLightShader() :
diff --git a/gfx/gl/shaders/water.fs b/gfx/gl/shaders/water.fs
index a0daa17..8891733 100644
--- a/gfx/gl/shaders/water.fs
+++ b/gfx/gl/shaders/water.fs
@@ -5,7 +5,6 @@ include(`materialInterface.glsl')
include(`materialOut.glsl')
uniform sampler2D texture0;
-uniform vec3 waves;
void
main()
diff --git a/gfx/gl/shaders/water.vs b/gfx/gl/shaders/water.vs
index f609d9e..f6c7c8f 100644
--- a/gfx/gl/shaders/water.vs
+++ b/gfx/gl/shaders/water.vs
@@ -5,13 +5,13 @@ include(`materialInterface.glsl')
uniform mat4 viewProjection;
uniform ivec3 viewPoint;
-uniform vec3 waves;
+uniform float waves;
void
main()
{
- vec3 wpos = vec3(position.x + (cos(waves.x) * 1000.0), position.y + (cos(waves.x * waves.y / 2) * 1000.0),
- cos(waves.x + (position.x / 1000.0) + (position.y * 125.0)) * 300.0);
+ vec3 wpos = vec3(position.x + (cos(waves) * 1000.0), position.y + (cos(waves * 0 / 2) * 1000.0),
+ cos(waves + (position.x / 1000000.0) + (position.y / 8000.0)) * 300.0);
FragPos = vec3(wpos.xy, position.z);
TexCoords = texCoord;