Add LaserBlur

This commit is contained in:
Edwin Jakobs
2020-05-03 18:38:33 +02:00
parent bade284622
commit cee3e1fd14
5 changed files with 236 additions and 2 deletions

View File

@@ -0,0 +1,64 @@
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.blur.GaussianBloom
import org.openrndr.extra.fx.blur.LaserBlur
import org.openrndr.extra.gui.GUI
import org.openrndr.extra.gui.addTo
import org.openrndr.extra.noise.simplex
import org.openrndr.math.Vector2
import kotlin.math.absoluteValue
fun main() = application {
configure {
width = 1280
height = 720
}
program {
if (System.getProperty("takeScreenshot") == "true") {
extend(SingleScreenshot()) {
this.outputFile = System.getProperty("screenshotPath")
}
}
val gui = GUI()
val c = compose {
layer {
draw {
drawer.fill = null
drawer.strokeWeight = 4.0
drawer.translate(width/2.0, height/2.0)
drawer.rotate(seconds*45.0 + simplex(0, seconds)*45.0)
drawer.translate(-width/2.0, -height/2.0)
for (y in -1..1) {
for (x in -1..1) {
drawer.stroke = ColorRGBa.RED.toHSVa()
.shiftHue(0.0 + simplex(500+x+y,seconds)*5.0)
.scaleValue(0.5 + 0.5 * simplex(300+x+y,seconds*4.0).absoluteValue)
.toRGBa()
val r = simplex(400+x+y, seconds) * 150.0 + 150.0
drawer.circle(width / 2.0 + x * 100.0, height / 2.0 + y * 100.0, r)
}
}
}
post(LaserBlur()) {
center = Vector2(simplex(2, seconds*0.1), simplex(100, seconds*0.1))
aberration = simplex(5, seconds) * 0.01
radius = simplex(7, seconds)
}.addTo(gui)
post(GaussianBloom()).addTo(gui)
}
}
extend(gui) {
doubleBind = true
}
extend {
c.draw(drawer)
}
}
}