Add LumaMap, LumaThreshold, BlockRepeat, alpha dithered ADither to orx-fx
This commit is contained in:
32
orx-fx/src/main/kotlin/color/LumaMap.kt
Normal file
32
orx-fx/src/main/kotlin/color/LumaMap.kt
Normal file
@@ -0,0 +1,32 @@
|
||||
package org.openrndr.extra.fx.color
|
||||
|
||||
import org.openrndr.color.ColorRGBa
|
||||
import org.openrndr.draw.Filter
|
||||
import org.openrndr.draw.Shader
|
||||
import org.openrndr.extra.fx.filterFragmentCode
|
||||
import org.openrndr.extra.parameters.BooleanParameter
|
||||
import org.openrndr.extra.parameters.ColorParameter
|
||||
import org.openrndr.extra.parameters.Description
|
||||
import org.openrndr.extra.parameters.DoubleParameter
|
||||
|
||||
@Description("Luma map ")
|
||||
class LumaMap : Filter(Shader.createFromCode(Filter.filterVertexCode, filterFragmentCode("color/luma-map.frag"))) {
|
||||
@ColorParameter("foreground color")
|
||||
var foreground: ColorRGBa by parameters
|
||||
|
||||
@ColorParameter("background color")
|
||||
var background: ColorRGBa by parameters
|
||||
|
||||
@DoubleParameter("background opacity", 0.0, 1.0)
|
||||
var backgroundOpacity: Double by parameters
|
||||
|
||||
@DoubleParameter("foreground opacity", 0.0, 1.0)
|
||||
var foregroundOpacity: Double by parameters
|
||||
|
||||
init {
|
||||
foreground = ColorRGBa.WHITE
|
||||
background = ColorRGBa.BLACK
|
||||
foregroundOpacity = 1.0
|
||||
backgroundOpacity = 1.0
|
||||
}
|
||||
}
|
||||
@@ -10,8 +10,7 @@ import org.openrndr.extra.parameters.Description
|
||||
import org.openrndr.extra.parameters.DoubleParameter
|
||||
|
||||
@Description("Luma threshold ")
|
||||
class Threshold : Filter(Shader.createFromCode(Filter.filterVertexCode, filterFragmentCode("color/luma-threshold.frag"))) {
|
||||
|
||||
class LumaThreshold : Filter(Shader.createFromCode(Filter.filterVertexCode, filterFragmentCode("color/luma-threshold.frag"))) {
|
||||
@DoubleParameter("threshold value", 0.0, 1.0)
|
||||
var threshold: Double by parameters
|
||||
|
||||
@@ -34,5 +33,4 @@ class Threshold : Filter(Shader.createFromCode(Filter.filterVertexCode, filterFr
|
||||
foregroundOpacity = 1.0
|
||||
backgroundOpacity = 1.0
|
||||
}
|
||||
|
||||
}
|
||||
44
orx-fx/src/main/kotlin/distort/BlockRepeat.kt
Normal file
44
orx-fx/src/main/kotlin/distort/BlockRepeat.kt
Normal file
@@ -0,0 +1,44 @@
|
||||
package org.openrndr.extra.fx.distort
|
||||
|
||||
import org.openrndr.draw.Filter
|
||||
import org.openrndr.draw.Shader
|
||||
import org.openrndr.extra.fx.filterFragmentCode
|
||||
import org.openrndr.extra.parameters.Description
|
||||
import org.openrndr.extra.parameters.DoubleParameter
|
||||
|
||||
@Description("Horizontal wave")
|
||||
class BlockRepeat : Filter(Shader.createFromCode(filterVertexCode, filterFragmentCode("distort/block-repeat.frag"))) {
|
||||
@DoubleParameter("block width", 0.0, 1.0, order = 0)
|
||||
var blockWidth: Double by parameters
|
||||
|
||||
@DoubleParameter("block height", 0.0, 1.0, order = 1)
|
||||
var blockHeight: Double by parameters
|
||||
|
||||
@DoubleParameter("block x-offset", -0.5, 0.5, order = 2)
|
||||
var blockOffsetX: Double by parameters
|
||||
|
||||
@DoubleParameter("block y-offset", -0.5, 0.5, order = 3)
|
||||
var blockOffsetY: Double by parameters
|
||||
|
||||
/**
|
||||
* Source scale, 0.0 is a 1:1 mapping, 1.0 fits entire source image in block
|
||||
*/
|
||||
@DoubleParameter("source scale", 0.0, 1.0, order = 4)
|
||||
var sourceScale: Double by parameters
|
||||
|
||||
@DoubleParameter("source x-offset", -0.5, 0.5, order = 5)
|
||||
var sourceOffsetX: Double by parameters
|
||||
|
||||
@DoubleParameter("source y-offset", -.5, .5, order = 6)
|
||||
var sourceOffsetY: Double by parameters
|
||||
|
||||
init {
|
||||
blockWidth = 0.25
|
||||
blockHeight = 0.25
|
||||
blockOffsetX = 0.0
|
||||
blockOffsetY = 0.0
|
||||
sourceOffsetX = 0.0
|
||||
sourceOffsetY = 0.0
|
||||
sourceScale = 0.0
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user