Image

With graphs, images can be processed in many different ways. Images can be loaded and analysed, blurred and blended, copied, tiled and transformed. The most versatile node, though creates the image of an ocean statistical spectrum, similar to one you know from Hybrido and RealWave. The information for this image can be used to create force fields and displace surfaces. RealFlow's "Image" nodes support all colour depths from 1 bit to 32 bit per channel.

Nodes

NameDescription
ArrayImageConcatThis node concatenates the inputs 'array0' and 'array1' into a single 'out' array.
ArrayImageConstantThis node returns a constant array.
ArrayImageFilterByMaskThis node returns the elements of the input 'array' at positions specified by the 'mask' parameter.
ArrayImageFindAllElementIndicesThis node returns all positions in the input 'array', which fit to the input 'element' values.
ArrayImageFindElementThis node returns the first position of appearance of the input 'element' within the input 'array'. If the array does not contain the element, -1 is returned.
ArrayImageInsertElementThis node inserts all elements from the 'element' input into the input 'array' at the position specified by 'position'. If 'position' is equal or lower than 0 then the elements are inserted at the beginning of the array. If 'position' is greater or equal than the inputs 'array' size, elements are appended at the end.
ArrayImageMixThis node creates an output array based on the two inputs 'array0' and 'array1' and the input mask. If the mask value equals 0 then the value of 'array0' is used, if the mask value is 1 the value of 'array1' is used.
ArrayImagePushElementThis node appends all the elements from the 'element' at the end of the input 'array'.
ArrayImageRemoveElementThis node removes all elements of the 'by_value' from the input 'array'. The returned mask has the same size as the input 'array' and is set to 0 at removed positions.
ArrayImageRemoveIndexThis node removes all input array positions by the 'index' input.
ArrayImageRemoveRepeatedElementsThis node removes all repetitions of elements from the input 'array'. The 'new_to_old' array can be used as an 'index' input for a GetArrayElement-Node to restore the original array. The returned mask has the same size as the input 'array' and is set to 0 at removed positions.
ArrayImageResizeThis node resizes the input 'array'. If the result is bigger than the input array, the last value is repeated accordingly.
ArrayImageReverseThis node reverses the order of the input 'array'.
ArrayImageSliceThis node returns an array containing the range of the input 'array' from the 'first' position with the given input 'size'.Thus, the output array is a subarray or slice of the input.
GetArrayImageElementThis node returns the elements of the input 'array' at positions specified by the 'index' parameter.
GetImageChannelReturns a greyscale image, containing the selected channel. This node creates a new image.
GetImageGlobalVariableThis node returns a reference to previously stored variables in global memory (using the SetGlobalVariable-Nodes).
GetImageInfoThis node returns information about the input 'image'.
GetImagePixelThis node returns the color of the image at the specified pixel.
GetImagePixelsThis node returns an array containing all the colors of the image.
ImageBlendBlend two images with the given factor. 0 result in image 0 and 1 result in image 1. Values in between interpolate the colors of both images. The alpha channel is not touched within this operation and remains the original alpha channel of image 0.
ImageCanvasResizeResizes the canvas of the actual image to the provided sizes. The canvas background is filled with the given color & alpha value.
ImageColorClampClamp color-range of image to 0..1. RealFlow allows colors to be negative and above 1. Thus, this function might be used, to clamp to a normalized color range.
ImageComposeWithVectorMapCreates an image, whereas each pixel is accessed by the velocity map (including negative values!). The vectors are encoded into the r & b color values. Can be used for velocity mapping or deforming an image by vectors and velocities.
ImageCompositionComposition of two input images. Operation is fulfilled on a per pixel-basis. Output size corresponds to input image bottom! The compositions are defined similar to the Adobe Standards (e.g., Photoshop).
ImageConvertConverts image to image with given color depth and number of channels. The alpha value is used for 4 channel output images - only if the input image contains no alpha channel. Finally, using the mapping option, a color space transformation can be succeded. Thus, negative values can be encoded into the image.
ImageCopyThis node duplicates the input value to the output. If you remove this node the output copy will not exist in the graph anymore.
ImageCreateCreates empty image with the given size, color depth, number of channels and given background color. In thecase of 4 channels, the alpha value is taken into account.
ImageCreateTilesCreates a tiled image with the given number of tiles in both directions. The size of the resulting image scales accordingly.
ImageDrawCircleThis node draws a circle with the provided position and color into the image.
ImageDrawQuadThis node draws a quad with the provided position and color into the image.
ImageGaussianBlurThis node returns a blurred version of the input 'image'.
ImageInvertInverts the colors of the input image. Each color (r, g, b, a) is tranformed according to the set invertion type to either (1-r, 1-g, 1-b, a) or (-r, -g, -b, a). Take note, that the data structure of images within realflow allows negative values. For example, the 'ImageStatisticalSpectrum'-Node creates an image containing negative values. In those cases, use the invertion type '-1*color' to get the expected results.
ImageMirrorMirrors image along chosen axis.
ImageOceanStatisticalSpectrumCreates an image containing a statistical spectrum similiar to the RealWave statistical spectrum.The input values are defined exactly as described there.The resulting image is 32Bit with 3 Channels. Keep note that the image may contains negative values in the area of -1..1. Thus,to use the result as an image, you may use the mapping function or the 'ImageConvert'-Node using the mapping functionality to map the color range to the area of 0..1.
ImageRotateRotates image according to chosen angle. Note: This node always perform a copy of the image, to tread non-quadratic images correctly.
ImageRotateFreeRotates image freely according to chosen angle (in degrees). 'Keep Size' defines, if the original resolution of the image is kept (the image is cropped) or if the image size is increased to the minimum size, which may contain all possible angles, thus, the whole image is kept. Finally, 'color' and 'alpha' describesthe values, which are used for empty areas in the final image. Note: This node always perform a copy of the image.
ImageScaleScales image bilinearly to given height and width. Take Note: For downscaling it may be beneficial, to apply a Gaussian filter before scaling.
ImageSubImageReturns a subimage of the input image. The subimage is define by the offset and the width. If the subimage exceeds the proportions of the image, the given color & alpha values are set.
ImageWaveEquationThis node executes the wave equation for the given input image. Thus, propagating waves can be simulated. For stability reasons, the simulation parameters must fulfill the following condition: v < h/dt, whereas h=1/imageResolution. An error is triggered, if the condition is breached. But in some cases, the simulation might explode even in cases, where the condition is fulfilled. In these cases, decrease the timestep and increase the number of steps per timestep.
SetArrayImageElementThis node returns the elements of the input 'array' at positions specified by the 'index' parameter.
SetImageChannelReplaces the chosen channel of the input image with a given greyscale image.
SetImageGlobalVariableThis node allows the user to create a reference or a copy of the input pin in global memory to be used within other RealFlow graph through the GetGlobalVariable nodes.
SetImagePixelThis node set the color of the image at the specified pixel.
SetImagePixelsThis node sets the Image given by the input color array.

 

