gpu: add ambient lighting based on fog color

This commit is contained in:
TheRealNull
2020-01-23 02:28:46 -05:00
parent 9f287f2fae
commit f2400b592e
3 changed files with 37 additions and 2 deletions

View File

@@ -237,9 +237,11 @@ public class GpuPlugin extends Plugin implements DrawCallbacks
private int uniBlockLarge;
private int uniBlockMain;
private int uniSmoothBanding;
private int uniAmbientLighting;
private int drawDistance;
private boolean smoothBanding;
private boolean ambientLighting;
private AntiAliasingMode antiAliasingMode;
private AnisotropicFilteringMode anisotropicFilteringMode;
private int fogDepth;
@@ -266,6 +268,7 @@ public class GpuPlugin extends Plugin implements DrawCallbacks
this.fogCircularity = config.fogCircularity();
this.fogDensity = config.fogDensity();
this.uiScalingMode = config.uiScalingMode();
this.ambientLighting = config.ambientLighting();
}
@Override
@@ -548,6 +551,7 @@ public class GpuPlugin extends Plugin implements DrawCallbacks
uniFogCornerRadius = gl.glGetUniformLocation(glProgram, "fogCornerRadius");
uniFogDensity = gl.glGetUniformLocation(glProgram, "fogDensity");
uniDrawDistance = gl.glGetUniformLocation(glProgram, "drawDistance");
uniAmbientLighting = gl.glGetUniformLocation(glProgram, "ambientLighting");
uniTex = gl.glGetUniformLocation(glUiProgram, "tex");
uniTexSamplingMode = gl.glGetUniformLocation(glUiProgram, "samplingMode");
@@ -1111,7 +1115,9 @@ public class GpuPlugin extends Plugin implements DrawCallbacks
// Brightness happens to also be stored in the texture provider, so we use that
gl.glUniform1f(uniBrightness, (float) textureProvider.getBrightness());
gl.glUniform1f(uniSmoothBanding, this.smoothBanding ? 0f : 1f);
gl.glUniform1f(uniAmbientLighting, !this.ambientLighting ? 0f : 1f);
for (int id = 0; id < textures.length; ++id)
{

View File

@@ -191,4 +191,26 @@ public interface GpuPluginConfig extends Config
{
return 10;
}
@ConfigTitleSection(
keyName = "effectsTitle",
name = "Effects",
description = "",
position = 13
)
default Title effectsTitle()
{
return new Title();
}
@ConfigItem(
keyName = "ambientLighting",
name = "Ambient Lighting",
description = "Produces global lighting based on current fog color",
position = 14
)
default boolean ambientLighting()
{
return true;
}
}