16
0
mirror of https://github.com/MaSzyna-EU07/maszyna.git synced 2026-07-21 00:09:19 +02:00

configurable renderer

This commit is contained in:
milek7
2018-07-25 12:14:55 +02:00
parent dfe48d72a4
commit da429650ab
20 changed files with 300 additions and 190 deletions

View File

@@ -12,5 +12,7 @@ void main()
{
vec4 tex_color = texture(tex1, f_coord);
gl_FragData[0] = tex_color * param[0];
#ifdef MOTIONBLUR_ENABLED
gl_FragData[1] = vec4(0.0f);
#endif
}

View File

@@ -7,5 +7,7 @@ in vec3 f_color;
void main()
{
gl_FragData[0] = vec4(f_color, 1.0f);
#ifdef MOTIONBLUR_ENABLED
gl_FragData[1] = vec4(0.0f);
#endif
}

View File

@@ -13,10 +13,12 @@ void main()
if (dist2 > 0.5f * 0.5f)
discard;
gl_FragData[0] = vec4(param[0].rgb * emission, 1.0f);
#ifdef MOTIONBLUR_ENABLED
{
vec2 a = (f_clip_future_pos.xy / f_clip_future_pos.w) * 0.5 + 0.5;;
vec2 b = (f_clip_pos.xy / f_clip_pos.w) * 0.5 + 0.5;;
gl_FragData[1] = vec4(a - b, 0.0f, 0.0f);
}
#endif
}

View File

@@ -1,5 +1,6 @@
float calc_shadow()
{
#ifdef SHADOWMAP_ENABLED
vec3 coords = f_light_pos.xyz / f_light_pos.w;
if (coords.z < 0.0f)
@@ -17,6 +18,9 @@ float calc_shadow()
shadow /= 16.0;
return 1.0 - shadow;
#else
return 1.0;
#endif
}
vec3 apply_fog(vec3 color)

View File

@@ -13,5 +13,7 @@ void main()
{
vec4 tex_color = texture(tex1, f_coord);
gl_FragData[0] = tex_color * param[0];
#ifdef MOTIONBLUR_ENABLED
gl_FragData[1] = vec4(0.0f);
#endif
}

View File

@@ -15,8 +15,13 @@ in vec4 f_clip_future_pos;
#param (specular, 1, 1, 1, specular)
#param (reflection, 1, 2, 1, zero)
#ifdef SHADOWMAP_ENABLED
uniform sampler2DShadow shadowmap;
#endif
#ifdef ENVMAP_ENABLED
uniform samplerCube envmap;
#endif
#include <light_common.glsl>
@@ -26,7 +31,11 @@ void main()
vec3 normal = normalize(f_normal);
vec3 refvec = reflect(f_pos.xyz, normal);
#ifdef ENVMAP_ENABLED
vec3 envcolor = texture(envmap, refvec).rgb;
#else
vec3 envcolor = vec3(0.5);
#endif
vec3 result = ambient * 0.5 + param[0].rgb * emission;
@@ -53,10 +62,12 @@ void main()
}
gl_FragData[0] = vec4(apply_fog(result * tex_color.rgb), tex_color.a);
#ifdef MOTIONBLUR_ENABLED
{
vec2 a = (f_clip_future_pos.xy / f_clip_future_pos.w) * 0.5 + 0.5;;
vec2 b = (f_clip_pos.xy / f_clip_pos.w) * 0.5 + 0.5;;
gl_FragData[1] = vec4(a - b, 0.0f, 0.0f);
}
#endif
}

View File

@@ -18,8 +18,13 @@ in vec4 f_clip_future_pos;
#texture (diffuse, 0, sRGB_A)
uniform sampler2D diffuse;
#ifdef SHADOWMAP_ENABLED
uniform sampler2DShadow shadowmap;
#endif
#ifdef ENVMAP_ENABLED
uniform samplerCube envmap;
#endif
#include <light_common.glsl>
@@ -32,7 +37,11 @@ void main()
vec3 normal = normalize(f_normal);
vec3 refvec = reflect(f_pos.xyz, normal);
#ifdef ENVMAP_ENABLED
vec3 envcolor = texture(envmap, refvec).rgb;
#else
vec3 envcolor = vec3(0.5);
#endif
vec3 result = ambient * 0.5 + param[0].rgb * emission;
@@ -60,11 +69,12 @@ void main()
gl_FragData[0] = vec4(apply_fog(result * tex_color.rgb), tex_color.a);
#ifdef MOTIONBLUR_ENABLED
{
vec2 a = (f_clip_future_pos.xy / f_clip_future_pos.w) * 0.5 + 0.5;;
vec2 b = (f_clip_pos.xy / f_clip_pos.w) * 0.5 + 0.5;;
gl_FragData[1] = vec4(a - b, 0.0f, tex_color.a < 0.9f ? 0.0f : 1.0f);
}
#endif
}