ArrayImageConcat

This node concatenates the inputs 'array0' and 'array1' into a single 'out' array.

Inputs

NameTypesPassThroughDescription
array0Image
 Optional

out array

The array0

array1Image
 Optional

out array

The array1

Outputs

NameTypesPassThroughDescription
out arrayImage
 Optional

array0
array1

The out array

 

ArrayImageConstant

This node returns a constant array.

Inputs

NameTypesPassThroughDescription
constantImage 

The constant

sizeInteger (1) 

The size

Outputs

NameTypesPassThroughDescription
out arrayImage 

The out array

 

ArrayImageFilterByMask

This node returns the elements of the input 'array' at positions specified by the 'mask' parameter.

Inputs

NameTypesPassThroughDescription
arrayImage
 Optional

result

The array

maskBit 

The mask

Outputs

NameTypesPassThroughDescription
resultImage
 Optional

array

The result

 

ArrayImageFindAllElementIndices

This node returns all positions in the input 'array', which fit to the input 'element' values. .

Inputs

NameTypesPassThroughDescription
arrayImage 

The array

elementImage 

The value to find in the input array

Outputs

NameTypesPassThroughDescription
indexInteger 

The index

maskBit 

The mask

 

ArrayImageFindElement

This node is executed in parallel according to its input pins size.

