diff --git a/api/src/main/java/com/seibel/distanthorizons/api/enums/rendering/EDhApiFogDistance.java b/api/src/main/java/com/seibel/distanthorizons/api/enums/rendering/EDhApiFogDistance.java
deleted file mode 100644
index d7b585802..000000000
--- a/api/src/main/java/com/seibel/distanthorizons/api/enums/rendering/EDhApiFogDistance.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * This file is part of the Distant Horizons mod
- * licensed under the GNU LGPL v3 License.
- *
- * Copyright (C) 2020-2023 James Seibel
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as published by
- * the Free Software Foundation, version 3.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this program. If not, see .
- */
-
-package com.seibel.distanthorizons.api.enums.rendering;
-
-/**
- * NEAR,
- * FAR,
- * NEAR_AND_FAR
- *
- * @author James Seibel
- * @version 2022-6-2
- * @since API 1.1.0
- */
-@Deprecated
-public enum EDhApiFogDistance
-{
- // Reminder:
- // when adding items up the API minor version
- // when removing items up the API major version
-
- NEAR,
- FAR,
- NEAR_AND_FAR
-}
\ No newline at end of file
diff --git a/api/src/main/java/com/seibel/distanthorizons/api/interfaces/config/client/IDhApiFogConfig.java b/api/src/main/java/com/seibel/distanthorizons/api/interfaces/config/client/IDhApiFogConfig.java
index e976ef8ad..3303615b1 100644
--- a/api/src/main/java/com/seibel/distanthorizons/api/interfaces/config/client/IDhApiFogConfig.java
+++ b/api/src/main/java/com/seibel/distanthorizons/api/interfaces/config/client/IDhApiFogConfig.java
@@ -20,7 +20,6 @@
package com.seibel.distanthorizons.api.interfaces.config.client;
import com.seibel.distanthorizons.api.enums.rendering.EDhApiFogColorMode;
-import com.seibel.distanthorizons.api.enums.rendering.EDhApiFogDistance;
import com.seibel.distanthorizons.api.enums.rendering.EDhApiFogDrawMode;
import com.seibel.distanthorizons.api.interfaces.config.IDhApiConfigGroup;
import com.seibel.distanthorizons.api.interfaces.config.IDhApiConfigValue;
@@ -57,9 +56,6 @@ public interface IDhApiFogConfig extends IDhApiConfigGroup
// basic fog settings //
//====================//
- /** Defines at what distance fog is rendered on fake chunks. */
- IDhApiConfigValue distance();
-
/** Should be used to enable/disable fog rendering. */
IDhApiConfigValue drawMode();
diff --git a/core/src/main/java/com/seibel/distanthorizons/core/api/external/methods/config/client/DhApiFogConfig.java b/core/src/main/java/com/seibel/distanthorizons/core/api/external/methods/config/client/DhApiFogConfig.java
index 61a2d3d92..cc89c53de 100644
--- a/core/src/main/java/com/seibel/distanthorizons/core/api/external/methods/config/client/DhApiFogConfig.java
+++ b/core/src/main/java/com/seibel/distanthorizons/core/api/external/methods/config/client/DhApiFogConfig.java
@@ -20,7 +20,6 @@
package com.seibel.distanthorizons.core.api.external.methods.config.client;
import com.seibel.distanthorizons.api.enums.rendering.EDhApiFogColorMode;
-import com.seibel.distanthorizons.api.enums.rendering.EDhApiFogDistance;
import com.seibel.distanthorizons.api.enums.rendering.EDhApiFogDrawMode;
import com.seibel.distanthorizons.api.interfaces.config.IDhApiConfigValue;
import com.seibel.distanthorizons.api.interfaces.config.client.IDhApiFarFogConfig;
@@ -52,10 +51,6 @@ public class DhApiFogConfig implements IDhApiFogConfig
// basic fog settings //
//====================//
- @Override
- public IDhApiConfigValue distance()
- { return new DhApiConfigValue<>(Config.Client.Advanced.Graphics.Fog.distance); }
-
@Override
public IDhApiConfigValue drawMode()
{ return new DhApiConfigValue<>(Config.Client.Advanced.Graphics.Fog.drawMode); }
diff --git a/core/src/main/java/com/seibel/distanthorizons/core/config/Config.java b/core/src/main/java/com/seibel/distanthorizons/core/config/Config.java
index 2cf5dd26f..ec19ad4f0 100644
--- a/core/src/main/java/com/seibel/distanthorizons/core/config/Config.java
+++ b/core/src/main/java/com/seibel/distanthorizons/core/config/Config.java
@@ -250,12 +250,6 @@ public class Config
.setPerformance(EConfigEntryPerformance.VERY_LOW)
.build();
- public static ConfigEntry distance = new ConfigEntry.Builder()
- .set(EDhApiFogDistance.FAR)
- .comment("At what distance should Fog be drawn on the LODs?")
- .setPerformance(EConfigEntryPerformance.NONE)
- .build();
-
public static ConfigEntry colorMode = new ConfigEntry.Builder()
.set(EDhApiFogColorMode.USE_WORLD_FOG_COLOR)
.comment(""
diff --git a/core/src/main/java/com/seibel/distanthorizons/core/render/fog/LodFogConfig.java b/core/src/main/java/com/seibel/distanthorizons/core/render/fog/LodFogConfig.java
index 5bc86eb2e..be4adf73e 100644
--- a/core/src/main/java/com/seibel/distanthorizons/core/render/fog/LodFogConfig.java
+++ b/core/src/main/java/com/seibel/distanthorizons/core/render/fog/LodFogConfig.java
@@ -52,8 +52,6 @@ public class LodFogConfig
public final EDhApiHeightFogMode heightFogMode;
public final float heightFogHeight;
- final boolean drawNearFog;
-
// TODO: Move these out of here
public final int earthCurveRatio;
@@ -88,72 +86,55 @@ public class LodFogConfig
if (fogDrawMode != EDhApiFogDrawMode.FOG_DISABLED)
{
- EDhApiFogDistance fogDistance = Config.Client.Advanced.Graphics.Fog.distance.get();
- drawNearFog = (fogDistance == EDhApiFogDistance.NEAR || fogDistance == EDhApiFogDistance.NEAR_AND_FAR);
+ // fog should be drawn
- if (fogDistance == EDhApiFogDistance.FAR || fogDistance == EDhApiFogDistance.NEAR_AND_FAR)
+ farFogSetting = new FogSettings(
+ Config.Client.Advanced.Graphics.Fog.AdvancedFog.farFogStart.get(),
+ Config.Client.Advanced.Graphics.Fog.AdvancedFog.farFogEnd.get(),
+ Config.Client.Advanced.Graphics.Fog.AdvancedFog.farFogMin.get(),
+ Config.Client.Advanced.Graphics.Fog.AdvancedFog.farFogMax.get(),
+ Config.Client.Advanced.Graphics.Fog.AdvancedFog.farFogDensity.get(),
+ Config.Client.Advanced.Graphics.Fog.AdvancedFog.farFogFalloff.get()
+ );
+
+ heightFogMixMode = Config.Client.Advanced.Graphics.Fog.AdvancedFog.HeightFog.heightFogMixMode.get();
+ if (heightFogMixMode == EDhApiHeightFogMixMode.IGNORE_HEIGHT || heightFogMixMode == EDhApiHeightFogMixMode.BASIC)
{
- // far fog should be drawn
+ // basic fog mixing
- farFogSetting = new FogSettings(
- Config.Client.Advanced.Graphics.Fog.AdvancedFog.farFogStart.get(),
- Config.Client.Advanced.Graphics.Fog.AdvancedFog.farFogEnd.get(),
- Config.Client.Advanced.Graphics.Fog.AdvancedFog.farFogMin.get(),
- Config.Client.Advanced.Graphics.Fog.AdvancedFog.farFogMax.get(),
- Config.Client.Advanced.Graphics.Fog.AdvancedFog.farFogDensity.get(),
- Config.Client.Advanced.Graphics.Fog.AdvancedFog.farFogFalloff.get()
+ heightFogSetting = null;
+ heightFogMode = null;
+ heightFogHeight = 0.f;
+ }
+ else
+ {
+ // advanced fog mixing
+
+ heightFogSetting = new FogSettings(
+ Config.Client.Advanced.Graphics.Fog.AdvancedFog.HeightFog.heightFogDensity.get(),
+ Config.Client.Advanced.Graphics.Fog.AdvancedFog.HeightFog.heightFogEnd.get(),
+ Config.Client.Advanced.Graphics.Fog.AdvancedFog.HeightFog.heightFogMin.get(),
+ Config.Client.Advanced.Graphics.Fog.AdvancedFog.HeightFog.heightFogMax.get(),
+ Config.Client.Advanced.Graphics.Fog.AdvancedFog.HeightFog.heightFogDensity.get(),
+ Config.Client.Advanced.Graphics.Fog.AdvancedFog.HeightFog.heightFogFalloff.get()
);
- heightFogMixMode = Config.Client.Advanced.Graphics.Fog.AdvancedFog.HeightFog.heightFogMixMode.get();
- if (heightFogMixMode == EDhApiHeightFogMixMode.IGNORE_HEIGHT || heightFogMixMode == EDhApiHeightFogMixMode.BASIC)
+ heightFogMode = Config.Client.Advanced.Graphics.Fog.AdvancedFog.HeightFog.heightFogMode.get();
+
+ if (heightFogMode.basedOnCamera)
{
- // basic fog mixing
-
- heightFogSetting = null;
- heightFogMode = null;
heightFogHeight = 0.f;
}
else
{
- // advanced fog mixing
-
- heightFogSetting = new FogSettings(
- Config.Client.Advanced.Graphics.Fog.AdvancedFog.HeightFog.heightFogDensity.get(),
- Config.Client.Advanced.Graphics.Fog.AdvancedFog.HeightFog.heightFogEnd.get(),
- Config.Client.Advanced.Graphics.Fog.AdvancedFog.HeightFog.heightFogMin.get(),
- Config.Client.Advanced.Graphics.Fog.AdvancedFog.HeightFog.heightFogMax.get(),
- Config.Client.Advanced.Graphics.Fog.AdvancedFog.HeightFog.heightFogDensity.get(),
- Config.Client.Advanced.Graphics.Fog.AdvancedFog.HeightFog.heightFogFalloff.get()
- );
-
- heightFogMode = Config.Client.Advanced.Graphics.Fog.AdvancedFog.HeightFog.heightFogMode.get();
-
- if (heightFogMode.basedOnCamera)
- {
- heightFogHeight = 0.f;
- }
- else
- {
- heightFogHeight = Config.Client.Advanced.Graphics.Fog.AdvancedFog.HeightFog.heightFogBaseHeight.get().floatValue();
- }
+ heightFogHeight = Config.Client.Advanced.Graphics.Fog.AdvancedFog.HeightFog.heightFogBaseHeight.get().floatValue();
}
}
- else
- {
- // far fog should not be drawn
-
- farFogSetting = null;
- heightFogSetting = null;
- heightFogMode = null;
- heightFogMixMode = null;
- heightFogHeight = 0.f;
- }
}
else
{
// fog disabled
- drawNearFog = false;
farFogSetting = null;
heightFogMixMode = null;
heightFogMode = null;
@@ -205,7 +186,7 @@ public class LodFogConfig
"float calculateHeightFogDepth(float vertical, float realY) { return 0.0; } \n" +
"float mixFogThickness(float near, float far, float height) \n" +
"{ \n" +
- (drawNearFog ? "return 1.0-near;" : "return 0.0;") +
+ " return 0.0; \n" +
"} \n\n");
}
else
@@ -247,7 +228,7 @@ public class LodFogConfig
str.append("" +
"float mixFogThickness(float near, float far, float height) \n" +
"{ \n" +
- getMixFogLine(heightFogMixMode, drawNearFog) + "\n" +
+ getMixFogLine(heightFogMixMode) + "\n" +
"} \n");
}
}
@@ -354,7 +335,7 @@ public class LodFogConfig
* creates a line in the format
* " return max(1.0-near, far);"
*/
- private static String getMixFogLine(EDhApiHeightFogMixMode heightFogMode, boolean drawNearFog)
+ private static String getMixFogLine(EDhApiHeightFogMixMode heightFogMode)
{
String str = " return ";
@@ -362,65 +343,38 @@ public class LodFogConfig
{
case BASIC:
case IGNORE_HEIGHT:
- if (drawNearFog)
- str += "max(1.0-near, far);\n";
- else
str += "near * far;\n";
break;
case ADDITION:
- if (drawNearFog)
- str += "max(1.0-near, far + height);\n";
- else
str += "near * (far + height);\n";
break;
case MAX:
- if (drawNearFog)
- str += "max(1.0-near, max(far, height));\n";
- else
str += "near * max(far, height);\n";
break;
case INVERSE_MULTIPLY:
- if (drawNearFog)
- str += "max(1.0-near, 1.0 - (1.0-far)*(1.0-height));\n";
- else
str += "near * (1.0 - (1.0-far)*(1.0-height));\n";
break;
case MULTIPLY:
- if (drawNearFog)
- str += "max(1.0-near, far*height);\n";
- else
str += "near * far * height;\n";
break;
case LIMITED_ADDITION:
- if (drawNearFog)
- str += "max(1.0-near, far + max(far, height));\n";
- else
str += "near * (far + max(far, height));\n";
break;
case MULTIPLY_ADDITION:
- if (drawNearFog)
- str += "max(1.0-near, far + far*height);\n";
- else
str += "near * (far + far*height);\n";
break;
case INVERSE_MULTIPLY_ADDITION:
- if (drawNearFog)
- str += "max(1.0-near, far + 1.0 - (1.0-far)*(1.0-height));\n";
- else
str += "near * (far + 1.0 - (1.0-far)*(1.0-height));\n";
break;
case AVERAGE:
- if (drawNearFog)
- str += "max(1.0-near, far*0.5 + height*0.5);\n";
- else
str += "near * (far*0.5 + height*0.5);\n";
break;
@@ -449,7 +403,7 @@ public class LodFogConfig
return false;
LodFogConfig that = (LodFogConfig) o;
return Float.compare(that.heightFogHeight, heightFogHeight) == 0 &&
- drawNearFog == that.drawNearFog && Objects.equals(farFogSetting, that.farFogSetting) &&
+ Objects.equals(farFogSetting, that.farFogSetting) &&
Objects.equals(heightFogSetting, that.heightFogSetting) && heightFogMixMode == that.heightFogMixMode &&
heightFogMode == that.heightFogMode
// TODO: Move these out of here
@@ -460,7 +414,7 @@ public class LodFogConfig
@Override
public int hashCode()
{
- return Objects.hash(farFogSetting, heightFogSetting, heightFogMixMode, heightFogMode, heightFogHeight, drawNearFog, earthCurveRatio, noiseEnable, noiseSteps, noiseIntensity, noiseDropoff);
+ return Objects.hash(farFogSetting, heightFogSetting, heightFogMixMode, heightFogMode, heightFogHeight, earthCurveRatio, noiseEnable, noiseSteps, noiseIntensity, noiseDropoff);
}
}