fix useless sun matrix recalculation

This commit is contained in:
Bixilon 2021-10-19 12:37:10 +02:00
parent 1e3f25d3e2
commit b7a1dca2d6
No known key found for this signature in database
GPG Key ID: 5CAD791931B09AC4

View File

@ -46,7 +46,7 @@ class SkyRenderer(
private val skyboxMesh = SkyboxMesh(renderWindow)
private var skySunMesh = SimpleTextureMesh(renderWindow)
private lateinit var sunTexture: AbstractTexture
private var recalculateSunNextFrame: Boolean = true
private var sunMatrixUpToDate: Boolean = true
var baseColor = RenderConstants.DEFAULT_SKY_COLOR
@ -67,7 +67,7 @@ class SkyRenderer(
})
connection.registerEvent(CallbackEventInvoker.of<TimeChangeEvent> {
if (connection.world.time != it.time) {
recalculateSunNextFrame = true
sunMatrixUpToDate = true
}
})
sunTexture = renderWindow.textureManager.staticTextures.createTexture(SUN_TEXTURE_RESOURCE_LOCATION)
@ -81,6 +81,7 @@ class SkyRenderer(
projectionViewMatrix.rotate(timeAngle, Vec3d(0.0f, 0.0f, 1.0f))
}
skySunShader.use().setMat4("uSkyViewProjectionMatrix", Mat4(rotatedMatrix))
sunMatrixUpToDate = false
}
override fun postInit() {
@ -88,7 +89,7 @@ class SkyRenderer(
}
private fun drawSun() {
if (recalculateSunNextFrame) {
if (sunMatrixUpToDate) {
setSunMatrix(renderWindow.inputHandler.camera.projectionMatrix * renderWindow.inputHandler.camera.viewMatrix.toMat3().toMat4())
skySunMesh.unload()