This node returns the first position of appearance of the input 'element' within the input 'array'. If the array does not contain the element, -1 is returned.

Inputs

NameTypesPassThroughDescription
arrayImage 

The array

elementImage 

The value to find in the input array

start indexInteger 

The first index to search the element from

Outputs

NameTypesPassThroughDescription
indexInteger 

The index

 

ArrayImageInsertElement

This node inserts all elements from the 'element' input into the input 'array' at the position specified by 'position'. If 'position' is equal or lower than 0 then the elements are inserted at the beginning of the array. If 'position' is greater or equal than the inputs 'array' size, elements are appended at the end.

Inputs

NameTypesPassThroughDescription
arrayImage
 Optional

out array

The array

elementImage 

The value to insert

indexInteger (1) 

The position to insert the input element on

Outputs

NameTypesPassThroughDescription
out arrayImage
 Optional

array

The out array

 

ArrayImageMix

This node creates an output array based on the two inputs 'array0' and 'array1' and the input mask. If the mask value equals 0 then the value of 'array0' is used, if the mask value is 1 the value of 'array1' is used.

The size of the output is the same as mask's size.

Inputs

NameTypesPassThroughDescription
array0Image
 Optional

out array

The array0

array1Image
 Optional

out array

The array1

maskBit 

The mask

Outputs

NameTypesPassThroughDescription
out arrayImage
 Optional

array0
array1

The out array

 

ArrayImagePushElement

This node appends all the elements from the 'element' at the end of the input 'array'.

Inputs

NameTypesPassThroughDescription
arrayImage
 Optional

out array

The array

elementImage 

The value to append at the end

Outputs

NameTypesPassThroughDescription
out arrayImage
 Optional

array

The out array

 

ArrayImageRemoveElement

This node removes all elements of the 'by_value' from the input 'array'. The returned mask has the same size as the input 'array' and is set to 0 at removed positions.

Inputs

NameTypesPassThroughDescription
arrayImage
 Optional

out array

The array

elementImage 

The value to remove all its instances from the input array

Outputs

NameTypesPassThroughDescription
out arrayImage
 Optional

array

The out array

maskBit 

The mask

 

ArrayImageRemoveIndex

This node removes all input array positions by the 'index' input. .

Inputs

NameTypesPassThroughDescription
arrayImage
 Optional

out array

The array

indexInteger 

The positions of the input array to remove

Outputs

NameTypesPassThroughDescription
out arrayImage
 Optional

array

The out array

 

ArrayImageRemoveRepeatedElements

This node removes all repetitions of elements from the input 'array'. The 'new_to_old' array can be used as an 'index' input for a GetArrayElement-Node to restore the original array. The returned mask has the same size as the input 'array' and is set to 0 at removed positions.

Inputs

NameTypesPassThroughDescription
arrayImage
 Optional

out array

The array

Outputs

NameTypesPassThroughDescription
new to oldInteger 

The new to old

maskBit 

The mask

out arrayImage
 Optional

array

The out array

 

ArrayImageResize

This node resizes the input 'array'. If the result is bigger than the input array, the last value is repeated accordingly.

Inputs

NameTypesPassThroughDescription
arrayImage
 Optional

out array

The array

sizeInteger (1) 

The size

Outputs

NameTypesPassThroughDescription
out arrayImage
 Optional

array

The out array

 

ArrayImageReverse

This node reverses the order of the input 'array'.

Inputs

NameTypesPassThroughDescription
arrayImage
 Optional

out array

The array

Outputs

NameTypesPassThroughDescription
out arrayImage
 Optional

array

The out array

 

ArrayImageSlice

This node returns an array containing the range of the input 'array' from the 'first' position with the given input 'size'.Thus, the output array is a subarray or slice of the input.

Inputs

NameTypesPassThroughDescription
arrayImage
 Optional

out array

The array

firstInteger (1) 

The position of the element that will be the first of the output array

sizeInteger (1) 

The total number of elements to copy from the input array. If value is negative, all the elements from 'first' are copied to the output array

Outputs

NameTypesPassThroughDescription
out arrayImage
 Optional

array

The out array

 

GetArrayImageElement

This node returns the elements of the input 'array' at positions specified by the 'index' parameter.

Inputs

