From abd7119652d41e20804dcd03659c7e7fe89f5966 Mon Sep 17 00:00:00 2001 From: Petr Mikheev Date: Fri, 26 May 2023 17:55:27 +0200 Subject: [PATCH] Tree animation --- files/shaders/compatibility/bs/default.vert | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/files/shaders/compatibility/bs/default.vert b/files/shaders/compatibility/bs/default.vert index 712a3f3d0c..889d0b5280 100644 --- a/files/shaders/compatibility/bs/default.vert +++ b/files/shaders/compatibility/bs/default.vert @@ -31,6 +31,10 @@ varying float linearDepth; varying vec3 passViewPos; varying vec3 passNormal; +uniform bool useTreeAnim; +uniform float osg_SimulationTime; +#define WIND_AMPLITUDE 0.5 + #include "lib/light/lighting.glsl" #include "lib/view/depth.glsl" @@ -39,9 +43,15 @@ varying vec3 passNormal; void main(void) { - gl_Position = modelToClip(gl_Vertex); + vec4 modelPos = gl_Vertex; + if (useTreeAnim) { + modelPos.xyz += sin(osg_SimulationTime * (WIND_AMPLITUDE + 1.0) * 1.5 + gl_Vertex.yzx * 0.01) + * 0.01 * WIND_AMPLITUDE * gl_Color.a * gl_Vertex.z; + } - vec4 viewPos = modelToView(gl_Vertex); + gl_Position = modelToClip(modelPos); + + vec4 viewPos = modelToView(modelPos); gl_ClipVertex = viewPos; euclideanDepth = length(viewPos.xyz); linearDepth = getLinearDepth(gl_Position.z, viewPos.z);