gpu: add option to use old texture brightness code

This commit is contained in:
Adam
2021-01-07 10:43:37 -05:00
parent aa1cd2c7ff
commit cb22bdd026
3 changed files with 18 additions and 2 deletions

View File

@@ -269,6 +269,7 @@ public class GpuPlugin extends Plugin implements DrawCallbacks
private int uniBlockLarge; private int uniBlockLarge;
private int uniBlockMain; private int uniBlockMain;
private int uniSmoothBanding; private int uniSmoothBanding;
private int uniTextureLightMode;
@Override @Override
protected void startUp() protected void startUp()
@@ -538,6 +539,7 @@ public class GpuPlugin extends Plugin implements DrawCallbacks
uniFogDepth = gl.glGetUniformLocation(glProgram, "fogDepth"); uniFogDepth = gl.glGetUniformLocation(glProgram, "fogDepth");
uniDrawDistance = gl.glGetUniformLocation(glProgram, "drawDistance"); uniDrawDistance = gl.glGetUniformLocation(glProgram, "drawDistance");
uniColorBlindMode = gl.glGetUniformLocation(glProgram, "colorBlindMode"); uniColorBlindMode = gl.glGetUniformLocation(glProgram, "colorBlindMode");
uniTextureLightMode = gl.glGetUniformLocation(glProgram, "textureLightMode");
uniTex = gl.glGetUniformLocation(glUiProgram, "tex"); uniTex = gl.glGetUniformLocation(glUiProgram, "tex");
uniTexSamplingMode = gl.glGetUniformLocation(glUiProgram, "samplingMode"); uniTexSamplingMode = gl.glGetUniformLocation(glUiProgram, "samplingMode");
@@ -1151,6 +1153,7 @@ public class GpuPlugin extends Plugin implements DrawCallbacks
gl.glUniform1f(uniBrightness, (float) textureProvider.getBrightness()); gl.glUniform1f(uniBrightness, (float) textureProvider.getBrightness());
gl.glUniform1f(uniSmoothBanding, config.smoothBanding() ? 0f : 1f); gl.glUniform1f(uniSmoothBanding, config.smoothBanding() ? 0f : 1f);
gl.glUniform1i(uniColorBlindMode, config.colorBlindMode().ordinal()); gl.glUniform1i(uniColorBlindMode, config.colorBlindMode().ordinal());
gl.glUniform1f(uniTextureLightMode, config.brightTextures() ? 1f : 0f);
// Calculate projection matrix // Calculate projection matrix
Matrix4 projectionMatrix = new Matrix4(); Matrix4 projectionMatrix = new Matrix4();

View File

@@ -28,9 +28,9 @@ import net.runelite.client.config.Config;
import net.runelite.client.config.ConfigGroup; import net.runelite.client.config.ConfigGroup;
import net.runelite.client.config.ConfigItem; import net.runelite.client.config.ConfigItem;
import net.runelite.client.config.Range; import net.runelite.client.config.Range;
import static net.runelite.client.plugins.gpu.GpuPlugin.MAX_DISTANCE;
import static net.runelite.client.plugins.gpu.GpuPlugin.MAX_FOG_DEPTH; import static net.runelite.client.plugins.gpu.GpuPlugin.MAX_FOG_DEPTH;
import net.runelite.client.plugins.gpu.config.AntiAliasingMode; import net.runelite.client.plugins.gpu.config.AntiAliasingMode;
import static net.runelite.client.plugins.gpu.GpuPlugin.MAX_DISTANCE;
import net.runelite.client.plugins.gpu.config.ColorBlindMode; import net.runelite.client.plugins.gpu.config.ColorBlindMode;
import net.runelite.client.plugins.gpu.config.UIScalingMode; import net.runelite.client.plugins.gpu.config.UIScalingMode;
@@ -135,4 +135,15 @@ public interface GpuPluginConfig extends Config
{ {
return ColorBlindMode.NONE; return ColorBlindMode.NONE;
} }
@ConfigItem(
keyName = "brightTextures",
name = "Bright Textures",
description = "Use old texture lighting method which results in brighter game textures",
position = 9
)
default boolean brightTextures()
{
return false;
}
} }

View File

@@ -30,6 +30,7 @@ uniform float brightness;
uniform float smoothBanding; uniform float smoothBanding;
uniform vec4 fogColor; uniform vec4 fogColor;
uniform int colorBlindMode; uniform int colorBlindMode;
uniform float textureLightMode;
in vec4 Color; in vec4 Color;
noperspective centroid in float fHsl; noperspective centroid in float fHsl;
@@ -55,7 +56,8 @@ void main() {
// textured triangles hsl is a 7 bit lightness 2-126 // textured triangles hsl is a 7 bit lightness 2-126
float light = fHsl / 127.f; float light = fHsl / 127.f;
c = textureColorBrightness * vec4(light, light, light, 1.f); vec3 mul = (1.f - textureLightMode) * vec3(light) + textureLightMode * Color.rgb;
c = textureColorBrightness * vec4(mul, 1.f);
} else { } else {
// pick interpolated hsl or rgb depending on smooth banding setting // pick interpolated hsl or rgb depending on smooth banding setting
vec3 rgb = hslToRgb(int(fHsl)) * smoothBanding + Color.rgb * (1.f - smoothBanding); vec3 rgb = hslToRgb(int(fHsl)) * smoothBanding + Color.rgb * (1.f - smoothBanding);