Skip to content
Snippets Groups Projects
Commit 206565d9 authored by Nathanaëlle Courant's avatar Nathanaëlle Courant
Browse files

Fix shaders on some GPUs

parent 3cc45fd8
No related branches found
No related tags found
No related merge requests found
......@@ -21,14 +21,16 @@ const float e = 2.718281828459;
void main (void)
{
float use_normalmap = texture2D(useNormalmap,vec2(1.0,1.0)).r;
float enable_bumpmapping = enableBumpmapping;
vec3 color;
vec2 uv = gl_TexCoord[0].st;
#ifdef NORMALS
float height;
vec2 tsEye = vec2(tsEyeVec.x,-tsEyeVec.y);
float use_normalmap = texture2D(useNormalmap,vec2(1.0,1.0)).r;
float enable_bumpmapping = enableBumpmapping;
if ((enableParallaxOcclusion == 1.0) && (use_normalmap > 0.0)) {
float map_height = texture2D(normalTexture, uv).a;
if (map_height < 1.0){
......@@ -49,6 +51,9 @@ void main (void)
} else {
color = texture2D(baseTexture, uv).rgb;
}
#else
color = texture2D(baseTexture, uv).rgb;
#endif
float alpha = texture2D(baseTexture, uv).a;
vec4 col = vec4(color.r, color.g, color.b, alpha);
......
......@@ -18,12 +18,13 @@ const float e = 2.718281828459;
void main (void)
{
float use_normalmap = texture2D(useNormalmap,vec2(1.0,1.0)).r;
float enable_bumpmapping = enableBumpmapping;
vec3 color;
vec2 uv = gl_TexCoord[0].st;
#ifdef NORMALS
float use_normalmap = texture2D(useNormalmap,vec2(1.0,1.0)).r;
float enable_bumpmapping = enableBumpmapping;
if ((enable_bumpmapping == 1.0) && (use_normalmap > 0.0)) {
vec3 base = texture2D(baseTexture, uv).rgb;
vec3 vVec = normalize(eyeVec);
......@@ -36,6 +37,9 @@ void main (void)
} else {
color = texture2D(baseTexture, uv).rgb;
}
#else
color = texture2D(baseTexture, uv).rgb;
#endif
float alpha = texture2D(baseTexture, uv).a;
vec4 col = vec4(color.r, color.g, color.b, alpha);
......
......@@ -17,11 +17,12 @@ const float e = 2.718281828459;
void main (void)
{
float use_normalmap = texture2D(useNormalmap,vec2(1.0,1.0)).r;
float enable_bumpmapping = enableBumpmapping;
vec3 color;
vec2 uv = gl_TexCoord[0].st;
#ifdef NORMALS
float use_normalmap = texture2D(useNormalmap,vec2(1.0,1.0)).r;
float enable_bumpmapping = enableBumpmapping;
if ((enable_bumpmapping == 1.0) && (use_normalmap > 0.0)) {
vec3 base = texture2D(baseTexture, uv).rgb;
......@@ -35,6 +36,9 @@ void main (void)
} else {
color = texture2D(baseTexture, uv).rgb;
}
#else
color = texture2D(baseTexture, uv).rgb;
#endif
float alpha = gl_Color.a;
vec4 col = vec4(color.r, color.g, color.b, alpha);
......
......@@ -17,11 +17,12 @@ const float e = 2.718281828459;
void main (void)
{
float use_normalmap = texture2D(useNormalmap,vec2(1.0,1.0)).r;
float enable_bumpmapping = enableBumpmapping;
vec3 color;
vec2 uv = gl_TexCoord[0].st;
#ifdef NORMALS
float use_normalmap = texture2D(useNormalmap,vec2(1.0,1.0)).r;
float enable_bumpmapping = enableBumpmapping;
if ((enable_bumpmapping == 1.0) && (use_normalmap > 0.0)) {
vec3 base = texture2D(baseTexture, uv).rgb;
......@@ -35,6 +36,9 @@ void main (void)
} else {
color = texture2D(baseTexture, uv).rgb;
}
#else
color = texture2D(baseTexture, uv).rgb;
#endif
float alpha = texture2D(baseTexture, uv).a;
vec4 col = vec4(color.r, color.g, color.b, alpha);
......
......@@ -23,14 +23,16 @@ const float e = 2.718281828459;
void main (void)
{
float use_normalmap = texture2D(useNormalmap,vec2(1.0,1.0)).r;
float enable_bumpmapping = enableBumpmapping;
vec3 color;
vec2 uv = gl_TexCoord[0].st;
#ifdef NORMALS
float height;
vec2 tsEye = vec2(tsEyeVec.x,-tsEyeVec.y);
float use_normalmap = texture2D(useNormalmap,vec2(1.0,1.0)).r;
float enable_bumpmapping = enableBumpmapping;
if ((enableParallaxOcclusion == 1.0) && (use_normalmap > 0.0)) {
float map_height = texture2D(normalTexture, uv).a;
if (map_height < 1.0){
......@@ -69,6 +71,9 @@ void main (void)
} else {
color = texture2D(baseTexture, uv).rgb;
}
#else
color = texture2D(baseTexture, uv).rgb;
#endif
float alpha = texture2D(baseTexture, uv).a;
vec4 col = vec4(color.r, color.g, color.b, alpha);
......
......@@ -673,6 +673,15 @@ ShaderInfo generate_shader(std::string name, IrrlichtDevice *device,
if(vertex_program == "" && pixel_program == "" && geometry_program == "")
return shaderinfo;
if (g_settings->getBool("enable_bumpmapping") || g_settings->getBool("enable_parallax_occlusion")) {
if(vertex_program != "")
vertex_program = "#define NORMALS\n" + vertex_program;
if(pixel_program != "")
pixel_program = "#define NORMALS\n" + pixel_program;
if(geometry_program != "")
geometry_program = "#define NORMALS\n" + geometry_program;
}
// Call addHighLevelShaderMaterial() or addShaderMaterial()
const c8* vertex_program_ptr = 0;
const c8* pixel_program_ptr = 0;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment