- added a few more texture coloring options to the shader.
Aside from adding an additive component it can now also do: - desaturation (not limited to the range of 0..1 so it can also be used for oversaturation by applying a negative number or negative saturation by going above 1.0. - invert the texture - apply a blend, including 3 special mode taken from EDuke32. Currently only the implementation is done, it is not exposed to UDMF yet.
This commit is contained in:
parent
41a9496bef
commit
3209d4ed23
7 changed files with 142 additions and 6 deletions
|
|
@ -138,6 +138,11 @@ bool FGLRenderState::ApplyShader()
|
|||
activeShader->muClipSplit.Set(mClipSplit);
|
||||
activeShader->muSpecularMaterial.Set(mGlossiness, mSpecularLevel);
|
||||
activeShader->muAddColor.Set(mStreamData.uAddColor);
|
||||
activeShader->muBlendColor.Set(mStreamData.uBlendColor);
|
||||
activeShader->muObjectBlendMode.Set(mStreamData.uObjectBlendMode);
|
||||
activeShader->muObjectColorizeFactor.Set(mStreamData.uObjectColorizeFactor);
|
||||
activeShader->muObjectDesaturationFactor.Set(mStreamData.uObjectDesaturationFactor);
|
||||
activeShader->muObjectInvertColor.Set(mStreamData.uObjectInvertColor);
|
||||
|
||||
if (mGlowEnabled || activeShader->currentglowstate)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -242,10 +242,17 @@ bool FShader::Load(const char * name, const char * vert_prog_lump, const char *
|
|||
i_data += "uniform vec4 uObjectColor2;\n";
|
||||
i_data += "uniform vec4 uDynLightColor;\n";
|
||||
i_data += "uniform vec4 uAddColor;\n";
|
||||
i_data += "uniform vec4 uBlendColor;\n";
|
||||
i_data += "uniform vec4 uFogColor;\n";
|
||||
i_data += "uniform float uDesaturationFactor;\n";
|
||||
i_data += "uniform float uInterpolationFactor;\n";
|
||||
|
||||
i_data += "uniform float uObjectDesaturationFactor;\n";
|
||||
i_data += "uniform float uObjectColorizeFactor;\n";
|
||||
i_data += "uniform int uObjectBlendMode;\n";
|
||||
i_data += "uniform int uObjectInvertColor;\n";
|
||||
|
||||
|
||||
// Glowing walls stuff
|
||||
i_data += "uniform vec4 uGlowTopPlane;\n";
|
||||
i_data += "uniform vec4 uGlowTopColor;\n";
|
||||
|
|
@ -536,6 +543,11 @@ bool FShader::Load(const char * name, const char * vert_prog_lump, const char *
|
|||
muAlphaThreshold.Init(hShader, "uAlphaThreshold");
|
||||
muSpecularMaterial.Init(hShader, "uSpecularMaterial");
|
||||
muAddColor.Init(hShader, "uAddColor");
|
||||
muBlendColor.Init(hShader, "uBlendColor");
|
||||
muObjectDesaturationFactor.Init(hShader, "uObjectDesaturationFactor");
|
||||
muObjectColorizeFactor.Init(hShader, "uObjectColorizeFactor");
|
||||
muObjectBlendMode.Init(hShader, "uObjectBlendMode");
|
||||
muObjectInvertColor.Init(hShader, "uObjectInvertColor");
|
||||
muTimer.Init(hShader, "timer");
|
||||
|
||||
lights_index = glGetUniformLocation(hShader, "lights");
|
||||
|
|
|
|||
|
|
@ -246,6 +246,7 @@ class FShader
|
|||
FBufferedUniformPE muObjectColor;
|
||||
FBufferedUniformPE muObjectColor2;
|
||||
FBufferedUniformPE muAddColor;
|
||||
FBufferedUniformPE muBlendColor;
|
||||
FUniform4f muGlowBottomColor;
|
||||
FUniform4f muGlowTopColor;
|
||||
FUniform4f muGlowBottomPlane;
|
||||
|
|
@ -259,6 +260,11 @@ class FShader
|
|||
FBufferedUniform2f muSpecularMaterial;
|
||||
FBufferedUniform1f muTimer;
|
||||
|
||||
FBufferedUniform1f muObjectDesaturationFactor;
|
||||
FBufferedUniform1f muObjectColorizeFactor;
|
||||
FBufferedUniform1i muObjectBlendMode;
|
||||
FBufferedUniform1i muObjectInvertColor;
|
||||
|
||||
int lights_index;
|
||||
int modelmatrix_index;
|
||||
int normalmodelmatrix_index;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue