Переделка шейдера геометрического прохода отложенного рендера
This commit is contained in:
		
							parent
							
								
									767d4f00af
								
							
						
					
					
						commit
						7ea3476e98
					
				| @ -2,17 +2,19 @@ | ||||
| 
 | ||||
| layout(std140, binding = 1) uniform Material | ||||
| { | ||||
|     vec3 ka; | ||||
|     vec3 kd; | ||||
|     vec3 ks; | ||||
|     float p; | ||||
|     vec3 base_color; | ||||
|     float roughness; | ||||
|     float metallic; | ||||
|     float specular; | ||||
|     vec3 emitted; | ||||
| }; | ||||
| 
 | ||||
| layout (location = 0) out vec3 gPosition; | ||||
| layout (location = 1) out vec3 gNormal; | ||||
| layout (location = 2) out vec4 gDiffuseP; | ||||
| layout (location = 3) out vec4 gAmbientSpecular; | ||||
| layout (location = 2) out vec3 gBaseColor; | ||||
| layout (location = 3) out vec3 gRMS; | ||||
| layout (location = 4) out uvec3 gID; | ||||
| layout (location = 5) out vec3 gEmittedColor; | ||||
| 
 | ||||
| in vec3 vertex; // Позиция вершины в пространстве | ||||
| in vec3 N; // Нормаль трансформированноая | ||||
| @ -21,9 +23,11 @@ in vec3 T; // Касательный вектор | ||||
| in vec3 B; // Бикасательный вектор | ||||
| in vec3 view; // Вектор от поверхности к камере | ||||
| 
 | ||||
| uniform sampler2D tex_diffuse; | ||||
| uniform sampler2D tex_ambient; | ||||
| uniform sampler2D tex_albedo; | ||||
| uniform sampler2D tex_roughness; | ||||
| uniform sampler2D tex_metallic; | ||||
| uniform sampler2D tex_specular; | ||||
| uniform sampler2D tex_emitted; | ||||
| uniform sampler2D tex_heights; | ||||
| uniform sampler2D tex_normal; | ||||
| 
 | ||||
| @ -98,14 +102,16 @@ void main() | ||||
|         gNormal = normalize(TBN * gNormal); // Из касательного пространства в мировые координаты | ||||
|     } | ||||
| 
 | ||||
|     // Сохранение диффузного цвета | ||||
|     gDiffuseP.rgb = texture(tex_diffuse, new_texCoord).rgb * kd; | ||||
|     // Сохранение глянцевости | ||||
|     gDiffuseP.a = p; | ||||
|     // Сохранение фоновой составляющей | ||||
|     gAmbientSpecular.rgb = texture(tex_ambient, new_texCoord).rgb * ka; | ||||
|     // Сохранение зеркальной составляющей | ||||
|     gAmbientSpecular.a = texture(tex_specular, new_texCoord).r * ks.r; | ||||
|     // Сохранение базового цвета | ||||
|     gBaseColor.rgb = base_color.r<0?texture(tex_albedo, new_texCoord).rgb:base_color; | ||||
|     // Сохранение шероховатости | ||||
|     gRMS.r = roughness<0?texture(tex_roughness, new_texCoord).r:roughness; | ||||
|     // Сохранение металличности | ||||
|     gRMS.g = metallic<0?texture(tex_metallic, new_texCoord).r:metallic; | ||||
|     // Сохранение интенсивности блика диэлектриков | ||||
|     gRMS.b = specular<0?texture(tex_specular, new_texCoord).r:specular; | ||||
|     // Сохранение идентификатора объекта | ||||
|     gID = ID; | ||||
|     // Сохранение излучаемого света | ||||
|     gEmittedColor.rgb = emitted.r<0?texture(tex_emitted, new_texCoord).rgb:emitted; | ||||
| } | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user