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