mirror of
https://github.com/curioustorvald/Terrarum.git
synced 2026-03-10 13:51:53 +09:00
bayer-dithering shader revisited
This commit is contained in:
@@ -23,6 +23,13 @@ class Float16() {
|
||||
bits = Float16.fromFloat(fval)
|
||||
}
|
||||
|
||||
|
||||
operator fun times(other: Float) = fromFloat(this.toFloat() * other)
|
||||
operator fun times(other: Float16) = fromFloat(this.toFloat() * other.toFloat())
|
||||
|
||||
operator fun div(other: Float) = fromFloat(this.toFloat() / other)
|
||||
operator fun div(other: Float16) = fromFloat(this.toFloat() / other.toFloat())
|
||||
|
||||
// operators are stripped: you don't calculate from FP16; this is only for storing values //
|
||||
|
||||
companion object {
|
||||
|
||||
@@ -37,9 +37,9 @@ object ColorLimiterTest : ApplicationAdapter() {
|
||||
override fun create() {
|
||||
ShaderProgram.pedantic = false
|
||||
|
||||
shader4096 = ShaderProgram(Gdx.files.internal("assets/4096.vert"), Gdx.files.internal("assets/4096.frag"))
|
||||
shader4096 = ShaderProgram(Gdx.files.internal("assets/4096.vert"), Gdx.files.internal("assets/4096_bayer.frag"))
|
||||
shader4096.begin()
|
||||
//shader4096.setUniformMatrix("Bayer", Matrix4(floatArrayOf(0f,8f,2f,10f,12f,4f,14f,6f,3f,11f,1f,9f,15f,7f,13f,5f)))
|
||||
shader4096.setUniformf("monitorGamma", 2.2f)
|
||||
shader4096.end()
|
||||
|
||||
|
||||
@@ -57,13 +57,14 @@ object ColorLimiterTest : ApplicationAdapter() {
|
||||
|
||||
batch.inUse {
|
||||
batch.shader = shader4096
|
||||
//batch.shader.setUniformf("monitorGamma", 2.2f)
|
||||
|
||||
shader4096.setUniformf("rgbaCounts", 16f, 16f, 16f, 16f)
|
||||
batch.color = Color.WHITE
|
||||
batch.draw(img, 0f, 0f)
|
||||
|
||||
|
||||
batch.shader = null
|
||||
batch.color = Color.WHITE
|
||||
batch.draw(img, img.width.toFloat(), 0f)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -21,6 +21,8 @@ import java.util.*
|
||||
|
||||
//typealias RGB10 = Int
|
||||
|
||||
// NOTE: no Float16 on this thing: 67 kB of memory footage is totally acceptable
|
||||
|
||||
object LightmapRenderer {
|
||||
private val world: GameWorld = Terrarum.ingame!!.world
|
||||
|
||||
@@ -41,8 +43,6 @@ object LightmapRenderer {
|
||||
val LIGHTMAP_HEIGHT = Terrarum.ingame!!.ZOOM_MINIMUM.inv().times(Terrarum.HEIGHT)
|
||||
.div(FeaturesDrawer.TILE_SIZE).ceil() + overscan_open * 2 + 3
|
||||
|
||||
//data class Lux(var r: Float16, var g: Float16, var b: Float16, var uv: Float16)
|
||||
|
||||
/**
|
||||
* Float value, 1.0 for 1023
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user