Переделка шейдера геометрического прохода отложенного рендера
This commit is contained in:
		
							parent
							
								
									81f41b73d0
								
							
						
					
					
						commit
						7915149679
					
				@ -2,10 +2,11 @@
 | 
			
		||||
 | 
			
		||||
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;
 | 
			
		||||
    bool normalmapped;
 | 
			
		||||
    bool parallaxmapped;
 | 
			
		||||
    bool displacementmapped;
 | 
			
		||||
@ -13,9 +14,10 @@ layout(std140, binding = 1) uniform Material
 | 
			
		||||
 | 
			
		||||
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; // Нормаль трансформированноая
 | 
			
		||||
@ -24,9 +26,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;
 | 
			
		||||
}
 | 
			
		||||
@ -15,10 +15,11 @@ layout(std140, binding = 0) uniform Camera
 | 
			
		||||
 | 
			
		||||
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;
 | 
			
		||||
    bool normalmapped;
 | 
			
		||||
    bool parallaxmapped;
 | 
			
		||||
    bool displacementmapped;
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user