Improve InnerGlow filter

This commit is contained in:
Edwin Jakobs
2020-06-01 10:35:49 +02:00
parent 5ec0b46814
commit 1c73331a79
4 changed files with 86 additions and 2 deletions

View File

@@ -12,6 +12,7 @@ dependencies {
implementation project(":orx-fx")
demoImplementation project(":orx-noise")
demoImplementation project(":orx-gui")
demoImplementation project(":orx-compositor")
demoImplementation("org.openrndr:openrndr-core:$openrndrVersion")
demoImplementation("org.openrndr:openrndr-extensions:$openrndrVersion")
demoImplementation("org.openrndr:openrndr-svg:$openrndrVersion")

View File

@@ -0,0 +1,38 @@
import org.openrndr.application
import org.openrndr.color.ColorRGBa
import org.openrndr.extensions.SingleScreenshot
import org.openrndr.extra.compositor.compose
import org.openrndr.extra.compositor.draw
import org.openrndr.extra.compositor.layer
import org.openrndr.extra.compositor.post
import org.openrndr.extra.fx.patterns.Checkers
import org.openrndr.extra.jumpfill.fx.InnerGlow
fun main() = application {
program {
if (System.getProperty("takeScreenshot") == "true") {
extend(SingleScreenshot()) {
this.outputFile = System.getProperty("screenshotPath")
}
}
val c = compose {
layer {
post(Checkers())
}
layer {
draw {
drawer.fill = ColorRGBa.PINK.shade(0.5)
drawer.stroke = null
drawer.circle(width / 2.0, height / 2.0, width * 0.35)
}
post(InnerGlow()) {
color = ColorRGBa(-1.0, -1.0, -1.0, 0.25);
width = 30.0
}
}
}
extend {
c.draw(drawer)
}
}
}

View File

@@ -0,0 +1,38 @@
import org.openrndr.application
import org.openrndr.color.ColorRGBa
import org.openrndr.extensions.SingleScreenshot
import org.openrndr.extra.compositor.compose
import org.openrndr.extra.compositor.draw
import org.openrndr.extra.compositor.layer
import org.openrndr.extra.compositor.post
import org.openrndr.extra.fx.patterns.Checkers
import org.openrndr.extra.jumpfill.fx.InnerGlow
fun main() = application {
program {
if (System.getProperty("takeScreenshot") == "true") {
extend(SingleScreenshot()) {
this.outputFile = System.getProperty("screenshotPath")
}
}
val c = compose {
layer {
post(Checkers())
}
layer {
draw {
drawer.fill = ColorRGBa.PINK.shade(0.5)
drawer.stroke = null
drawer.circle(width / 2.0, height / 2.0, width * 0.35)
}
post(InnerGlow()) {
color = ColorRGBa(1.0, 1.0, 1.0, 0.25);
width = 30.0
}
}
}
extend {
c.draw(drawer)
}
}
}

View File

@@ -27,6 +27,13 @@ void main() {
vec2 h = hash22(v_texCoord0)*10.0;
float e = exp(-( pow((d+h.x*noise)*1.0/width, shape)) );
o_color = original * imageOpacity + original.a* vec4(color.rgb, 1.0) * e * color.a;
o_color.a = max(o_color.a, 1.0);
vec3 norginal = original.a > 0.0 ? original.rgb / original.a : vec3(0.0);
vec3 add = norginal + color.rgb * e * color.a;
o_color = vec4(add, 1.0) * original.a;
// //o_color = original * imageOpacity + original.a* vec4(color.rgb, 1.0) * e * color.a;
// o_color.rgb = max(vec3(0.0), o_color.rgb);
// o_color.a = min(o_color.a, 1.0);
}