Files
hydra/docs/funcs.md

4.5 KiB

Functions

Color

.contrast(amount)

  • amount :: float (default 1.6)

Larger amount value makes higher contrast.

.color( r, g, b )

  • r :: float
  • g :: float
  • b :: float

Colorize texture.

.colorama(amount)

  • amount :: float (default 0.005)

Shift HSV values.

.invert(amount)

  • amount :: float (default 1.0)

Invert color.

.luma( threshold, tolerance )

  • threshold :: float (default 0.5)
  • tolerance :: float (default 0.1)

.thresh( threshold, tolerance )

  • threshold :: float (default 0.5)
  • tolerance :: float (default 0.04)

Combine

.add( texture, amount )

  • texture
    • color :: vec4
    • src
    • shape
  • amount :: float (default 0.5)

Add textures.

.blend( texture, amount )

  • texture
    • color :: vec4
    • src
    • shape
  • amount :: float (default 0.5)

Blend textures.

.diff( texture )

  • texture
    • color :: vec4
    • src
    • shape

Return difference of textures.

.layer()

Overlay texture based on alpha value.

.mult( texture, amount )

  • texture
    • color :: vec4
    • src
    • shape
  • amount :: float (default 1.0)

Multiply images and blend with the texture by amount.


CombineCoord

.modulate( texture, amount )

  • texture
    • color :: vec4
    • src
    • shape
  • amount :: float (default 0.1)

Modulate texture. More about modulation at: https://lumen-app.com/guide/modulation/

.modulateHue( color, amount )

  • texture
    • color :: vec4
    • src
    • shape
  • amount :: float (default 1.0)

Changes coordinates based on hue of second input. Based on: https://www.shadertoy.com/view/XtcSWM

.modulateKaleid( nSides )

  • texture
    • color :: vec4
    • src
    • shape
  • nSides :: float (default 4.0)

.modulatePixelate( multiple, offset )

  • texture
    • color :: vec4
    • src
    • shape
  • multiple :: float (default 10.0)
  • offset :: float (default 3.0)

.modulateRotate( multiple, offset )

  • texture
    • color :: vec4
    • src
    • shape
  • multiple :: float (default 1.0)
  • offset :: float (default 0.0)

.modulateScale( multiple, offset )

  • texture
    • color :: vec4
    • src
    • shape
  • multiple :: float (default 1.0)
  • offset :: float (default 1.0)

.modulateScrollX( multiple, scrollX, speed )

  • texture
    • color :: vec4
    • src
    • shape
  • scrollX :: float (default 0.5)
  • speed :: float (default 0.0)

.modulateScrollY( multiple, scrollY, speed )

  • texture
    • color :: vec4
    • src
    • shape
  • scrollY :: float (default 0.5)
  • speed :: float (default 0.0)

Coord

.kaleid( nSides)

  • nSides :: float (default 4.0)

Kaleidoscope effect with nSides repetition.

.rotate( angle, speed )

  • angle :: float (default 10.0)
  • speed :: float (default 0.0)

Rotate texture.

.scale( size, xMult, yMult )

  • size :: float
  • xMult :: float (default 1.0)
  • yMult :: float (default 1.0)

Scale texture.

.pixelate( x, y )

  • pixelX :: float (default 20.0)
  • pixelY :: float (default 20.0)

Pixelate texture with pixelX segments and pixelY segments.

.scrollX( scrollX, speed )

  • scrollX :: float (default 0.5)
  • speed :: float (default 0.0)

.scrollY( scrollY, speed )

  • scrollY :: float (default 0.5)
  • speed :: float (default 0.0)

Src

osc( frequency, sync, offset )

  • frequency :: float (default 60.0)
  • sync :: float (default 0.1)
  • offset :: float (default 0.0)

render( output buffer)

  • default: o0

shape( sides, radius, smoothing)

  • sides :: int (default 3.0)
  • radius :: float (default 60.0)
  • smoothing :: float (default 0.01)

solid( r, g, b, a)

  • r :: float (default 0.0)
  • g :: float (default 0.0)
  • b :: float (default 0.0)
  • a :: float (default 1.0)

src( input )

  • input :: examples: o0, s1

.noise( scale, offset )

  • scale :: int (default 10.0)
  • offset :: float (default 0.1)

Generate Perlin noise.

.out( output buffer )

  • output buffer
    • osc: o0, o1, o2, o3
    • src: s0, s1, s2, s3

Animate

seq( array[], speed )

note: should be defined at top of file

seq = (arr = [], speed = 1) => ({time}) => (   
  arr[ Math.floor( time * speed % (arr.length) ) ]
)

example

osc(
  seq( [80, 100, 200, 50], 1 )
)
.out(o0)

Audio

.hide()

.setBins( int )

.setCutoff( float )

.setMax( float )

.show()


Util

random()

No Args

_noise()

No Args

luminance()

No Args

rgbToHsv()

No Args

hsvToRgb()

No Args