#version 330 core
layout(location=0) in vec3 vertex_position_modelspace;
layout(location=1) in vec3 normal_position_modelspace;
layout(location=2) in vec2 texture_position_modelspace;
uniform float time_counter;
uniform mat4 perspective;
uniform mat4 modelspace;
uniform mat4 modelspace2;
uniform mat4 camera;
uniform mat4 camera2;

out vec3 normal_out;
out vec2 texcoord_out;
out vec4 vertex_out;

void main() {
	vec4 pos, model;
	normal_out = normal_position_modelspace;
	texcoord_out.y = 1 - texture_position_modelspace.y;
	texcoord_out.x = texture_position_modelspace.x;

	model = vec4(vertex_position_modelspace, 1);
	model.y = model.y + 1.0*abs(vertex_position_modelspace.x/2)*sin(time_counter*10);
	
	//pos = /* camera2 * camera * */modelspace * model;
	pos = model * modelspace /*camera * camera2*/;
	
	vertex_out = pos;

	gl_Position.x = pos.x / pos.z;// + 0.1*sin(vertex_position_modelspace.y*10)*sin(time_counter*10);
	gl_Position.y = pos.y / -pos.z * (16.0/9.0);
	gl_Position.z = -pos.z / 1000 - 0.001;// - 10.0;
	gl_Position.w = 1.0;
}
