#version 330 layout(triangles) in; layout(triangle_strip, max_vertices = 3) out; in vec4 polozenie_1[]; in vec4 kolor_1[]; in vec2 wspTekstur_1[]; in vec3 polozenie_scena_1[]; in vec3 normalna_scena_1[]; in vec2 polozenie_kamera_1[]; in vec3 normalna_1[]; uniform float Czas; out vec4 polozenie_2; out vec4 kolor_2; out vec2 wspTekstur_2; out vec3 polozenie_scena_2; out vec3 normalna_scena_2; out vec2 polozenie_kamera_2; void main() { vec3 normalna_prymityw = vec3(0, 0, 0); for (int i = 0; i < 3; ++i) normalna_prymityw += normalna_1[i]; normalna_prymityw /= 3; for (int i = 0; i < 3; i++) { gl_Position = gl_in[i].gl_Position + 0.05 * vec4(normalna_prymityw, 1)*(1+sin(5*Czas)); polozenie_2 = polozenie_1[i]; kolor_2 = kolor_1[i]; wspTekstur_2 = wspTekstur_1[i]; polozenie_scena_2 = polozenie_scena_1[i]; normalna_scena_2 = normalna_scena_1[i]; polozenie_kamera_2 = polozenie_kamera_1[i]; EmitVertex(); } EndPrimitive(); }