mirror of
https://gitlab.bixilon.de/bixilon/minosoft.git
synced 2025-09-13 01:16:46 -04:00
rendering: wip sky color calculation
This commit is contained in:
parent
5fffa92e71
commit
1133d9dc9e
@ -118,6 +118,4 @@ abstract class LivingEntity(connection: PlayConnection, entityType: EntityType,
|
|||||||
super.realTick()
|
super.realTick()
|
||||||
tickStatusEffects()
|
tickStatusEffects()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -163,18 +163,18 @@ class Camera(
|
|||||||
inChunkSectionPosition = blockPosition.inChunkSectionPosition
|
inChunkSectionPosition = blockPosition.inChunkSectionPosition
|
||||||
// recalculate sky color for current biome
|
// recalculate sky color for current biome
|
||||||
val skyRenderer = renderWindow[SkyRenderer] ?: return
|
val skyRenderer = renderWindow[SkyRenderer] ?: return
|
||||||
skyRenderer.setSkyColor(connection.world.getBiome(blockPosition)?.skyColor ?: RenderConstants.DEFAULT_SKY_COLOR)
|
skyRenderer.baseColor = connection.world.getBiome(blockPosition)?.skyColor ?: RenderConstants.DEFAULT_SKY_COLOR
|
||||||
|
|
||||||
frustum.recalculate()
|
frustum.recalculate()
|
||||||
connection.fireEvent(FrustumChangeEvent(renderWindow, frustum))
|
connection.fireEvent(FrustumChangeEvent(renderWindow, frustum))
|
||||||
|
|
||||||
connection.world.dimension?.hasSkyLight?.let {
|
connection.world.dimension?.hasSkyLight?.let {
|
||||||
if (it) {
|
if (it) {
|
||||||
skyRenderer.setSkyColor(currentBiome?.skyColor ?: RenderConstants.DEFAULT_SKY_COLOR)
|
skyRenderer.baseColor = currentBiome?.skyColor ?: RenderConstants.DEFAULT_SKY_COLOR
|
||||||
} else {
|
} else {
|
||||||
skyRenderer.setSkyColor(RenderConstants.BLACK_COLOR)
|
skyRenderer.baseColor = RenderConstants.BLACK_COLOR
|
||||||
}
|
}
|
||||||
} ?: skyRenderer.setSkyColor(RenderConstants.DEFAULT_SKY_COLOR)
|
} ?: let { skyRenderer.baseColor = RenderConstants.DEFAULT_SKY_COLOR }
|
||||||
connection.fireEvent(CameraPositionChangeEvent(renderWindow, cameraPosition))
|
connection.fireEvent(CameraPositionChangeEvent(renderWindow, cameraPosition))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -14,7 +14,6 @@
|
|||||||
package de.bixilon.minosoft.gui.rendering.sky
|
package de.bixilon.minosoft.gui.rendering.sky
|
||||||
|
|
||||||
import de.bixilon.minosoft.data.mappings.ResourceLocation
|
import de.bixilon.minosoft.data.mappings.ResourceLocation
|
||||||
import de.bixilon.minosoft.data.text.ChatColors
|
|
||||||
import de.bixilon.minosoft.data.text.RGBColor
|
import de.bixilon.minosoft.data.text.RGBColor
|
||||||
import de.bixilon.minosoft.gui.rendering.RenderConstants
|
import de.bixilon.minosoft.gui.rendering.RenderConstants
|
||||||
import de.bixilon.minosoft.gui.rendering.RenderWindow
|
import de.bixilon.minosoft.gui.rendering.RenderWindow
|
||||||
@ -50,8 +49,7 @@ class SkyRenderer(
|
|||||||
private var skySunMesh = SimpleTextureMesh()
|
private var skySunMesh = SimpleTextureMesh()
|
||||||
private lateinit var sunTexture: Texture
|
private lateinit var sunTexture: Texture
|
||||||
private var recalculateSunNextFrame: Boolean = true
|
private var recalculateSunNextFrame: Boolean = true
|
||||||
private var bottomColor = ChatColors.BLACK
|
var baseColor = RenderConstants.DEFAULT_SKY_COLOR
|
||||||
private var topColor = RenderConstants.DEFAULT_SKY_COLOR
|
|
||||||
|
|
||||||
|
|
||||||
override fun init() {
|
override fun init() {
|
||||||
@ -118,15 +116,17 @@ class SkyRenderer(
|
|||||||
skySunMesh.draw()
|
skySunMesh.draw()
|
||||||
}
|
}
|
||||||
|
|
||||||
fun setSkyColor(color: RGBColor) {
|
private fun checkSkyColor() {
|
||||||
topColor = color
|
// ToDo: Calculate correct
|
||||||
bottomColor = RGBColor(color.red * 8 / 9, color.green * 8 / 9, color.blue * 8 / 9)
|
val brightness = 1.0f
|
||||||
|
val topColor = RGBColor((baseColor.red * brightness).toInt(), (baseColor.green * brightness).toInt(), (baseColor.blue * brightness).toInt())
|
||||||
|
val bottomColor = RGBColor(topColor.red * 8 / 9, topColor.green * 8 / 9, topColor.blue * 8 / 9)
|
||||||
renderWindow.queue += {
|
renderWindow.queue += {
|
||||||
updateSkyColor()
|
updateSkyColor(topColor, bottomColor)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun updateSkyColor() {
|
private fun updateSkyColor(topColor: RGBColor, bottomColor: RGBColor) {
|
||||||
skyboxShader.use()
|
skyboxShader.use()
|
||||||
|
|
||||||
skyboxShader.setRGBColor("uBottomColor", bottomColor)
|
skyboxShader.setRGBColor("uBottomColor", bottomColor)
|
||||||
@ -134,6 +134,7 @@ class SkyRenderer(
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun drawSkybox() {
|
private fun drawSkybox() {
|
||||||
|
checkSkyColor()
|
||||||
skyboxShader.use()
|
skyboxShader.use()
|
||||||
skyboxMesh.draw()
|
skyboxMesh.draw()
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user