NameTypesPassThroughDescription
arrayImage 

The array

indexInteger 

The index

Outputs

NameTypesPassThroughDescription
elementImage 

The element

 

GetImageChannel

The algorithm to perform the operation of this node is multithreaded.

Returns a greyscale image, containing the selected channel. This node creates a new image.

Inputs

NameTypesPassThroughDescription
imageImage 

The image

channel
 List (1)

Red
Green
Blue
Alpha

 

The channel

Outputs

NameTypesPassThroughDescription
out imageImage 

The out image

 

GetImageGlobalVariable

This node returns a reference to previously stored variables in global memory (using the SetGlobalVariable-Nodes).

Inputs

NameTypesPassThroughDescription
nameString (1) 

The name

Outputs

NameTypesPassThroughDescription
outImage 

The out

 

GetImageInfo

This node returns information about the input 'image'.

Inputs

NameTypesPassThroughDescription
imageImage 

The image

Outputs

NameTypesPassThroughDescription
widthInteger 

The width

heightInteger 

The height

pix depthInteger 

The pix depth

bit depthInteger 

The bit depth

color planesInteger 

The number of channels of the image

gammaReal 

The gamma

 

GetImagePixel

This node returns the color of the image at the specified pixel.

The pixel must be inside the range of the image height and with. Otherwise the output 'color' is set to black.

Inputs

NameTypesPassThroughDescription
imageImage (1) 

The image

xInteger 

The x coordinate of the pixel. Starting from the left

yInteger 

The y coordinate of the pixel. Starting from the bottom

Outputs

NameTypesPassThroughDescription
colorColor4 

The color

 

GetImagePixels

This node returns an array containing all the colors of the image.

Pixel colors are sorted by rows. First pixel in the array is the bottom left pixel.

The output 'colors' array is a copy of the input data.

Inputs

NameTypesPassThroughDescription
imageImage 

The image

Outputs

NameTypesPassThroughDescription
colorsColor4 

The colors

 

ImageBlend

The algorithm to perform the operation of this node is multithreaded.

Blend two images with the given factor. 0 result in image 0 and 1 result in image 1. Values in between interpolate the colors of both images. The alpha channel is not touched within this operation and remains the original alpha channel of image 0.

Inputs

NameTypesPassThroughDescription
image 0Imageout image

The image 0

image 1Image 

The image 1

blend factorReal (1) 

The blend factor

Outputs

NameTypesPassThroughDescription
out imageImageimage 0

The out image

 

ImageCanvasResize

The algorithm to perform the operation of this node is multithreaded.

Resizes the canvas of the actual image to the provided sizes. The canvas background is filled with the given color & alpha value.

Inputs

NameTypesPassThroughDescription
imageImage 

The image

widthInteger (1) 

The width

heightInteger (1) 

The height

position
 List (1)

center
top left
top right
bottom left
bottom right

 

The position

colorColor4 (1) 

The color

alphaReal (1) 

The alpha

Outputs

NameTypesPassThroughDescription
out imageImage 

The out image

 

ImageColorClamp

The algorithm to perform the operation of this node is multithreaded.

Clamp color-range of image to 0..1. RealFlow allows colors to be negative and above 1. Thus, this function might be used, to clamp to a normalized color range.

Inputs

NameTypesPassThroughDescription
imageImage 

The image

Outputs

NameTypesPassThroughDescription
out imageImage 

The out image

 

ImageComposeWithVectorMap

The algorithm to perform the operation of this node is multithreaded.

Creates an image, whereas each pixel is accessed by the velocity map (including negative values!). The vectors are encoded into the r & b color values. Can be used for velocity mapping or deforming an image by vectors and velocities.

Inputs

NameTypesPassThroughDescription
imageImage 

The image

vector mapImageout image

The vector map

scale factorReal (1) 

The scale factor

Outputs

NameTypesPassThroughDescription
out imageImagevector map

The out image

 

ImageComposition

The algorithm to perform the operation of this node is multithreaded.

Composition of two input images. Operation is fulfilled on a per pixel-basis. Output size corresponds to input image bottom! The compositions are defined similar to the Adobe Standards (e.g., Photoshop).

Inputs

NameTypesPassThroughDescription
image topImage 

