Эффект синуса — шейдеры OpenGL

preview_player
Показать описание
// Вершинный шейдер
#version 330 core
layout (location = 0) in vec3 aPos;
layout (location = 1) in vec2 aTexCoord;
out vec2 TexCoord;
void main() {
gl_Position = vec4(aPos, 1.0);
TexCoord = aTexCoord;
}

// Фрагментный шейдер
#version 330 core
out vec4 FragColor;
in vec2 TexCoord;
uniform sampler2D texture1;
uniform float time;
void main() {
// Создание базового волнового эффекта с использованием синусоидальной функции
float wave = sin(TexCoord.x * 10.0 + time) * 1 + sin(TexCoord.y * 10.0 + time) * 1;
// Модификация текстурных координат с использованием волнового эффекта
vec2 animatedTexCoord = TexCoord + wave;
FragColor = texture(texture1, animatedTexCoord);
}