temporal dithering test

This commit is contained in:
minjaesong
2021-10-10 01:54:07 +09:00
parent 35b4b5cfd5
commit 036310921f
7 changed files with 28 additions and 12 deletions

View File

@@ -8,6 +8,7 @@ import com.badlogic.gdx.graphics.g2d.TextureRegion
import com.badlogic.gdx.graphics.glutils.FrameBuffer
import com.badlogic.gdx.graphics.glutils.ShaderProgram
import com.badlogic.gdx.utils.Disposable
import net.torvald.random.HQRNG
import net.torvald.terrarum.*
import net.torvald.terrarum.App.measureDebugTime
import net.torvald.terrarum.TerrarumAppConfiguration.TILE_SIZE
@@ -66,6 +67,8 @@ object IngameRenderer : Disposable {
inline fun isDither() = App.getConfigBoolean("fx_dither")
private val rng = HQRNG()
val shaderBlur: ShaderProgram
get() = if (isDither()) shaderBlurDither else shaderBlurRaw
val shaderRGBOnly: ShaderProgram
@@ -496,6 +499,7 @@ object IngameRenderer : Disposable {
blendMul(batch)
batch.shader = shaderRGBOnly
batch.shader.setUniformi("rnd", rng.nextInt(8192), rng.nextInt(8192))
batch.shader.setUniformi("u_pattern", 1)
batch.draw(lightTex,
xrem, yrem,
@@ -581,6 +585,7 @@ object IngameRenderer : Disposable {
blendMul(batch)
batch.shader = shaderAtoGrey
batch.shader.setUniformi("rnd", rng.nextInt(8192), rng.nextInt(8192))
batch.shader.setUniformi("u_pattern", 1)
batch.draw(lightTex,
xrem, yrem,
@@ -687,6 +692,7 @@ object IngameRenderer : Disposable {
shaderBlur.bind()
shaderBlur.setUniformMatrix("u_projTrans", camera.combined)
shaderBlur.setUniformi("rnd", rng.nextInt(8192), rng.nextInt(8192))
shaderBlur.setUniformi("u_pattern", 1)
shaderBlur.setUniformi("u_texture", 0)
shaderBlur.setUniformf("iResolution",

View File

@@ -9,6 +9,7 @@ import com.badlogic.gdx.graphics.g2d.SpriteBatch
import com.badlogic.gdx.graphics.g2d.TextureRegion
import com.badlogic.gdx.graphics.glutils.ShaderProgram
import com.badlogic.gdx.utils.Disposable
import net.torvald.random.HQRNG
import net.torvald.terrarum.App
import net.torvald.terrarum.CommonResourcePool
import net.torvald.terrarum.fillRect
@@ -39,6 +40,7 @@ object Toolkit : Disposable {
CommonResourcePool.loadAll()
}
private val rng = HQRNG()
override fun dispose() {
baloonTile.dispose()
@@ -114,6 +116,7 @@ object Toolkit : Disposable {
batch.shader = shaderBlur
shaderBlur.setUniformMatrix("u_projTrans", camera.combined)
shaderBlur.setUniformi("rnd", rng.nextInt(8192), rng.nextInt(8192))
shaderBlur.setUniformi("u_texture", 0)
shaderBlur.setUniformi("u_pattern", 1)
shaderBlur.setUniformf("iResolution", w.toFloat(), h.toFloat())

View File

@@ -37,6 +37,8 @@ internal object WeatherMixer : RNGConsumer {
override val RNG = HQRNG()
private val renderng = HQRNG()
var globalLightOverridden = false
var weatherList: HashMap<String, ArrayList<BaseModularWeather>>
@@ -186,6 +188,7 @@ internal object WeatherMixer : RNGConsumer {
it.shader = if (App.getConfigBoolean("fx_dither")) IngameRenderer.shaderBayer else null
if (App.getConfigBoolean("fx_dither")) {
it.shader.setUniformi("u_pattern", 1)
it.shader.setUniformi("rnd", renderng.nextInt(8192), renderng.nextInt(8192))
}
it.draw(skyboxTexture, 0f, -App.scr.halfhf, App.scr.wf, App.scr.hf * 2f) // because of how the linear filter works, we extend the image by two
}