mirror of
https://github.com/curioustorvald/Terrarum.git
synced 2026-06-14 12:34:05 +09:00
will use 0.667f as a "kawase blur power constant"
This commit is contained in:
@@ -7,6 +7,8 @@ varying vec4 v_color;
|
|||||||
varying vec2 v_texCoords;
|
varying vec2 v_texCoords;
|
||||||
uniform sampler2D u_texture;
|
uniform sampler2D u_texture;
|
||||||
|
|
||||||
|
// recommended value: n / vec2(fbo_width, fbo_height) where n is something like {0.5, 1, 2, 4, ... }
|
||||||
|
// that, or simply 0.5, depending on how your uv coord works
|
||||||
uniform vec2 halfpixel = vec2(0.0, 0.0);
|
uniform vec2 halfpixel = vec2(0.0, 0.0);
|
||||||
|
|
||||||
vec2 twister = vec2(1.0, -1.0);
|
vec2 twister = vec2(1.0, -1.0);
|
||||||
|
|||||||
@@ -7,6 +7,8 @@ varying vec4 v_color;
|
|||||||
varying vec2 v_texCoords;
|
varying vec2 v_texCoords;
|
||||||
uniform sampler2D u_texture;
|
uniform sampler2D u_texture;
|
||||||
|
|
||||||
|
// recommended value: n / vec2(fbo_width, fbo_height) where n is something like {0.5, 1, 2, 4, ... }
|
||||||
|
// that, or simply 0.5, depending on how your uv coord works
|
||||||
uniform vec2 halfpixel = vec2(0.0, 0.0);
|
uniform vec2 halfpixel = vec2(0.0, 0.0);
|
||||||
|
|
||||||
vec2 doublex = vec2(2.0, 0.0);
|
vec2 doublex = vec2(2.0, 0.0);
|
||||||
|
|||||||
@@ -674,6 +674,8 @@ object IngameRenderer : Disposable {
|
|||||||
batch.projectionMatrix = camera.combined
|
batch.projectionMatrix = camera.combined
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private const val KAWASE_POWER = 0.667f
|
||||||
|
|
||||||
fun processKawaseBlur(outFbo: FrameBuffer) {
|
fun processKawaseBlur(outFbo: FrameBuffer) {
|
||||||
|
|
||||||
// initialise readBuffer with untreated lightmap
|
// initialise readBuffer with untreated lightmap
|
||||||
@@ -692,7 +694,7 @@ object IngameRenderer : Disposable {
|
|||||||
shaderKawaseDown.bind()
|
shaderKawaseDown.bind()
|
||||||
shaderKawaseDown.setUniformMatrix("u_projTrans", camera.combined)
|
shaderKawaseDown.setUniformMatrix("u_projTrans", camera.combined)
|
||||||
shaderKawaseDown.setUniformi("u_texture", 0)
|
shaderKawaseDown.setUniformi("u_texture", 0)
|
||||||
shaderKawaseDown.setUniformf("halfpixel", 1f / fboBlurHalf.width, 1f / fboBlurHalf.height)
|
shaderKawaseDown.setUniformf("halfpixel", KAWASE_POWER / fboBlurHalf.width, KAWASE_POWER / fboBlurHalf.height)
|
||||||
blurWriteQuad2.render(shaderKawaseDown, GL20.GL_TRIANGLES)
|
blurWriteQuad2.render(shaderKawaseDown, GL20.GL_TRIANGLES)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -702,7 +704,7 @@ object IngameRenderer : Disposable {
|
|||||||
shaderKawaseDown.bind()
|
shaderKawaseDown.bind()
|
||||||
shaderKawaseDown.setUniformMatrix("u_projTrans", camera.combined)
|
shaderKawaseDown.setUniformMatrix("u_projTrans", camera.combined)
|
||||||
shaderKawaseDown.setUniformi("u_texture", 0)
|
shaderKawaseDown.setUniformi("u_texture", 0)
|
||||||
shaderKawaseDown.setUniformf("halfpixel", 1f / fboBlurQuarter.width, 1f / fboBlurQuarter.height)
|
shaderKawaseDown.setUniformf("halfpixel", KAWASE_POWER / fboBlurQuarter.width, KAWASE_POWER / fboBlurQuarter.height)
|
||||||
blurWriteQuad4.render(shaderKawaseDown, GL20.GL_TRIANGLES)
|
blurWriteQuad4.render(shaderKawaseDown, GL20.GL_TRIANGLES)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -712,7 +714,7 @@ object IngameRenderer : Disposable {
|
|||||||
shaderKawaseUp.bind()
|
shaderKawaseUp.bind()
|
||||||
shaderKawaseUp.setUniformMatrix("u_projTrans", camera.combined)
|
shaderKawaseUp.setUniformMatrix("u_projTrans", camera.combined)
|
||||||
shaderKawaseUp.setUniformi("u_texture", 0)
|
shaderKawaseUp.setUniformi("u_texture", 0)
|
||||||
shaderKawaseUp.setUniformf("halfpixel", 1f / fboBlurQuarter.width, 1f / fboBlurQuarter.height)
|
shaderKawaseUp.setUniformf("halfpixel", KAWASE_POWER / fboBlurQuarter.width, KAWASE_POWER / fboBlurQuarter.height)
|
||||||
blurWriteQuad2.render(shaderKawaseUp, GL20.GL_TRIANGLES)
|
blurWriteQuad2.render(shaderKawaseUp, GL20.GL_TRIANGLES)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -722,7 +724,7 @@ object IngameRenderer : Disposable {
|
|||||||
shaderKawaseUp.bind()
|
shaderKawaseUp.bind()
|
||||||
shaderKawaseUp.setUniformMatrix("u_projTrans", camera.combined)
|
shaderKawaseUp.setUniformMatrix("u_projTrans", camera.combined)
|
||||||
shaderKawaseUp.setUniformi("u_texture", 0)
|
shaderKawaseUp.setUniformi("u_texture", 0)
|
||||||
shaderKawaseUp.setUniformf("halfpixel", 1f / fboBlurHalf.width, 1f / fboBlurHalf.height)
|
shaderKawaseUp.setUniformf("halfpixel", KAWASE_POWER / fboBlurHalf.width, KAWASE_POWER / fboBlurHalf.height)
|
||||||
blurWriteQuad.render(shaderKawaseUp, GL20.GL_TRIANGLES)
|
blurWriteQuad.render(shaderKawaseUp, GL20.GL_TRIANGLES)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user