mirror of
https://gitlab.bixilon.de/bixilon/minosoft.git
synced 2025-09-12 17:07:55 -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()
|
||||
tickStatusEffects()
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
@ -163,18 +163,18 @@ class Camera(
|
||||
inChunkSectionPosition = blockPosition.inChunkSectionPosition
|
||||
// recalculate sky color for current biome
|
||||
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()
|
||||
connection.fireEvent(FrustumChangeEvent(renderWindow, frustum))
|
||||
|
||||
connection.world.dimension?.hasSkyLight?.let {
|
||||
if (it) {
|
||||
skyRenderer.setSkyColor(currentBiome?.skyColor ?: RenderConstants.DEFAULT_SKY_COLOR)
|
||||
skyRenderer.baseColor = currentBiome?.skyColor ?: RenderConstants.DEFAULT_SKY_COLOR
|
||||
} 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))
|
||||
}
|
||||
|
||||
|
@ -14,7 +14,6 @@
|
||||
package de.bixilon.minosoft.gui.rendering.sky
|
||||
|
||||
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.gui.rendering.RenderConstants
|
||||
import de.bixilon.minosoft.gui.rendering.RenderWindow
|
||||
@ -50,8 +49,7 @@ class SkyRenderer(
|
||||
private var skySunMesh = SimpleTextureMesh()
|
||||
private lateinit var sunTexture: Texture
|
||||
private var recalculateSunNextFrame: Boolean = true
|
||||
private var bottomColor = ChatColors.BLACK
|
||||
private var topColor = RenderConstants.DEFAULT_SKY_COLOR
|
||||
var baseColor = RenderConstants.DEFAULT_SKY_COLOR
|
||||
|
||||
|
||||
override fun init() {
|
||||
@ -118,15 +116,17 @@ class SkyRenderer(
|
||||
skySunMesh.draw()
|
||||
}
|
||||
|
||||
fun setSkyColor(color: RGBColor) {
|
||||
topColor = color
|
||||
bottomColor = RGBColor(color.red * 8 / 9, color.green * 8 / 9, color.blue * 8 / 9)
|
||||
private fun checkSkyColor() {
|
||||
// ToDo: Calculate correct
|
||||
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 += {
|
||||
updateSkyColor()
|
||||
updateSkyColor(topColor, bottomColor)
|
||||
}
|
||||
}
|
||||
|
||||
private fun updateSkyColor() {
|
||||
private fun updateSkyColor(topColor: RGBColor, bottomColor: RGBColor) {
|
||||
skyboxShader.use()
|
||||
|
||||
skyboxShader.setRGBColor("uBottomColor", bottomColor)
|
||||
@ -134,6 +134,7 @@ class SkyRenderer(
|
||||
}
|
||||
|
||||
private fun drawSkybox() {
|
||||
checkSkyColor()
|
||||
skyboxShader.use()
|
||||
skyboxMesh.draw()
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user