rendering: lighting: respect cullface

This commit is contained in:
Bixilon 2021-02-27 22:05:45 +01:00
parent 93c1e32a49
commit ad14b73306
No known key found for this signature in database
GPG Key ID: 5CAD791931B09AC4
2 changed files with 5 additions and 2 deletions

View File

@ -93,7 +93,7 @@ class BlockRenderer(data: JsonObject, parent: BlockModel) {
}
// ToDo: Lightning is determined by cullface attribute
element.render(tintColor, lightAccessor.getLightLevel(position + direction), textureMapping, modelMatrix, direction, mesh)
element.render(tintColor, position, lightAccessor, textureMapping, modelMatrix, direction, mesh)
}
}
}

View File

@ -17,6 +17,8 @@ import com.google.gson.JsonObject
import de.bixilon.minosoft.data.Axes
import de.bixilon.minosoft.data.Directions
import de.bixilon.minosoft.data.text.RGBColor
import de.bixilon.minosoft.data.world.BlockPosition
import de.bixilon.minosoft.data.world.light.LightAccessor
import de.bixilon.minosoft.gui.rendering.chunk.ChunkMesh
import de.bixilon.minosoft.gui.rendering.chunk.models.loading.BlockModel
import de.bixilon.minosoft.gui.rendering.chunk.models.loading.BlockModelElement
@ -50,7 +52,7 @@ class ElementRenderer(element: BlockModelElement, rotation: Vec3, uvLock: Boolea
}
fun render(tintColor: RGBColor?, lightLevel: Byte, textureMapping: MutableMap<String, Texture>, modelMatrix: Mat4, direction: Directions, mesh: ChunkMesh) {
fun render(tintColor: RGBColor?, position: BlockPosition, lightAccessor: LightAccessor, textureMapping: MutableMap<String, Texture>, modelMatrix: Mat4, direction: Directions, mesh: ChunkMesh) {
val realDirection = directionMapping[direction]!!
val positionTemplate = BlockModelElement.FACE_POSITION_MAP_TEMPLATE[realDirection.ordinal]
@ -59,6 +61,7 @@ class ElementRenderer(element: BlockModelElement, rotation: Vec3, uvLock: Boolea
// if (texture.isTransparent) {
// return // ToDo: force render transparent faces
// }
val lightLevel = lightAccessor.getLightLevel(position + face.cullFace)
val drawPositions = arrayOf(positions[positionTemplate[0]], positions[positionTemplate[1]], positions[positionTemplate[2]], positions[positionTemplate[3]])