Godray/Godfade now declared in new pipeline.
This commit is contained in:
parent
a00abffb01
commit
778cdcf3ce
@ -1,11 +1,13 @@
|
|||||||
#version 330 compatibility
|
#version 330
|
||||||
uniform sampler2D tex;
|
uniform sampler2D tex;
|
||||||
uniform vec3 col;
|
uniform vec3 col;
|
||||||
|
|
||||||
|
in vec2 uv;
|
||||||
out vec4 FragColor;
|
out vec4 FragColor;
|
||||||
|
|
||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
vec4 res = texture(tex, gl_TexCoord[0].xy);
|
vec4 res = texture(tex, uv);
|
||||||
|
|
||||||
// Keep the sun fully bright, but fade the sky
|
// Keep the sun fully bright, but fade the sky
|
||||||
float mul = distance(res.xyz, col);
|
float mul = distance(res.xyz, col);
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
#version 330 compatibility
|
#version 330
|
||||||
uniform sampler2D tex;
|
uniform sampler2D tex;
|
||||||
uniform vec2 sunpos;
|
uniform vec2 sunpos;
|
||||||
|
|
||||||
@ -6,11 +6,12 @@ uniform vec2 sunpos;
|
|||||||
|
|
||||||
const float decaystep = 0.88;
|
const float decaystep = 0.88;
|
||||||
|
|
||||||
|
in vec2 uv;
|
||||||
out vec4 FragColor;
|
out vec4 FragColor;
|
||||||
|
|
||||||
void main()
|
void main()
|
||||||
{
|
{
|
||||||
vec2 texc = gl_TexCoord[0].xy;
|
vec2 texc = uv;
|
||||||
vec2 tosun = sunpos - texc;
|
vec2 tosun = sunpos - texc;
|
||||||
|
|
||||||
if (dot(tosun, tosun) > 0.49) discard;
|
if (dot(tosun, tosun) > 0.49) discard;
|
||||||
|
@ -239,6 +239,8 @@ void Shaders::loadShaders()
|
|||||||
FullScreenShader::SunLightShader::init();
|
FullScreenShader::SunLightShader::init();
|
||||||
FullScreenShader::ShadowedSunLightShader::init();
|
FullScreenShader::ShadowedSunLightShader::init();
|
||||||
FullScreenShader::MotionBlurShader::init();
|
FullScreenShader::MotionBlurShader::init();
|
||||||
|
FullScreenShader::GodFadeShader::init();
|
||||||
|
FullScreenShader::GodRayShader::init();
|
||||||
MeshShader::ColorizeShader::init();
|
MeshShader::ColorizeShader::init();
|
||||||
MeshShader::NormalMapShader::init();
|
MeshShader::NormalMapShader::init();
|
||||||
MeshShader::ObjectPass1Shader::init();
|
MeshShader::ObjectPass1Shader::init();
|
||||||
@ -1724,6 +1726,44 @@ namespace FullScreenShader
|
|||||||
glUniform1f(uniform_max_tex_height, max_tex_height);
|
glUniform1f(uniform_max_tex_height, max_tex_height);
|
||||||
glUniform1i(uniform_color_buffer, TU_cb);
|
glUniform1i(uniform_color_buffer, TU_cb);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
GLuint GodFadeShader::Program;
|
||||||
|
GLuint GodFadeShader::uniform_tex;
|
||||||
|
GLuint GodFadeShader::uniform_col;
|
||||||
|
GLuint GodFadeShader::vao;
|
||||||
|
|
||||||
|
void GodFadeShader::init()
|
||||||
|
{
|
||||||
|
Program = LoadProgram(file_manager->getAsset("shaders/screenquad.vert").c_str(), file_manager->getAsset("shaders/godfade.frag").c_str());
|
||||||
|
uniform_tex = glGetUniformLocation(Program, "tex");
|
||||||
|
uniform_col = glGetUniformLocation(Program, "col");
|
||||||
|
vao = createVAO(Program);
|
||||||
|
}
|
||||||
|
|
||||||
|
void GodFadeShader::setUniforms(const SColor &col, unsigned TU_tex)
|
||||||
|
{
|
||||||
|
glUniform3f(uniform_col, col.getRed() / 255., col.getGreen() / 255., col.getBlue() / 255.);
|
||||||
|
glUniform1i(uniform_tex, TU_tex);
|
||||||
|
}
|
||||||
|
|
||||||
|
GLuint GodRayShader::Program;
|
||||||
|
GLuint GodRayShader::uniform_tex;
|
||||||
|
GLuint GodRayShader::uniform_sunpos;
|
||||||
|
GLuint GodRayShader::vao;
|
||||||
|
|
||||||
|
void GodRayShader::init()
|
||||||
|
{
|
||||||
|
Program = LoadProgram(file_manager->getAsset("shaders/screenquad.vert").c_str(), file_manager->getAsset("shaders/godray.frag").c_str());
|
||||||
|
uniform_tex = glGetUniformLocation(Program, "tex");
|
||||||
|
uniform_sunpos = glGetUniformLocation(Program, "sunpos");
|
||||||
|
vao = createVAO(Program);
|
||||||
|
}
|
||||||
|
|
||||||
|
void GodRayShader::setUniforms(const core::vector2df &sunpos, unsigned TU_tex)
|
||||||
|
{
|
||||||
|
glUniform2f(uniform_sunpos, sunpos.X, sunpos.Y);
|
||||||
|
glUniform1i(uniform_tex, TU_tex);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
namespace UIShader
|
namespace UIShader
|
||||||
|
@ -534,6 +534,28 @@ public:
|
|||||||
static void setUniforms(float boost_amount, const core::vector2df ¢er, const core::vector2df &direction, float mask_radius, float max_tex_height, unsigned TU_cb);
|
static void setUniforms(float boost_amount, const core::vector2df ¢er, const core::vector2df &direction, float mask_radius, float max_tex_height, unsigned TU_cb);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class GodFadeShader
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
static GLuint Program;
|
||||||
|
static GLuint uniform_tex, uniform_col;
|
||||||
|
static GLuint vao;
|
||||||
|
|
||||||
|
static void init();
|
||||||
|
static void setUniforms(const video::SColor &col, unsigned TU_tex);
|
||||||
|
};
|
||||||
|
|
||||||
|
class GodRayShader
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
static GLuint Program;
|
||||||
|
static GLuint uniform_tex, uniform_sunpos;
|
||||||
|
static GLuint vao;
|
||||||
|
|
||||||
|
static void init();
|
||||||
|
static void setUniforms(const core::vector2df &sunpos, unsigned TU_tex);
|
||||||
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
namespace UIShader
|
namespace UIShader
|
||||||
|
Loading…
Reference in New Issue
Block a user