Merge remote-tracking branch 'origin/master' into RendererBugFixes

Conflicts:
	include/Engine/Rendering/DrawFinalPass.h
This commit is contained in:
Teejoon
2016-03-09 16:54:26 +01:00
97 changed files with 5766 additions and 8259 deletions
@@ -0,0 +1,31 @@
#version 430
layout (binding = 0) uniform sampler2D Texture0;
layout (binding = 1)uniform sampler2D Texture1;
in VertexData{
vec2 TextureCoordinate;
}Input;
out vec4 sceneColor;
out vec4 bloomColor;
void main()
{
vec4 texel0 = texture(Texture0, Input.TextureCoordinate);
vec4 texel1 = texture(Texture1, Input.TextureCoordinate);
float texel1_total = (texel1.r + texel1.g + texel1.b) * texel1.a;
texel1_total = ceil(clamp(texel1_total, 0, 1));
vec4 result0 = texel0 * (1.0 - texel1_total);
vec4 result1 = texel1 * texel1_total;
//vec4 final = texel1 * texel1_total + texel0 * (1.0 - texel1_total);
//float res = 1.0 - texel1_total;
//vec4 final = vec4(texel1_total, texel1_total, texel1_total, 1.0);
sceneColor = result1;
bloomColor = vec4(0.0, 0.0, 0.0, 0.0);
}
@@ -0,0 +1,13 @@
#version 430
layout (location = 0) in vec3 Position;
out VertexData{
vec2 TextureCoordinate;
}Output;
void main()
{
gl_Position = vec4(Position, 1.0);
Output.TextureCoordinate = (vec2(Position) + 1) / 2;
}
+8 -4
View File
@@ -14,11 +14,15 @@ uniform float weight[5] = float[](0.227027, 0.1945946, 0.1216216, 0.054054, 0.01
void main()
{
vec2 tex_offset = 1.0 / textureSize2D(Texture, 0);
vec3 result = texture(Texture, Input.TextureCoordinate).rgb * weight[0];
vec3 center = texture(Texture, Input.TextureCoordinate).rgb;
vec3 result = center * weight[0];
for(int i = 1; i < 5; ++i) {
result += texture(Texture, Input.TextureCoordinate + vec2(tex_offset.x * i, 0.0)).rgb * weight[i];
result += texture(Texture, Input.TextureCoordinate - vec2(tex_offset.x * i, 0.0)).rgb * weight[i];
vec4 eastFragments = texture(Texture, Input.TextureCoordinate + vec2(tex_offset.x * i, 0.0));
vec4 westFragments = texture(Texture, Input.TextureCoordinate - vec2(tex_offset.x * i, 0.0));
result += eastFragments.rgb * weight[i] * eastFragments.a;
result += westFragments.rgb * weight[i] * westFragments.a;
result += center * weight[i] * (1.0 - westFragments.a);
result += center * weight[i] * (1.0 - eastFragments.a);
}
fragmentColor = vec4(result, 1.0);
}
+8 -4
View File
@@ -14,11 +14,15 @@ uniform float weight[5] = float[](0.227027, 0.1945946, 0.1216216, 0.054054, 0.01
void main()
{
vec2 tex_offset = 1.0 / textureSize2D(Texture, 0);
vec3 result = texture(Texture, Input.TextureCoordinate).rgb * weight[0];
vec3 center = texture(Texture, Input.TextureCoordinate).rgb;
vec3 result = center * weight[0];
for(int i = 1; i < 5; ++i) {
result += texture(Texture, Input.TextureCoordinate + vec2(0.0, tex_offset.y * i)).rgb * weight[i];
result += texture(Texture, Input.TextureCoordinate - vec2(0.0, tex_offset.y * i)).rgb * weight[i];
vec4 northFragments = texture(Texture, Input.TextureCoordinate + vec2(0.0, tex_offset.y * i));
vec4 southFragments = texture(Texture, Input.TextureCoordinate - vec2(0.0, tex_offset.y * i));
result += northFragments.rgb * weight[i] * northFragments.a;
result += southFragments.rgb * weight[i] * southFragments.a;
result += center * weight[i] * (1.0 - northFragments.a);
result += center * weight[i] * (1.0 - southFragments.a);
}
fragmentColor = vec4(result, 1.0);
}
+2 -1
View File
@@ -33,7 +33,8 @@ void main()
sceneColor = vec4(color_result.xyz, clamp(color_result.a, 0, 1));
//bloomColor = vec4(clamp((glowTexel.xyz*3) - 1.0, 0, 100), 1.0);
bloomColor = vec4(1.0, 1.0, 1.0, 0.0);
bloomColor = vec4(max(color_result.xyz - 1.0, 0.0), clamp(color_result.a, 0, 1));
//bloomColor = vec4(1.0, 1.0, 1.0, 0.0);
}