Дополнение шейдеров
This commit is contained in:
		
							parent
							
								
									0703da0f1f
								
							
						
					
					
						commit
						cf993cfe70
					
				@ -16,13 +16,19 @@ layout (location = 3) out vec4 gAmbientSpecular;
 | 
				
			|||||||
in vec3 vertex; // Позиция вершины в пространстве
 | 
					in vec3 vertex; // Позиция вершины в пространстве
 | 
				
			||||||
in vec3 N; // Нормаль трансформированноая
 | 
					in vec3 N; // Нормаль трансформированноая
 | 
				
			||||||
in vec2 texCoord; // Текстурные координаты
 | 
					in vec2 texCoord; // Текстурные координаты
 | 
				
			||||||
 | 
					in vec3 T; // Касательный вектор
 | 
				
			||||||
 | 
					in vec3 B; // Бикасательный вектор
 | 
				
			||||||
 | 
					
 | 
				
			||||||
uniform sampler2D tex_diffuse;
 | 
					uniform sampler2D tex_diffuse;
 | 
				
			||||||
uniform sampler2D tex_ambient;
 | 
					uniform sampler2D tex_ambient;
 | 
				
			||||||
uniform sampler2D tex_specular;
 | 
					uniform sampler2D tex_specular;
 | 
				
			||||||
 | 
					uniform sampler2D tex_heights;
 | 
				
			||||||
 | 
					uniform sampler2D tex_normal;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void main()
 | 
					void main()
 | 
				
			||||||
{    
 | 
					{    
 | 
				
			||||||
 | 
					    // Сформируем TBN матрицу
 | 
				
			||||||
 | 
					    mat3 TBN = mat3(T, B, N);
 | 
				
			||||||
    // Сохранение позиции фрагмента в G-буфере
 | 
					    // Сохранение позиции фрагмента в G-буфере
 | 
				
			||||||
    gPosition = vertex;
 | 
					    gPosition = vertex;
 | 
				
			||||||
    // Сохранение нормали в G-буфере
 | 
					    // Сохранение нормали в G-буфере
 | 
				
			||||||
 | 
				
			|||||||
@ -3,6 +3,8 @@
 | 
				
			|||||||
layout(location = 0) in vec3 pos; 
 | 
					layout(location = 0) in vec3 pos; 
 | 
				
			||||||
layout(location = 1) in vec2 inTexCoord;
 | 
					layout(location = 1) in vec2 inTexCoord;
 | 
				
			||||||
layout(location = 2) in vec3 normals; 
 | 
					layout(location = 2) in vec3 normals; 
 | 
				
			||||||
 | 
					layout(location = 3) in vec3 tangent; 
 | 
				
			||||||
 | 
					layout(location = 4) in vec3 bitangent; 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
layout(std140, binding = 0) uniform Camera
 | 
					layout(std140, binding = 0) uniform Camera
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
@ -16,6 +18,8 @@ uniform mat4 model;
 | 
				
			|||||||
out vec3 vertex; // Позиция вершины в пространстве
 | 
					out vec3 vertex; // Позиция вершины в пространстве
 | 
				
			||||||
out vec3 N; // Нормаль трансформированноая
 | 
					out vec3 N; // Нормаль трансформированноая
 | 
				
			||||||
out vec2 texCoord; // Текстурные координаты
 | 
					out vec2 texCoord; // Текстурные координаты
 | 
				
			||||||
 | 
					out vec3 T; // Касательный вектор
 | 
				
			||||||
 | 
					out vec3 B; // Бикасательный вектор
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void main() 
 | 
					void main() 
 | 
				
			||||||
{ 
 | 
					{ 
 | 
				
			||||||
@ -26,5 +30,8 @@ void main()
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    texCoord = inTexCoord; // Текстурные координаты
 | 
					    texCoord = inTexCoord; // Текстурные координаты
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    T = normalize(mat3(model) * tangent);
 | 
				
			||||||
 | 
					    B = normalize(mat3(model) * bitangent);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    gl_Position = camera.projection * camera.view * P;
 | 
					    gl_Position = camera.projection * camera.view * P;
 | 
				
			||||||
} 
 | 
					} 
 | 
				
			||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user