mirror of
https://github.com/curioustorvald/Terrarum.git
synced 2026-06-10 10:34:06 +09:00
this is a super jank solution but it worked (shrug)
This commit is contained in:
@@ -83,6 +83,7 @@ object IngameRenderer : Disposable {
|
|||||||
|
|
||||||
val shaderBlendGlow: ShaderProgram
|
val shaderBlendGlow: ShaderProgram
|
||||||
val shaderForActors: ShaderProgram
|
val shaderForActors: ShaderProgram
|
||||||
|
val shaderDemultiply: ShaderProgram
|
||||||
|
|
||||||
private val WIDTH = App.scr.width
|
private val WIDTH = App.scr.width
|
||||||
private val HEIGHT = App.scr.height
|
private val HEIGHT = App.scr.height
|
||||||
@@ -121,6 +122,7 @@ object IngameRenderer : Disposable {
|
|||||||
|
|
||||||
shaderForActors = App.loadShaderFromClasspath("shaders/default.vert", "shaders/actors.frag")
|
shaderForActors = App.loadShaderFromClasspath("shaders/default.vert", "shaders/actors.frag")
|
||||||
shaderBlendGlow = App.loadShaderFromClasspath("shaders/blendGlow.vert", "shaders/blendGlow.frag")
|
shaderBlendGlow = App.loadShaderFromClasspath("shaders/blendGlow.vert", "shaders/blendGlow.frag")
|
||||||
|
shaderDemultiply = App.loadShaderFromClasspath("shaders/blendGlow.vert", "shaders/demultiply.frag")
|
||||||
|
|
||||||
|
|
||||||
shaderKawaseDown = App.loadShaderFromClasspath("shaders/default.vert", "shaders/kawasedown.frag")
|
shaderKawaseDown = App.loadShaderFromClasspath("shaders/default.vert", "shaders/kawasedown.frag")
|
||||||
@@ -480,6 +482,7 @@ object IngameRenderer : Disposable {
|
|||||||
blendNormal(batch)
|
blendNormal(batch)
|
||||||
|
|
||||||
// draw world
|
// draw world
|
||||||
|
batch.shader = shaderDemultiply
|
||||||
batch.draw(fboRGB.colorBufferTexture, 0f, 0f)
|
batch.draw(fboRGB.colorBufferTexture, 0f, 0f)
|
||||||
batch.flush()
|
batch.flush()
|
||||||
|
|
||||||
@@ -870,6 +873,7 @@ object IngameRenderer : Disposable {
|
|||||||
|
|
||||||
shaderBlendGlow.dispose()
|
shaderBlendGlow.dispose()
|
||||||
shaderForActors.dispose()
|
shaderForActors.dispose()
|
||||||
|
shaderDemultiply.dispose()
|
||||||
|
|
||||||
try { fboRGBexport.dispose() }
|
try { fboRGBexport.dispose() }
|
||||||
catch (e: GdxRuntimeException) {}
|
catch (e: GdxRuntimeException) {}
|
||||||
|
|||||||
@@ -30,4 +30,5 @@ void main() {
|
|||||||
vec4 selvec = vec4(0.0, 0.0, 0.0, (alpha > bayerThreshold) ? 1.0 : 0.0);
|
vec4 selvec = vec4(0.0, 0.0, 0.0, (alpha > bayerThreshold) ? 1.0 : 0.0);
|
||||||
|
|
||||||
gl_FragColor = inColor * boolean.yyyx + selvec;
|
gl_FragColor = inColor * boolean.yyyx + selvec;
|
||||||
|
gl_FragColor = inColor;
|
||||||
}
|
}
|
||||||
17
src/shaders/demultiply.frag
Normal file
17
src/shaders/demultiply.frag
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
#version 130
|
||||||
|
#ifdef GL_ES
|
||||||
|
precision mediump float;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
varying vec4 v_color;
|
||||||
|
varying vec2 v_texCoords;
|
||||||
|
uniform sampler2D u_texture;
|
||||||
|
|
||||||
|
vec2 boolean = vec2(0.0, 1.0);
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
vec4 inColor = v_color * (texture2D(u_texture, v_texCoords));
|
||||||
|
|
||||||
|
vec4 divided = inColor / pow(inColor.aaaa, vec4(2.0));
|
||||||
|
gl_FragColor = divided * boolean.yyyx + inColor * boolean.xxxy;
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user