Improve InnerGlow filter
This commit is contained in:
@@ -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")
|
||||
|
||||
38
orx-jumpflood/src/demo/kotlin/DemoInnerGlow01.kt
Normal file
38
orx-jumpflood/src/demo/kotlin/DemoInnerGlow01.kt
Normal 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)
|
||||
}
|
||||
}
|
||||
}
|
||||
38
orx-jumpflood/src/demo/kotlin/DemoInnerGlow02.kt
Normal file
38
orx-jumpflood/src/demo/kotlin/DemoInnerGlow02.kt
Normal 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)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
Reference in New Issue
Block a user