#version 450 core layout (location = 0) in vec3 aPos; layout (location = 1) in vec2 aOffset; // Смещение углов квадрата layout (location = 2) in float aLife; uniform mat4 uProjection; uniform mat4 uView; out float vLife; void main() { vLife = aLife; vec4 viewPos = uView * vec4(aPos, 1.0); // Billboard: квадрат всегда смотрит на камеру viewPos.xy += aOffset * aLife * 0.5; gl_Position = uProjection * viewPos; }