The image top

image bottomImageimage

The image bottom

operation
 List (1)

Normal
Addition
Difference Abs
Difference
Multiplication
Blend
Maximum
Minimum

 

The operation

Outputs

NameTypesPassThroughDescription
imagePassThroughimage bottom

The image

 

ImageConvert

The algorithm to perform the operation of this node is multithreaded.

Converts image to image with given color depth and number of channels. The alpha value is used for 4 channel output images - only if the input image contains no alpha channel. Finally, using the mapping option, a color space transformation can be succeded. Thus, negative values can be encoded into the image.

Inputs

NameTypesPassThroughDescription
imageImage 

The image

color depth
 List (1)

8 bits
16 bits
32 bits

 

The color depth

channels
 List (1)

1 Channel
3 Channels
4 Channels

 

The channels

alpha valueReal (1) 

The alpha value

mapping
 List (1)

None
-1..1 -> 0..1
0..1 -> -1..1

 

The mapping

Outputs

NameTypesPassThroughDescription
out imageImage 

The out image

 

ImageCopy

This node duplicates the input value to the output. If you remove this node the output copy will not exist in the graph anymore.

Inputs

NameTypesPassThroughDescription
inImage 

The value to duplicate

Outputs

NameTypesPassThroughDescription
copyImage 

A copy of the input

 

ImageCreate

The algorithm to perform the operation of this node is multithreaded.

Creates empty image with the given size, color depth, number of channels and given background color. In thecase of 4 channels, the alpha value is taken into account.

Inputs

NameTypesPassThroughDescription
size xInteger (1) 

The size x

size yInteger (1) 

The size y

color depth
 List (1)

8 bits
16 bits
32 bits

 

The color depth

channels
 List (1)

1 Channel
3 Channels
4 Channels

 

The channels

background colorColor4 (1) 

The background color

background alphaReal (1) 

The background alpha

Outputs

NameTypesPassThroughDescription
imageImage 

The image

 

ImageCreateTiles

The algorithm to perform the operation of this node is multithreaded.

Creates a tiled image with the given number of tiles in both directions. The size of the resulting image scales accordingly.

Inputs

NameTypesPassThroughDescription
imageImage 

The image

tiles xInteger (1) 

The tiles x

tiles yInteger (1) 

The tiles y

Outputs

NameTypesPassThroughDescription
out imageImage 

The out image

 

ImageDrawCircle

The algorithm to perform the operation of this node is multithreaded.

This node draws a circle with the provided position and color into the image.

Inputs

NameTypesPassThroughDescription
imageImage (1) 

The image

xInteger 

The x coordinate of the center of the circle. Starting from the left

yInteger 

The y coordinate of the center of the circle. Starting from the bottom

radiusInteger 

The radius of the circle in pixel

colorColor4 

The color

Outputs

NameTypesPassThroughDescription
out imageImage 

The out image

 

ImageDrawQuad

The algorithm to perform the operation of this node is multithreaded.

This node draws a quad with the provided position and color into the image.

Inputs

NameTypesPassThroughDescription
imageImage (1) 

The image

xInteger 

The x coordinate of the center of quad. Starting from the left

yInteger 

The y coordinate of the center of quad. Starting from the bottom

sizeInteger 

The side length of the quad in pixel

colorColor4 

The color

Outputs

NameTypesPassThroughDescription
out imageImage 

The out image

 

ImageGaussianBlur

The algorithm to perform the operation of this node is multithreaded.

This node returns a blurred version of the input 'image'.

The original 'image' remains the same after the node action, since 'out image' copies original data before performing the filter.

Inputs

NameTypesPassThroughDescription
imageImage 

The image

radiusInteger 

The radius

Outputs

NameTypesPassThroughDescription
out imageImage 

The out image

 

ImageInvert

The algorithm to perform the operation of this node is multithreaded.

Inverts the colors of the input image. Each color (r, g, b, a) is tranformed according to the set invertion type to either (1-r, 1-g, 1-b, a) or (-r, -g, -b, a). Take note, that the data structure of images within realflow allows negative values. For example, the 'ImageStatisticalSpectrum'-Node creates an image containing negative values. In those cases, use the invertion type '-1*color' to get the expected results.

