|
|
|
|
@@ -273,8 +273,6 @@ void Shaders::loadShaders()
|
|
|
|
|
FullScreenShader::Gaussian17TapVShader::init();
|
|
|
|
|
FullScreenShader::Gaussian6HBlurShader::init();
|
|
|
|
|
FullScreenShader::Gaussian6VBlurShader::init();
|
|
|
|
|
FullScreenShader::PenumbraHShader::init();
|
|
|
|
|
FullScreenShader::PenumbraVShader::init();
|
|
|
|
|
FullScreenShader::GlowShader::init();
|
|
|
|
|
FullScreenShader::PassThroughShader::init();
|
|
|
|
|
FullScreenShader::LinearizeDepthShader::init();
|
|
|
|
|
@@ -394,8 +392,11 @@ namespace UtilShader
|
|
|
|
|
glEnableVertexAttribArray(attrib_position);
|
|
|
|
|
glVertexAttribPointer(attrib_position, 3, GL_FLOAT, GL_FALSE, 3 * sizeof(float), 0);
|
|
|
|
|
uniform_color = glGetUniformLocation(Program, "color");
|
|
|
|
|
GLuint uniform_ViewProjectionMatrixesUBO = glGetUniformBlockIndex(Program, "MatrixesData");
|
|
|
|
|
glUniformBlockBinding(Program, uniform_ViewProjectionMatrixesUBO, 0);
|
|
|
|
|
if (!UserConfigParams::m_ubo_disabled)
|
|
|
|
|
{
|
|
|
|
|
GLuint uniform_ViewProjectionMatrixesUBO = glGetUniformBlockIndex(Program, "MatrixesData");
|
|
|
|
|
glUniformBlockBinding(Program, uniform_ViewProjectionMatrixesUBO, 0);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void ColoredLine::setUniforms(const irr::video::SColor &col)
|
|
|
|
|
@@ -429,8 +430,11 @@ namespace MeshShader
|
|
|
|
|
uniform_MM = glGetUniformLocation(Program, "ModelMatrix");
|
|
|
|
|
uniform_IMM = glGetUniformLocation(Program, "InverseModelMatrix");
|
|
|
|
|
uniform_tex = glGetUniformLocation(Program, "tex");
|
|
|
|
|
GLuint uniform_ViewProjectionMatrixesUBO = glGetUniformBlockIndex(Program, "MatrixesData");
|
|
|
|
|
glUniformBlockBinding(Program, uniform_ViewProjectionMatrixesUBO, 0);
|
|
|
|
|
if (!UserConfigParams::m_ubo_disabled)
|
|
|
|
|
{
|
|
|
|
|
GLuint uniform_ViewProjectionMatrixesUBO = glGetUniformBlockIndex(Program, "MatrixesData");
|
|
|
|
|
glUniformBlockBinding(Program, uniform_ViewProjectionMatrixesUBO, 0);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void ObjectPass1Shader::setUniforms(const core::matrix4 &ModelMatrix, const core::matrix4 &InverseModelMatrix, unsigned TU_tex)
|
|
|
|
|
@@ -464,8 +468,11 @@ namespace MeshShader
|
|
|
|
|
uniform_IMM = glGetUniformLocation(Program, "InverseModelMatrix");
|
|
|
|
|
uniform_TM = glGetUniformLocation(Program, "TextureMatrix");
|
|
|
|
|
uniform_tex = glGetUniformLocation(Program, "tex");
|
|
|
|
|
GLuint uniform_ViewProjectionMatrixesUBO = glGetUniformBlockIndex(Program, "MatrixesData");
|
|
|
|
|
glUniformBlockBinding(Program, uniform_ViewProjectionMatrixesUBO, 0);
|
|
|
|
|
if (!UserConfigParams::m_ubo_disabled)
|
|
|
|
|
{
|
|
|
|
|
GLuint uniform_ViewProjectionMatrixesUBO = glGetUniformBlockIndex(Program, "MatrixesData");
|
|
|
|
|
glUniformBlockBinding(Program, uniform_ViewProjectionMatrixesUBO, 0);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void ObjectRefPass1Shader::setUniforms(const core::matrix4 &ModelMatrix, const core::matrix4 &InverseModelMatrix, const core::matrix4 &TextureMatrix, unsigned TU_tex)
|
|
|
|
|
@@ -536,8 +543,11 @@ namespace MeshShader
|
|
|
|
|
uniform_IMM = glGetUniformLocation(Program, "InverseModelMatrix");
|
|
|
|
|
uniform_normalMap = glGetUniformLocation(Program, "normalMap");
|
|
|
|
|
uniform_DiffuseForAlpha = glGetUniformLocation(Program, "DiffuseForAlpha");
|
|
|
|
|
GLuint uniform_ViewProjectionMatrixesUBO = glGetUniformBlockIndex(Program, "MatrixesData");
|
|
|
|
|
glUniformBlockBinding(Program, uniform_ViewProjectionMatrixesUBO, 0);
|
|
|
|
|
if (!UserConfigParams::m_ubo_disabled)
|
|
|
|
|
{
|
|
|
|
|
GLuint uniform_ViewProjectionMatrixesUBO = glGetUniformBlockIndex(Program, "MatrixesData");
|
|
|
|
|
glUniformBlockBinding(Program, uniform_ViewProjectionMatrixesUBO, 0);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void NormalMapShader::setUniforms(const core::matrix4 &ModelMatrix, const core::matrix4 &InverseModelMatrix, unsigned TU_normalMap, unsigned TU_uniform_DiffuseForAlpha)
|
|
|
|
|
@@ -573,8 +583,11 @@ namespace MeshShader
|
|
|
|
|
attrib_normal = glGetAttribLocation(Program, "Normal");
|
|
|
|
|
attrib_texcoord = glGetAttribLocation(Program, "Texcoord");
|
|
|
|
|
uniform_tex = glGetUniformLocation(Program, "tex");
|
|
|
|
|
GLuint uniform_ViewProjectionMatrixesUBO = glGetUniformBlockIndex(Program, "MatrixesData");
|
|
|
|
|
glUniformBlockBinding(Program, uniform_ViewProjectionMatrixesUBO, 0);
|
|
|
|
|
if (!UserConfigParams::m_ubo_disabled)
|
|
|
|
|
{
|
|
|
|
|
GLuint uniform_ViewProjectionMatrixesUBO = glGetUniformBlockIndex(Program, "MatrixesData");
|
|
|
|
|
glUniformBlockBinding(Program, uniform_ViewProjectionMatrixesUBO, 0);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void InstancedObjectPass1Shader::setUniforms(unsigned TU_tex)
|
|
|
|
|
@@ -607,8 +620,11 @@ namespace MeshShader
|
|
|
|
|
attrib_normal = glGetAttribLocation(Program, "Normal");
|
|
|
|
|
attrib_texcoord = glGetAttribLocation(Program, "Texcoord");
|
|
|
|
|
uniform_tex = glGetUniformLocation(Program, "tex");
|
|
|
|
|
GLuint uniform_ViewProjectionMatrixesUBO = glGetUniformBlockIndex(Program, "MatrixesData");
|
|
|
|
|
glUniformBlockBinding(Program, uniform_ViewProjectionMatrixesUBO, 0);
|
|
|
|
|
if (!UserConfigParams::m_ubo_disabled)
|
|
|
|
|
{
|
|
|
|
|
GLuint uniform_ViewProjectionMatrixesUBO = glGetUniformBlockIndex(Program, "MatrixesData");
|
|
|
|
|
glUniformBlockBinding(Program, uniform_ViewProjectionMatrixesUBO, 0);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void InstancedObjectRefPass1Shader::setUniforms(unsigned TU_tex)
|
|
|
|
|
@@ -645,8 +661,11 @@ namespace MeshShader
|
|
|
|
|
attrib_texcoord = glGetAttribLocation(Program, "Texcoord");
|
|
|
|
|
uniform_windDir = glGetUniformLocation(Program, "windDir");
|
|
|
|
|
uniform_tex = glGetUniformLocation(Program, "tex");
|
|
|
|
|
GLuint uniform_ViewProjectionMatrixesUBO = glGetUniformBlockIndex(Program, "MatrixesData");
|
|
|
|
|
glUniformBlockBinding(Program, uniform_ViewProjectionMatrixesUBO, 0);
|
|
|
|
|
if (!UserConfigParams::m_ubo_disabled)
|
|
|
|
|
{
|
|
|
|
|
GLuint uniform_ViewProjectionMatrixesUBO = glGetUniformBlockIndex(Program, "MatrixesData");
|
|
|
|
|
glUniformBlockBinding(Program, uniform_ViewProjectionMatrixesUBO, 0);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void InstancedGrassPass1Shader::setUniforms(const core::vector3df &windDir, unsigned TU_tex)
|
|
|
|
|
@@ -682,8 +701,11 @@ namespace MeshShader
|
|
|
|
|
GLuint uniform_SpecularMap = glGetUniformLocation(Program, "SpecularMap");
|
|
|
|
|
GLuint uniform_SSAO = glGetUniformLocation(Program, "SSAO");
|
|
|
|
|
uniform_ambient = glGetUniformLocation(Program, "ambient");
|
|
|
|
|
GLuint uniform_ViewProjectionMatrixesUBO = glGetUniformBlockIndex(Program, "MatrixesData");
|
|
|
|
|
glUniformBlockBinding(Program, uniform_ViewProjectionMatrixesUBO, 0);
|
|
|
|
|
if (!UserConfigParams::m_ubo_disabled)
|
|
|
|
|
{
|
|
|
|
|
GLuint uniform_ViewProjectionMatrixesUBO = glGetUniformBlockIndex(Program, "MatrixesData");
|
|
|
|
|
glUniformBlockBinding(Program, uniform_ViewProjectionMatrixesUBO, 0);
|
|
|
|
|
}
|
|
|
|
|
TU_Albedo = 3;
|
|
|
|
|
|
|
|
|
|
glUseProgram(Program);
|
|
|
|
|
@@ -743,8 +765,11 @@ namespace MeshShader
|
|
|
|
|
glUniform1i(uniform_Albedo, TU_Albedo);
|
|
|
|
|
glUseProgram(0);
|
|
|
|
|
|
|
|
|
|
GLuint uniform_ViewProjectionMatrixesUBO = glGetUniformBlockIndex(Program, "MatrixesData");
|
|
|
|
|
glUniformBlockBinding(Program, uniform_ViewProjectionMatrixesUBO, 0);
|
|
|
|
|
if (!UserConfigParams::m_ubo_disabled)
|
|
|
|
|
{
|
|
|
|
|
GLuint uniform_ViewProjectionMatrixesUBO = glGetUniformBlockIndex(Program, "MatrixesData");
|
|
|
|
|
glUniformBlockBinding(Program, uniform_ViewProjectionMatrixesUBO, 0);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void InstancedObjectPass2Shader::setUniforms(const core::matrix4 &ViewProjectionMatrix, const core::matrix4 &TextureMatrix)
|
|
|
|
|
@@ -873,8 +898,11 @@ namespace MeshShader
|
|
|
|
|
attrib_texcoord = glGetAttribLocation(Program, "Texcoord");
|
|
|
|
|
uniform_MM = glGetUniformLocation(Program, "ModelMatrix");
|
|
|
|
|
GLuint uniform_tex = glGetUniformLocation(Program, "tex");
|
|
|
|
|
GLuint uniform_ViewProjectionMatrixesUBO = glGetUniformBlockIndex(Program, "MatrixesData");
|
|
|
|
|
glUniformBlockBinding(Program, uniform_ViewProjectionMatrixesUBO, 0);
|
|
|
|
|
if (!UserConfigParams::m_ubo_disabled)
|
|
|
|
|
{
|
|
|
|
|
GLuint uniform_ViewProjectionMatrixesUBO = glGetUniformBlockIndex(Program, "MatrixesData");
|
|
|
|
|
glUniformBlockBinding(Program, uniform_ViewProjectionMatrixesUBO, 0);
|
|
|
|
|
}
|
|
|
|
|
TU_tex = 3;
|
|
|
|
|
|
|
|
|
|
glUseProgram(Program);
|
|
|
|
|
@@ -916,8 +944,11 @@ namespace MeshShader
|
|
|
|
|
GLuint uniform_SSAO = glGetUniformLocation(Program, "SSAO");
|
|
|
|
|
uniform_ambient = glGetUniformLocation(Program, "ambient");
|
|
|
|
|
GLuint uniform_tex = glGetUniformLocation(Program, "tex");
|
|
|
|
|
GLuint uniform_ViewProjectionMatrixesUBO = glGetUniformBlockIndex(Program, "MatrixesData");
|
|
|
|
|
glUniformBlockBinding(Program, uniform_ViewProjectionMatrixesUBO, 0);
|
|
|
|
|
if (!UserConfigParams::m_ubo_disabled)
|
|
|
|
|
{
|
|
|
|
|
GLuint uniform_ViewProjectionMatrixesUBO = glGetUniformBlockIndex(Program, "MatrixesData");
|
|
|
|
|
glUniformBlockBinding(Program, uniform_ViewProjectionMatrixesUBO, 0);
|
|
|
|
|
}
|
|
|
|
|
TU_Albedo = 3;
|
|
|
|
|
|
|
|
|
|
glUseProgram(Program);
|
|
|
|
|
@@ -960,8 +991,11 @@ namespace MeshShader
|
|
|
|
|
GLuint uniform_SpecularMap = glGetUniformLocation(Program, "SpecularMap");
|
|
|
|
|
GLuint uniform_SSAO = glGetUniformLocation(Program, "SSAO");
|
|
|
|
|
uniform_ambient = glGetUniformLocation(Program, "ambient");
|
|
|
|
|
GLuint uniform_ViewProjectionMatrixesUBO = glGetUniformBlockIndex(Program, "MatrixesData");
|
|
|
|
|
glUniformBlockBinding(Program, uniform_ViewProjectionMatrixesUBO, 0);
|
|
|
|
|
if (!UserConfigParams::m_ubo_disabled)
|
|
|
|
|
{
|
|
|
|
|
GLuint uniform_ViewProjectionMatrixesUBO = glGetUniformBlockIndex(Program, "MatrixesData");
|
|
|
|
|
glUniformBlockBinding(Program, uniform_ViewProjectionMatrixesUBO, 0);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
glUseProgram(Program);
|
|
|
|
|
glUniform1i(uniform_DiffuseMap, 0);
|
|
|
|
|
@@ -1004,8 +1038,11 @@ namespace MeshShader
|
|
|
|
|
GLuint uniform_SpecularMap = glGetUniformLocation(Program, "SpecularMap");
|
|
|
|
|
GLuint uniform_SSAO = glGetUniformLocation(Program, "SSAO");
|
|
|
|
|
uniform_ambient = glGetUniformLocation(Program, "ambient");
|
|
|
|
|
GLuint uniform_ViewProjectionMatrixesUBO = glGetUniformBlockIndex(Program, "MatrixesData");
|
|
|
|
|
glUniformBlockBinding(Program, uniform_ViewProjectionMatrixesUBO, 0);
|
|
|
|
|
if (!UserConfigParams::m_ubo_disabled)
|
|
|
|
|
{
|
|
|
|
|
GLuint uniform_ViewProjectionMatrixesUBO = glGetUniformBlockIndex(Program, "MatrixesData");
|
|
|
|
|
glUniformBlockBinding(Program, uniform_ViewProjectionMatrixesUBO, 0);
|
|
|
|
|
}
|
|
|
|
|
TU_Albedo = 3;
|
|
|
|
|
|
|
|
|
|
glUseProgram(Program);
|
|
|
|
|
@@ -1160,8 +1197,11 @@ namespace MeshShader
|
|
|
|
|
uniform_MM = glGetUniformLocation(Program, "ModelMatrix");
|
|
|
|
|
uniform_IMM = glGetUniformLocation(Program, "InverseModelMatrix");
|
|
|
|
|
GLuint uniform_tex = glGetUniformLocation(Program, "tex");
|
|
|
|
|
GLuint uniform_ViewProjectionMatrixesUBO = glGetUniformBlockIndex(Program, "MatrixesData");
|
|
|
|
|
glUniformBlockBinding(Program, uniform_ViewProjectionMatrixesUBO, 0);
|
|
|
|
|
if (!UserConfigParams::m_ubo_disabled)
|
|
|
|
|
{
|
|
|
|
|
GLuint uniform_ViewProjectionMatrixesUBO = glGetUniformBlockIndex(Program, "MatrixesData");
|
|
|
|
|
glUniformBlockBinding(Program, uniform_ViewProjectionMatrixesUBO, 0);
|
|
|
|
|
}
|
|
|
|
|
TU_tex = 3;
|
|
|
|
|
|
|
|
|
|
glUseProgram(Program);
|
|
|
|
|
@@ -1319,8 +1359,11 @@ namespace MeshShader
|
|
|
|
|
uniform_start = glGetUniformLocation(Program, "start");
|
|
|
|
|
uniform_end = glGetUniformLocation(Program, "end");
|
|
|
|
|
uniform_col = glGetUniformLocation(Program, "col");
|
|
|
|
|
GLuint uniform_ViewProjectionMatrixesUBO = glGetUniformBlockIndex(Program, "MatrixesData");
|
|
|
|
|
glUniformBlockBinding(Program, uniform_ViewProjectionMatrixesUBO, 0);
|
|
|
|
|
if (!UserConfigParams::m_ubo_disabled)
|
|
|
|
|
{
|
|
|
|
|
GLuint uniform_ViewProjectionMatrixesUBO = glGetUniformBlockIndex(Program, "MatrixesData");
|
|
|
|
|
glUniformBlockBinding(Program, uniform_ViewProjectionMatrixesUBO, 0);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void TransparentFogShader::setUniforms(const core::matrix4 &ModelViewProjectionMatrix, const core::matrix4 &TextureMatrix, float fogmax, float startH, float endH, float start, float end, const core::vector3df &col, const core::vector3df &campos, unsigned TU_tex)
|
|
|
|
|
@@ -1385,8 +1428,11 @@ namespace MeshShader
|
|
|
|
|
attrib_position = glGetAttribLocation(Program, "Position");
|
|
|
|
|
uniform_MM = glGetUniformLocation(Program, "ModelMatrix");
|
|
|
|
|
uniform_col = glGetUniformLocation(Program, "col");
|
|
|
|
|
GLuint uniform_ViewProjectionMatrixesUBO = glGetUniformBlockIndex(Program, "MatrixesData");
|
|
|
|
|
glUniformBlockBinding(Program, uniform_ViewProjectionMatrixesUBO, 0);
|
|
|
|
|
if (!UserConfigParams::m_ubo_disabled)
|
|
|
|
|
{
|
|
|
|
|
GLuint uniform_ViewProjectionMatrixesUBO = glGetUniformBlockIndex(Program, "MatrixesData");
|
|
|
|
|
glUniformBlockBinding(Program, uniform_ViewProjectionMatrixesUBO, 0);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void ColorizeShader::setUniforms(const core::matrix4 &ModelMatrix, float r, float g, float b)
|
|
|
|
|
@@ -1669,8 +1715,11 @@ namespace MeshShader
|
|
|
|
|
attrib_position = glGetAttribLocation(Program, "Position");
|
|
|
|
|
uniform_MM = glGetUniformLocation(Program, "ModelMatrix");
|
|
|
|
|
uniform_tex = glGetUniformLocation(Program, "tex");
|
|
|
|
|
GLuint uniform_ViewProjectionMatrixesUBO = glGetUniformBlockIndex(Program, "MatrixesData");
|
|
|
|
|
glUniformBlockBinding(Program, uniform_ViewProjectionMatrixesUBO, 0);
|
|
|
|
|
if (!UserConfigParams::m_ubo_disabled)
|
|
|
|
|
{
|
|
|
|
|
GLuint uniform_ViewProjectionMatrixesUBO = glGetUniformBlockIndex(Program, "MatrixesData");
|
|
|
|
|
glUniformBlockBinding(Program, uniform_ViewProjectionMatrixesUBO, 0);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
glGenVertexArrays(1, &cubevao);
|
|
|
|
|
glBindVertexArray(cubevao);
|
|
|
|
|
@@ -2090,8 +2139,11 @@ namespace FullScreenShader
|
|
|
|
|
uniform_direction = glGetUniformLocation(Program, "direction");
|
|
|
|
|
uniform_col = glGetUniformLocation(Program, "col");
|
|
|
|
|
vao = createVAO(Program);
|
|
|
|
|
GLuint uniform_ViewProjectionMatrixesUBO = glGetUniformBlockIndex(Program, "MatrixesData");
|
|
|
|
|
glUniformBlockBinding(Program, uniform_ViewProjectionMatrixesUBO, 0);
|
|
|
|
|
if (!UserConfigParams::m_ubo_disabled)
|
|
|
|
|
{
|
|
|
|
|
GLuint uniform_ViewProjectionMatrixesUBO = glGetUniformBlockIndex(Program, "MatrixesData");
|
|
|
|
|
glUniformBlockBinding(Program, uniform_ViewProjectionMatrixesUBO, 0);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void SunLightShader::setUniforms(const core::vector3df &direction, float r, float g, float b, unsigned TU_ntex, unsigned TU_dtex)
|
|
|
|
|
@@ -2157,8 +2209,11 @@ namespace FullScreenShader
|
|
|
|
|
uniform_direction = glGetUniformLocation(Program, "direction");
|
|
|
|
|
uniform_col = glGetUniformLocation(Program, "col");
|
|
|
|
|
vao = createVAO(Program);
|
|
|
|
|
GLuint uniform_ViewProjectionMatrixesUBO = glGetUniformBlockIndex(Program, "MatrixesData");
|
|
|
|
|
glUniformBlockBinding(Program, uniform_ViewProjectionMatrixesUBO, 0);
|
|
|
|
|
if (!UserConfigParams::m_ubo_disabled)
|
|
|
|
|
{
|
|
|
|
|
GLuint uniform_ViewProjectionMatrixesUBO = glGetUniformBlockIndex(Program, "MatrixesData");
|
|
|
|
|
glUniformBlockBinding(Program, uniform_ViewProjectionMatrixesUBO, 0);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void ShadowedSunLightShader::setUniforms(const core::vector3df &direction, float r, float g, float b, unsigned TU_ntex, unsigned TU_dtex, unsigned TU_shadowtex)
|
|
|
|
|
@@ -2193,8 +2248,11 @@ namespace FullScreenShader
|
|
|
|
|
uniform_direction = glGetUniformLocation(Program, "direction");
|
|
|
|
|
uniform_col = glGetUniformLocation(Program, "col");
|
|
|
|
|
vao = createVAO(Program);
|
|
|
|
|
GLuint uniform_ViewProjectionMatrixesUBO = glGetUniformBlockIndex(Program, "MatrixesData");
|
|
|
|
|
glUniformBlockBinding(Program, uniform_ViewProjectionMatrixesUBO, 0);
|
|
|
|
|
if (!UserConfigParams::m_ubo_disabled)
|
|
|
|
|
{
|
|
|
|
|
GLuint uniform_ViewProjectionMatrixesUBO = glGetUniformBlockIndex(Program, "MatrixesData");
|
|
|
|
|
glUniformBlockBinding(Program, uniform_ViewProjectionMatrixesUBO, 0);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void ShadowedSunLightDebugShader::setUniforms(const core::vector3df &direction, float r, float g, float b, unsigned TU_ntex, unsigned TU_dtex, unsigned TU_shadowtex)
|
|
|
|
|
@@ -2292,46 +2350,6 @@ namespace FullScreenShader
|
|
|
|
|
vao = createVAO(Program);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
GLuint PenumbraHShader::Program;
|
|
|
|
|
GLuint PenumbraHShader::uniform_tex;
|
|
|
|
|
GLuint PenumbraHShader::uniform_pixel;
|
|
|
|
|
GLuint PenumbraHShader::vao;
|
|
|
|
|
void PenumbraHShader::init()
|
|
|
|
|
{
|
|
|
|
|
Program = LoadProgram(
|
|
|
|
|
GL_VERTEX_SHADER, file_manager->getAsset("shaders/screenquad.vert").c_str(),
|
|
|
|
|
GL_FRAGMENT_SHADER, file_manager->getAsset("shaders/penumbrah.frag").c_str());
|
|
|
|
|
uniform_tex = glGetUniformLocation(Program, "tex");
|
|
|
|
|
uniform_pixel = glGetUniformLocation(Program, "pixel");
|
|
|
|
|
vao = createVAO(Program);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void PenumbraHShader::setUniforms(const core::vector2df &pixels, GLuint TU_tex)
|
|
|
|
|
{
|
|
|
|
|
glUniform2f(uniform_pixel, pixels.X, pixels.Y);
|
|
|
|
|
glUniform1i(uniform_tex, TU_tex);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
GLuint PenumbraVShader::Program;
|
|
|
|
|
GLuint PenumbraVShader::uniform_tex;
|
|
|
|
|
GLuint PenumbraVShader::uniform_pixel;
|
|
|
|
|
GLuint PenumbraVShader::vao;
|
|
|
|
|
void PenumbraVShader::init()
|
|
|
|
|
{
|
|
|
|
|
Program = LoadProgram(
|
|
|
|
|
GL_VERTEX_SHADER, file_manager->getAsset("shaders/screenquad.vert").c_str(),
|
|
|
|
|
GL_FRAGMENT_SHADER, file_manager->getAsset("shaders/penumbrav.frag").c_str());
|
|
|
|
|
uniform_tex = glGetUniformLocation(Program, "tex");
|
|
|
|
|
uniform_pixel = glGetUniformLocation(Program, "pixel");
|
|
|
|
|
vao = createVAO(Program);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void PenumbraVShader::setUniforms(const core::vector2df &pixels, GLuint TU_tex)
|
|
|
|
|
{
|
|
|
|
|
glUniform2f(uniform_pixel, pixels.X, pixels.Y);
|
|
|
|
|
glUniform1i(uniform_tex, TU_tex);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
GLuint ShadowGenShader::Program;
|
|
|
|
|
GLuint ShadowGenShader::uniform_halft;
|
|
|
|
|
GLuint ShadowGenShader::uniform_quarter;
|
|
|
|
|
@@ -2422,8 +2440,11 @@ namespace FullScreenShader
|
|
|
|
|
uniform_noise_texture = glGetUniformLocation(Program, "noise_texture");
|
|
|
|
|
uniform_samplePoints = glGetUniformLocation(Program, "samplePoints[0]");
|
|
|
|
|
vao = createVAO(Program);
|
|
|
|
|
GLuint uniform_ViewProjectionMatrixesUBO = glGetUniformBlockIndex(Program, "MatrixesData");
|
|
|
|
|
glUniformBlockBinding(Program, uniform_ViewProjectionMatrixesUBO, 0);
|
|
|
|
|
if (!UserConfigParams::m_ubo_disabled)
|
|
|
|
|
{
|
|
|
|
|
GLuint uniform_ViewProjectionMatrixesUBO = glGetUniformBlockIndex(Program, "MatrixesData");
|
|
|
|
|
glUniformBlockBinding(Program, uniform_ViewProjectionMatrixesUBO, 0);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// SSAOSamples[4 * i] and SSAOSamples[4 * i + 1] can be negative
|
|
|
|
|
|
|
|
|
|
@@ -2573,8 +2594,11 @@ namespace FullScreenShader
|
|
|
|
|
uniform_end = glGetUniformLocation(Program, "end");
|
|
|
|
|
uniform_col = glGetUniformLocation(Program, "col");
|
|
|
|
|
vao = createVAO(Program);
|
|
|
|
|
GLuint uniform_ViewProjectionMatrixesUBO = glGetUniformBlockIndex(Program, "MatrixesData");
|
|
|
|
|
glUniformBlockBinding(Program, uniform_ViewProjectionMatrixesUBO, 0);
|
|
|
|
|
if (!UserConfigParams::m_ubo_disabled)
|
|
|
|
|
{
|
|
|
|
|
GLuint uniform_ViewProjectionMatrixesUBO = glGetUniformBlockIndex(Program, "MatrixesData");
|
|
|
|
|
glUniformBlockBinding(Program, uniform_ViewProjectionMatrixesUBO, 0);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void FogShader::setUniforms(float fogmax, float startH, float endH, float start, float end, const core::vector3df &col, unsigned TU_ntex)
|
|
|
|
|
|