Improve InnerGlow filter
This commit is contained in:
@@ -12,6 +12,7 @@ dependencies {
|
|||||||
implementation project(":orx-fx")
|
implementation project(":orx-fx")
|
||||||
demoImplementation project(":orx-noise")
|
demoImplementation project(":orx-noise")
|
||||||
demoImplementation project(":orx-gui")
|
demoImplementation project(":orx-gui")
|
||||||
|
demoImplementation project(":orx-compositor")
|
||||||
demoImplementation("org.openrndr:openrndr-core:$openrndrVersion")
|
demoImplementation("org.openrndr:openrndr-core:$openrndrVersion")
|
||||||
demoImplementation("org.openrndr:openrndr-extensions:$openrndrVersion")
|
demoImplementation("org.openrndr:openrndr-extensions:$openrndrVersion")
|
||||||
demoImplementation("org.openrndr:openrndr-svg:$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;
|
vec2 h = hash22(v_texCoord0)*10.0;
|
||||||
float e = exp(-( pow((d+h.x*noise)*1.0/width, shape)) );
|
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