Inputs

NameTypesPassThroughDescription
imageImage 

The image

invert type
 List

1-color
-1*color

 

The invert type

Outputs

NameTypesPassThroughDescription
out imageImage 

The out image

 

ImageMirror

The algorithm to perform the operation of this node is multithreaded.

Mirrors image along chosen axis.

A vertical axis means that pixels from the left side are transposed to the right, using a vertical symmetry axis.

A horizontal axis means that pixels from the top side are transposed to the bottom, using a horizontal symmetry axis.

Inputs

NameTypesPassThroughDescription
imageImage 

The image

axis
 List (1)

Horizontal
Vertical

 

The axis for mirroring the image

Outputs

NameTypesPassThroughDescription
out imageImage 

The out image

 

ImageOceanStatisticalSpectrum

The algorithm to perform the operation of this node is multithreaded.

Creates an image containing a statistical spectrum similiar to the RealWave statistical spectrum.The input values are defined exactly as described there.The resulting image is 32Bit with 3 Channels. Keep note that the image may contains negative values in the area of -1..1. Thus,to use the result as an image, you may use the mapping function or the 'ImageConvert'-Node using the mapping functionality to map the color range to the area of 0..1. 

The normalize switch enables normalization of the map according to the first frame (time=0) - thus, the map results in exactly the same height values like e.g. in the hybrido displacement. 

The white caps are define dy the jacobian of the spectrum. The resulting image is 32Bit with 1 channel. The intensity of the iwhite caps can be defined with the provided scale factor.

 

scale shouldn be greater than one for images. .

Inputs

NameTypesPassThroughDescription
absolute timeReal 

The absolute time

time factorReal (1) 

The time factor

scaleVector3 (1) 

The scale

normalizeBit (1) 

The normalize

map to 0-1Bit (1) 

The map to 0-1

resolution
 List (1)

64
128
256
512
1024
2048
4096
8192

 

The resolution

depthReal (1) 

The depth

dimensionReal (1) 

The dimension

wind speedReal (1) 

The wind speed

wind directionReal (1) 

The wind direction

wind alignmentReal (1) 

The wind alignment

min wave lengthReal (1) 

The min wave length

weight against windReal (1) 

The weight against wind

choppinessReal (1) 

The choppiness

seedInteger (1) 

The seed

white caps scaleReal (1) 

The white caps scale

repeat uReal (1) 

The repeat u

repeat vReal (1) 

The repeat v

Outputs

NameTypesPassThroughDescription
image spectrumImage 

The image spectrum

image white capsImage 

The image white caps

 

ImageRotate

The algorithm to perform the operation of this node is multithreaded.

Rotates image according to chosen angle. Note: This node always perform a copy of the image, to tread non-quadratic images correctly.

Inputs

NameTypesPassThroughDescription
imageImage 

The image

degree
 List (1)

90
180
270

 

The degree

Outputs

NameTypesPassThroughDescription
out imageImage 

The out image

 

ImageRotateFree

The algorithm to perform the operation of this node is multithreaded.

Rotates image freely according to chosen angle (in degrees). 'Keep Size' defines, if the original resolution of the image is kept (the image is cropped) or if the image size is increased to the minimum size, which may contain all possible angles, thus, the whole image is kept. Finally, 'color' and 'alpha' describesthe values, which are used for empty areas in the final image. Note: This node always perform a copy of the image.

Inputs

NameTypesPassThroughDescription
imageImage 

The image

degreeReal (1) 

The degree

keep image sizeBit (1) 

The keep image size

colorColor4 (1) 

The color

alphaReal (1) 

The alpha

Outputs

NameTypesPassThroughDescription
out imageImage 

The out image

 

ImageScale

The algorithm to perform the operation of this node is multithreaded.

Scales image bilinearly to given height and width. Take Note: For downscaling it may be beneficial, to apply a Gaussian filter before scaling.

Inputs

NameTypesPassThroughDescription
imageImage 

The image

widthInteger (1) 

The width

heightInteger (1) 

The height

smoothBit 

The smooth

Outputs

NameTypesPassThroughDescription
out imageImage 

The out image

 

ImageSubImage

