Navigation Menu

Skip to content

Commit

Permalink
Let lighting be done only CPU side. Remove finalColorBlend implementa…
Browse files Browse the repository at this point in the history
…tion from shaders.
  • Loading branch information
RealBadAngel committed Aug 16, 2014
1 parent 0a57b5b commit bf91d62
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 64 deletions.
28 changes: 1 addition & 27 deletions client/shaders/nodes_shader/opengl_vertex.glsl
Expand Up @@ -97,31 +97,5 @@ void main(void)
eyeVec = (gl_ModelViewMatrix * gl_Vertex).xyz;
tsEyeVec = eyeVec * tbnMatrix;

vec4 color;
float day = gl_Color.r;
float night = gl_Color.g;
float light_source = gl_Color.b;

float rg = mix(night, day, dayNightRatio);
rg += light_source * 2.5; // Make light sources brighter
float b = rg;

// Moonlight is blue
b += (day - night) / 13.0;
rg -= (day - night) / 23.0;

// Emphase blue a bit in darker places
// See C++ implementation in mapblock_mesh.cpp finalColorBlend()
b += max(0.0, (1.0 - abs(b - 0.13)/0.17) * 0.025);

// Artificial light is yellow-ish
// See C++ implementation in mapblock_mesh.cpp finalColorBlend()
rg += max(0.0, (1.0 - abs(rg - 0.85)/0.15) * 0.065);

color.r = rg;
color.g = rg;
color.b = b;

color.a = gl_Color.a;
gl_FrontColor = gl_BackColor = clamp(color,0.0,1.0);
gl_FrontColor = gl_BackColor = gl_Color;
}
28 changes: 1 addition & 27 deletions client/shaders/water_surface_shader/opengl_vertex.glsl
Expand Up @@ -97,31 +97,5 @@ void main(void)
eyeVec = (gl_ModelViewMatrix * gl_Vertex).xyz;
tsEyeVec = eyeVec * tbnMatrix;

vec4 color;
float day = gl_Color.r;
float night = gl_Color.g;
float light_source = gl_Color.b;

float rg = mix(night, day, dayNightRatio);
rg += light_source * 2.5; // Make light sources brighter
float b = rg;

// Moonlight is blue
b += (day - night) / 13.0;
rg -= (day - night) / 13.0;

// Emphase blue a bit in darker places
// See C++ implementation in mapblock_mesh.cpp finalColorBlend()
b += max(0.0, (1.0 - abs(b - 0.13)/0.17) * 0.025);

// Artificial light is yellow-ish
// See C++ implementation in mapblock_mesh.cpp finalColorBlend()
rg += max(0.0, (1.0 - abs(rg - 0.85)/0.15) * 0.065);

color.r = rg;
color.g = rg;
color.b = b;

color.a = gl_Color.a;
gl_FrontColor = gl_BackColor = clamp(color,0.0,1.0);
gl_FrontColor = gl_BackColor = gl_Color;
}
17 changes: 7 additions & 10 deletions src/mapblock_mesh.cpp
Expand Up @@ -1158,16 +1158,13 @@ MapBlockMesh::MapBlockMesh(MeshMakeData *data, v3s16 camera_offset):
applyFacesShading (vc, 0.836660);
}
}
if(!enable_shaders)
{
// - Classic lighting (shaders handle this by themselves)
// Set initial real color and store for later updates
u8 day = vc.getRed();
u8 night = vc.getGreen();
finalColorBlend(vc, day, night, 1000);
if(day != night)
m_daynight_diffs[i][j] = std::make_pair(day, night);
}
// - Classic lighting
// Set initial real color and store for later updates
u8 day = vc.getRed();
u8 night = vc.getGreen();
finalColorBlend(vc, day, night, 1000);
if(day != night)
m_daynight_diffs[i][j] = std::make_pair(day, night);
}

// Create material
Expand Down

1 comment on commit bf91d62

@HybridDog
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does this disable blue moonlight?

Please sign in to comment.