View File

@@ -5,5 +5,7 @@
void main()
{
gl_FragData[0] = vec4(1.0, 0.0, 1.0, 1.0);
#ifdef MOTIONBLUR_ENABLED
gl_FragData[1] = vec4(0.0f);
#endif
}

View File

@@ -22,8 +22,13 @@ uniform sampler2D diffuse;
#texture (normalmap, 1, RGB)
uniform sampler2D normalmap;
#ifdef SHADOWMAP_ENABLED
uniform sampler2DShadow shadowmap;
#endif
#ifdef ENVMAP_ENABLED
uniform samplerCube envmap;
#endif
#define NORMALMAP
#include <light_common.glsl>
@@ -37,7 +42,11 @@ void main()
vec3 normal = f_tbn * normalize(texture(normalmap, f_coord).rgb * 2.0 - 1.0);
vec3 refvec = reflect(f_pos.xyz, normal);
#ifdef ENVMAP_ENABLED
vec3 envcolor = texture(envmap, refvec).rgb;
#else
vec3 envcolor = vec3(0.5);
#endif
vec3 result = ambient * 0.5 + param[0].rgb * emission;
@@ -64,10 +73,13 @@ void main()
}
gl_FragData[0] = vec4(apply_fog(result * tex_color.rgb), tex_color.a);
#ifdef MOTIONBLUR_ENABLED
{
vec2 a = (f_clip_future_pos.xy / f_clip_future_pos.w) * 0.5 + 0.5;;
vec2 b = (f_clip_pos.xy / f_clip_pos.w) * 0.5 + 0.5;;
gl_FragData[1] = vec4(a - b, 0.0f, 0.0f);
}
#endif
}

View File

@@ -21,8 +21,13 @@ uniform sampler2D diffuse;
#texture (reflmap, 1, R)
uniform sampler2D reflmap;
#ifdef SHADOWMAP_ENABLED
uniform sampler2DShadow shadowmap;
#endif
#ifdef ENVMAP_ENABLED
uniform samplerCube envmap;
#endif
#include <light_common.glsl>
@@ -35,7 +40,11 @@ void main()
vec3 normal = normalize(f_normal);
vec3 refvec = reflect(f_pos.xyz, normal);
#ifdef ENVMAP_ENABLED
vec3 envcolor = texture(envmap, refvec).rgb;
#else
vec3 envcolor = vec3(0.5);
#endif
vec3 result = ambient * 0.5 + param[0].rgb * emission;
@@ -63,10 +72,12 @@ void main()
gl_FragData[0] = vec4(apply_fog(result * tex_color.rgb), tex_color.a);
#ifdef MOTIONBLUR_ENABLED
{
vec2 a = (f_clip_future_pos.xy / f_clip_future_pos.w) * 0.5 + 0.5;;
vec2 b = (f_clip_pos.xy / f_clip_pos.w) * 0.5 + 0.5;;
gl_FragData[1] = vec4(a - b, 0.0f, 0.0f);
}
#endif
}

View File

@@ -14,5 +14,7 @@ void main()
// color data is shared with normals, ugh
gl_FragData[0] = vec4(f_normal_raw.bgr, 1.0f);
#ifdef MOTIONBLUR_ENABLED
gl_FragData[1] = vec4(0.0f);
#endif
}

View File

@@ -8,10 +8,12 @@ in vec4 f_clip_future_pos;
void main()
{
gl_FragData[0] = param[0];
#ifdef MOTIONBLUR_ENABLED
{
vec2 a = (f_clip_future_pos.xy / f_clip_future_pos.w) * 0.5 + 0.5;;
vec2 b = (f_clip_pos.xy / f_clip_pos.w) * 0.5 + 0.5;;
gl_FragData[1] = vec4(a - b, 0.0f, 0.0f);
}
#endif
}