The algorithm to perform the operation of this node is multithreaded.

Returns a subimage of the input image. The subimage is define by the offset and the width. If the subimage exceeds the proportions of the image, the given color & alpha values are set.

Inputs

NameTypesPassThroughDescription
imageImage 

The image

offs xInteger (1) 

The offs x

offs yInteger (1) 

The offs y

widthInteger (1) 

The width

heightInteger (1) 

The height

colorColor4 (1) 

The color

alphaReal (1) 

The alpha

Outputs

NameTypesPassThroughDescription
out imageImage 

The out image

 

ImageWaveEquation

The algorithm to perform the operation of this node is multithreaded.

This node executes the wave equation for the given input image. Thus, propagating waves can be simulated. For stability reasons, the simulation parameters must fulfill the following condition: v < h/dt, whereas h=1/imageResolution. An error is triggered, if the condition is breached. But in some cases, the simulation might explode even in cases, where the condition is fulfilled. In these cases, decrease the timestep and increase the number of steps per timestep. 

A flat surface is defined as RGB=(0.5f, 0, 0) - for a flat surface, you might start with an initial image filled up with that color. The height of the waves is stored after the propagation step in the green channel!To create waves, only paint into the green or red channel! For values below 0.5 negative waves are created and for values above 0.5 positive waves are created. To create reflective objects, paint them into the red channel with a value of 0.5.

Inputs

NameTypesPassThroughDescription
imageImage (1) 

Input Image, with 32Bit color depth and at least 3 channels! Otherwise, an error is triggered

dtReal (1) 

Simulation Timestep

velocityReal (1) 

Wave Velocity

dampingReal (1) 

Damping of wave height. Values from 0 (no Damping) to 1 (total Damping). Recommended are values between 0 and 0.1

boundaries
 List (1)

closed - negative
closed - positive
open/fade out
tiled

 

Simulation Boundaries: Closed (negative) - Waves are reflected negatively at the borders, Closed (positive) - Waves are reflected positively at the borders, Open (fade out) - Waves are not reflected at the borders, but faded out at the border, Tiled - Waves continue on the opposite side of the grid

no of stepsInteger (1) 

Number of simulation steps per execution (can be used to increase propagation speed)

Outputs

NameTypesPassThroughDescription
out imageImage 

The out image

 

SetArrayImageElement

This node returns the elements of the input 'array' at positions specified by the 'index' parameter.

Inputs

NameTypesPassThroughDescription
arrayImage
 Optional

result

The array

indexInteger 

The index

elementImage 

The element

Outputs

NameTypesPassThroughDescription
resultImage
 Optional

array

The result

 

SetImageChannel

The algorithm to perform the operation of this node is multithreaded.

Replaces the chosen channel of the input image with a given greyscale image.

Inputs

NameTypesPassThroughDescription
image inputImageimage

The image input

image channelImage 

The image channel

channel
 List (1)

Red
Green
Blue
Alpha

 

The channel

Outputs

NameTypesPassThroughDescription
imagePassThroughimage input

The image

 

SetImageGlobalVariable

This node allows the user to create a reference or a copy of the input pin in global memory to be used within other RealFlow graph through the GetGlobalVariable nodes.

Inputs

NameTypesPassThroughDescription
nameString (1) 

The name

inImagethrough

The in

store copyBit (1) 

The store copy

Outputs

NameTypesPassThroughDescription
throughPassThroughin

The value connected to the input

out copyImage 

The value copied in memory in case a copy has been performed. The same input value otherwise

 

SetImagePixel

This node set the color of the image at the specified pixel.

The pixel must be inside the range of the image height and with.

Inputs

NameTypesPassThroughDescription
imageImage (1) 

The image

xInteger 

The x coordinate of the pixel. Starting from the left

yInteger 

The y coordinate of the pixel. Starting from the bottom

colorColor4 

The color

Outputs

NameTypesPassThroughDescription
out imageImage 

The out image

 

SetImagePixels

The algorithm to perform the operation of this node is multithreaded.

This node sets the Image given by the input color array.

Inputs

NameTypesPassThroughDescription
colorsColor4 

The colors

imageImage 

The image

Outputs

NameTypesPassThroughDescription
out imageImage 

The out image