#version 330 core
  
layout(location=0) in vec3 vVertex;		//Położenie wierzchołka 
layout(location=1) in vec3 vNormal;  	//wektor normalny wierzchołka
 
//uniformy 
uniform mat4 MVP;		//Połączona macierz modelu, widoku i rzutowania
uniform mat3 N;			//macierz normalna

//dane wyjściowe dla shadera fragmentów
smooth out vec3 vEyeSpaceNormal;    //wektor normalny wierzchołka w przestrzeni oka

void main()
{ 	 
	//mnożenie wektora normalnego z przestrzeni obiektu przez macierz normalną 
	//w celu wyznaczenia wektora normalnego w przestrzeni oka
	vEyeSpaceNormal   = N*vNormal; 

	//mnożenie położenia wierzchołka w przestrzeni obiektu przez połączoną macierz modelu, widoku i rzutowania
	//w celu wyznaczenia położenia wierzchołka w przestrzeni przycięcia
    gl_Position = MVP*vec4(vVertex,1); 
}
 