Дополнение шейдеров
This commit is contained in:
		
							parent
							
								
									d7b67cd911
								
							
						
					
					
						commit
						433824776a
					
				| @ -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