diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/camera/FogManager.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/camera/FogManager.kt index e87cc0776..3a23af377 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/camera/FogManager.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/camera/FogManager.kt @@ -3,6 +3,7 @@ package de.bixilon.minosoft.gui.rendering.camera import de.bixilon.minosoft.data.text.ChatColors import de.bixilon.minosoft.data.text.RGBColor import de.bixilon.minosoft.gui.rendering.RenderWindow +import de.bixilon.minosoft.gui.rendering.sky.SkyRenderer class FogManager( private val renderWindow: RenderWindow, @@ -26,8 +27,15 @@ class FogManager( } private fun calculateFog() { - fogStart = renderWindow.connection.world.view.viewDistance * 16.0f - fogEnd = fogStart + 10.0f + if (!renderWindow.connection.profiles.rendering.fog.enabled) { + // ToDo: This is not improving performance + fogStart = Float.MAX_VALUE + fogEnd = Float.MAX_VALUE + } else { + fogStart = renderWindow.connection.world.view.viewDistance * 16.0f + fogEnd = fogStart + 10.0f + } + renderWindow[SkyRenderer]?.let { fogColor = it.baseColor } } diff --git a/src/main/java/de/bixilon/minosoft/gui/rendering/sky/SkyRenderer.kt b/src/main/java/de/bixilon/minosoft/gui/rendering/sky/SkyRenderer.kt index 4480313f9..a96575ab2 100644 --- a/src/main/java/de/bixilon/minosoft/gui/rendering/sky/SkyRenderer.kt +++ b/src/main/java/de/bixilon/minosoft/gui/rendering/sky/SkyRenderer.kt @@ -120,12 +120,18 @@ class SkyRenderer( val brightness = 1.0f val skyColor = RGBColor((baseColor.red * brightness).toInt(), (baseColor.green * brightness).toInt(), (baseColor.blue * brightness).toInt()) + baseColor = connection.world.getBiome(connection.player.positionInfo.blockPosition)?.skyColor ?: RenderConstants.DEFAULT_SKY_COLOR - for (shader in renderWindow.renderSystem.shaders) { - if (shader.uniforms.contains("uSkyColor")) { - shader.use().setRGBColor("uSkyColor", skyColor) + connection.world.dimension?.hasSkyLight?.let { + baseColor = if (it) { + connection.player.positionInfo.biome?.skyColor ?: RenderConstants.DEFAULT_SKY_COLOR + } else { + RenderConstants.BLACK_COLOR } - } + } ?: let { baseColor = RenderConstants.DEFAULT_SKY_COLOR } + + + skyboxShader.use().setRGBColor("uSkyColor", skyColor) } private fun drawSkybox() {