Merge pull request #198 from teamfisk/Menu

Menu
This commit is contained in:
William Moberg
2016-03-10 15:38:06 +01:00
20 changed files with 370 additions and 163 deletions
@@ -0,0 +1,21 @@
#version 430
layout (binding = 0) uniform sampler2D Texture;
uniform int MaxMipMap;
in VertexData{
vec2 TextureCoordinate;
}Input;
out vec4 fragmentColor;
void main()
{
vec4 result = vec4(0.0, 0.0, 0.0, 0.0);
for(int i = 0; i < MaxMipMap; i++) {
result += textureLod(Texture, Input.TextureCoordinate, i);
}
fragmentColor = result;
}
@@ -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;
}
+4 -1
View File
@@ -2,6 +2,7 @@
#extension GL_EXT_gpu_shader4 : enable
layout (binding = 0) uniform sampler2D Texture;
uniform int Lod;
in VertexData{
vec2 TextureCoordinate;
@@ -10,12 +11,14 @@ in VertexData{
out vec4 fragmentColor;
uniform float weight[5] = float[](0.227027, 0.1945946, 0.1216216, 0.054054, 0.016216);
//uniform float weight[3] = float[](0.265495, 0.226535, 0.140718);
void main()
{
vec2 tex_offset = 1.0 / textureSize2D(Texture, 0);
vec2 tex_offset = 1.0 / textureSize(Texture, Lod);
vec3 center = texture(Texture, Input.TextureCoordinate).rgb;
vec3 result = center * weight[0];
for(int i = 1; i < 5; ++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));
+4 -1
View File
@@ -2,6 +2,7 @@
#extension GL_EXT_gpu_shader4 : enable
layout (binding = 0) uniform sampler2D Texture;
uniform int Lod;
in VertexData{
vec2 TextureCoordinate;
@@ -10,12 +11,14 @@ in VertexData{
out vec4 fragmentColor;
uniform float weight[5] = float[](0.227027, 0.1945946, 0.1216216, 0.054054, 0.016216);
//uniform float weight[3] = float[](0.265495, 0.226535, 0.140718);
void main()
{
vec2 tex_offset = 1.0 / textureSize2D(Texture, 0);
vec2 tex_offset = 1.0 / textureSize(Texture, Lod);
vec3 center = texture(Texture, Input.TextureCoordinate).rgb;
vec3 result = center * weight[0];
for(int i = 1; i < 5; ++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));
+8 -5
View File
@@ -3,6 +3,8 @@
uniform vec4 Color;
uniform vec4 FillColor;
uniform float FillPercentage;
uniform float ScaleX;
uniform float ScaleY;
uniform mat4 P;
layout (binding = 1) uniform sampler2D DiffuseTexture;
@@ -21,15 +23,16 @@ out vec4 bloomColor;
void main()
{
vec4 diffuseTexel = texture2D(DiffuseTexture, Input.TextureCoordinate);
vec4 glowTexel = texture2D(GlowMapTexture, Input.TextureCoordinate);
vec4 diffuseTexel = texture2D(DiffuseTexture, vec2(Input.TextureCoordinate.x*ScaleX, Input.TextureCoordinate.y*ScaleY));
vec4 glowTexel = texture2D(GlowMapTexture, vec2(Input.TextureCoordinate.x*ScaleX, Input.TextureCoordinate.y*ScaleY));
vec4 color_result = Color * diffuseTexel;
float pos = ((P * vec4(Input.Position, 1)).y + 1.0)/2.0;
if(pos <= FillPercentage) {
color_result = FillColor*diffuseTexel.a;
}
float fillResult = floor(pos*FillPercentage);
color_result = FillColor*diffuseTexel.a*fillResult + color_result*(1-fillResult);
sceneColor = vec4(color_result.xyz, clamp(color_result.a, 0, 1));
//bloomColor = vec4(clamp((glowTexel.xyz*3) - 1.0, 0, 100), 1.0);