//----------------------------//
ArtMatic 2 in 3 out components
//----------------------------//


3D z set
3D Axonometric
Inverse projections #
S-Space 2D transforms #
3D plane
3D sphere
3D ellipsoid
3D tube
3D cube
3D box
3D room
3D parametric face
3D parametric cube
3D parametric room
Perlin noise + derivative
Looper
Shaded plain color #
HLS color shade
RGB main gradient
Shaded main gradient #
Bezier main gradient
Indexed gradient
Y indexed gradient
RGB color gradient
RGB linear hues
RGB radial hues
RGB concentric hues
Max to gradient
RGB Pict/Movie
RGB Pict/Movie mirror
Pict/Movie Overlay
RGB Multi Perlin noise
RGB Random Fractal
RGB MultiFractal
Lunar rocks
Color Bubbles
String noise
Techno boxes
Color Pyramids
RGB grass
RGB foliage
RGB soft random hues
Packed XYA logic #
Packed Vector Maths #
Packed RGB Crossfade
Packed RGB Add
Packed RGB Max
Packed RGB Min
Packed Depth sort
Compiled tree (Subtree)

//----------------------------//

Introduction

These components perform a variety of functions depending on how they are used in the structure tree. Many of these components are RGB 2D color textures that maps a point into a color. Some of them are mixers. Some of these components translate 2D to 3D space or create 3D objects (spheres, cubes, rooms and the like)

NOTE: ArtMatic's internal RGB color space goes from (0,0,0) (black) to (8,8,8) (white). Qll color calculations are in floating point.

An essential in-depth discussion of function categories is found in the Getting Deeper chapter and is recommended reading for everyone.



//----------------------------//

23 3D z set

ArtMatic script function :z_set

parameters :
A : Z value (-16.0 : 16.0)
E9 options

discussion :
Use this component to create a third coordinate (whose value is determined by parameter A) that can be passed on to 3D functions or used as a controller value. The incoming x and y values are passed unchanged through the leftmost outputs. Parameter A's value is sent out the rightmost outlet. Animating this parameter is a great way to control solid textures such as 3D noise functions. Use this function at the top of the system if you want to use 33 components near the top of the tree but do not want to use the system's third global input (time) which is incremented with every frame.



23 3D Axonometric

ArtMatic script function :Axonometric

parameters :
A : Scale X (0.0 : 2.0)
B : Scale Y (0.0 : 2.0)

discussion :
Use this projection component to create a third coordinate whose value is related to the incoming x,y values. The scale parameters are multiplied by the x and y inputs before passing them out.
A 3D grid pattern will have the z axis mapped to the diagonal at 45 degree if connected to it. The outputs are calculated using the following formulas:
Left output = Ax
Middle output = By
Right output = (Ax + By)/2



23 Inverse projections #

ArtMatic script function :Inverse_projections

parameters :
A : Radius (0.500 : 8.0)

discussion :
Provides inverse mappings from 2D to 3D spaces. Inverse Sphere 360 is useful to create 3D coordinates for 360 degree environments maps or to create seamless 2D textures that can be projected on a sphere.

algorithms :



23 S-Space 2D transforms #

ArtMatic script function :SSpace

parameters :
A : Scale (0.0 : 32.0)
E9 options
B : Phase x (-50.0 : 50.0) E9 options
C : Phase y (-10.0 : 10.0) E9 options

discussion :
S-Space 2D transforms # Transforms a 2D space with non-linear operations and retun a S scale coefficient in third output z that can be used in DF modeling to fix the distance field. Usually just doing df/S will make distance estimate accurate enough.


DFPatterns maze using Polar log

algorithms :



23 3D plane

ArtMatic script function :plane

parameters :
A : Banking X (-1.571 : 1.571)
B : Plane Offset (-16.0 : 16.0)
C : Z slope (-3.142 : 3.142)

discussion :
Create a 3D plane on the canvas which can be banked and tilted and returns the 3D XYZ coordinates on the plane. Like all 3D object components, the area outside the object is mapped to infinity (which is painted with the depth cueing color). The components which follow the "plane" component provide the surface's texture. "Banking x" controls the horizontal tilt, "Plane offset" provides an altitude offset, and "z Slope" controls the forward/back tilt.

With all pseudo 3D graphic primitives (2D inputs) the projection into 2D space is done within ArtMatic and theses objects cannot be used as real 3D primitives in Voyager as they are already rendered into 2D canvas when Voyager uses them. They are useful for fast 3D effects within a 2D graphic context. The projection used to render the object in the ArtMatic canvas is a simple implicit perspective projection that can be manipulated with the 22 Scale and offset tile and the 33 translation tile. When 2D coordinates are needed there is a parametric version of the plane (face), the cube and the room. Example: Libraries/Graphic Design/pface and plane.artm



23 3D sphere

ArtMatic script function :sphere

parameters :
A : Offset x (-16.0 : 16.0)
B : Offset y (-16.0 : 16.0)
C : Offset z (-32.0 : 32.0)

discussion :
Renders a pseudo 3D sphere into ArtMatic canvas and returns the 3D XYZ coordinates of the sphere surface. The 'sphere' can be moved along the x, y and/or z axes. Regions outside the sphere are assigned infinity which makes them transparent for most ArtMatic functions. The 'Offset z' parameter controls the sphere offset along the z axis and can be used to scale the object.
See 3D plane above for more details on pseudo 3D objects.



23 3D ellipsoid

ArtMatic script function :ellipsoid

parameters :
A : Radius (0.125 : 24.0)
B : Vertical skew (0.0 : 8.0)
C : Offset z (-32.0 : 32.0)

discussion :
Renders a 3D ellipse on the canvas. Outputs are the XYZ coordinates on the surface of the ellipsoid.
See
3D plane for more details on pseudo 3D objects.



23 3D tube

ArtMatic script function :tube

parameters :
A : Offset x (-16.0 : 16.0)
B : Offset y (-16.0 : 16.0)
C : Radius (0.125 : 24.0)

discussion :
Renders a 3D tube whose radius and position can be modified. By default (Offset 0,0) the virtual camera is inside the tube. Cool tunnel effects can be done when animating the z coordinate.
See
3D plane for more details on pseudo 3D objects.

Example: Libraries/Animated Graphics/Techno Tunnel.artm



23 3D cube

ArtMatic script function :cube

parameters :
A : Angle xy (-6.283 : 6.283)
B : Angle zx (-6.283 : 6.283)
C : Offset z (-32.0 : 32.0)

discussion :
Renders a cube which can be rotated in space. Outputs are the 3D XYZ coordinates on the cube faces. Use the parametric version when 2D coordinates are needed. The 'Offset z' parameter controls the cube offset along the view axis and may be used to scale the object.
See
3D plane for more details on pseudo 3D objects.



23 3D box

ArtMatic script function :box

parameters :
A : Size y (0.250 : 12.566)
B : Size zx (0.250 : 12.566)
C : Offset z (-32.0 : 32.0)

discussion :
Renders a box and outputs the 3D XYZ coordinates of the box faces. The size y parameter controls the size of the box top. The size zx parameter controls the box length. The 'Offset z' parameter controls the box offset along the z axis and can be used to scale the object.
See
3D plane for more details on pseudo 3D objects.



23 3D room

ArtMatic script function :room

parameters :
A : Offset z (-16.0 : 16.0)
B : Angle oY (xz) (-6.283 : 6.283)
C : Room size (0.0 : 16.0)

discussion :
Renders a pseudo 3D room into ArtMatic canvas and outputs the 3D XYZ coordinates of the 'room'. The z offset controls the distance to the back of the room. The angle zx controls the angle with which the rear walls are joined. The room size controls the size of the virtual room. The room has a finite size. At the maximum offset, you can see the room from the outside.
See
3D plane for more details on pseudo 3D objects.



23 3D parametric face

ArtMatic script function :parametric_face

parameters :
A : Angle oY (xz) (-6.283 : 6.283)
B : Angle oX (yz) (-6.283 : 6.283)
C : Offset z (-32.0 : 32.0)
D : Height (-3.0 : 3.0)

discussion :
Render a single 3D face and returns its parametric 2D coordinates in (x,y) (parametric coordinates are attached to a face and will moves with the object). The z output will contain the 3D z coordinate. Use this object to perform 3D rotation of your movies and pictures. Regions outside the face are assigned infinity and should be transparent under most Artmatic functions. In RGB mode infinities values are shaded with the depth cue color. The 'Offset z' parameter controls the face offset along the view axis and can be used to scale the object. Unlike the
3D plane which is infinite in size the face has boundaries that are by defaut at +/- π. 'Height' can be set to non zero for other aspect ratios than square.
See 3D plane for more details on pseudo 3D objects.

Example: Libraries/Graphic Design/HumanDots Face.artm



23 3D parametric cube

ArtMatic script function :parametric_cube

parameters :
A : Angle oY (xz) (-6.283 : 6.283)
B : Angle oX (yz) (-6.283 : 6.283)
C : Offset z (-32.0 : 32.0)
D : Height (-3.0 : 3.0)

discussion :
Returns the parametric 2D coordinates in (x,y) of a pseudo 3D box. The z output will contain the 3D z coordinate. 'Angle oY' rotates the box around Y axis and 'Angle oX' rotates the box around X axis. 'Height' sets the aspect ratio of the box and you'll get a cube when at zero. Regions outside the box are assigned infinity. The 'Offset z' parameter controls the offset along the view axis and can be used to scale the object. In ArtMatic 8 engine the faces are properly reoriented.
See
3D plane for more details on pseudo 3D objects.

Example: Libraries/Graphic Design/pcube package.artm



23 3D parametric room

ArtMatic script function :parametric_room

parameters :
A : Angle oX (yz) (-6.283 : 6.283)
B : Angle oY (xz) (-6.283 : 6.283)
C : Room size (0.0 : 16.0)

discussion :
Returns the parametric 2D coordinates of a large room. The z output will contain the 3D z coordinate. Unlike the non-parametric version, this room has infinite walls. So, you can't leave the room.
See
3D plane for more details on pseudo 3D objects.



23 Perlin noise + derivative

ArtMatic script function :Perlin_noise_DV

parameters :
A : Amplitude (-8.0 : 8.0)
B : Phase (-32.0 : 32.0)
E9 options
C : Frequency (-8.0 : 32.0)

discussion :
This component sends out Perlin noise from the left output with the true partial derivative (fdx, fdy) sent out the middle and right outputs respectively.
The derivative can be used for improved distance estimation to the function's zero crossing. A good distance estimation provides the correct contour rendering and a better convergence for DFRM objects. To improve the distance estimation use F(v)/(length(0.1,dx,dy)) where length is the euclidian distance and dx,dy are the partial derivatives sent by this component in out 2 and 3.
Example : Libraries/Components demo/Perlin+dv DF contours.artm
Note that this improve the DF field mostly near the zeros. A true solution is mathematically much more complicated and not analytically possible with procedural functions like Perlin noise.

See also the 1D version at Perlin noise + derivative



23 Looper

ArtMatic script function :Looper

parameters :
A : Iterations (0 : 500) integer
B : Count Multiplier (0.0 : 4.0)

discussion :
Unlike the
Iterations component, the Looper component loops the component(s) connected to its inputs. 'Looper' will evalutate the transform (or transforms) that feed it recursively. After the first time through the loop, the component that directly feeds the looper receives the output from the previous iteration. This process is carried out for each successive iteration until the 'Iterations' count is achieved. When the option "Include Untransformed" is active iteration 0 returns the untransformed space. In mathematical terms if F(v) is the vector transform the 23 looper will compute F(F ...(F(F(v)))) 'Iterations' times.
Output 3 returns the iteration number multiplied by 'Count Multiplier.
In general you will use a 22 Compiled Tree to hold a more complex transform (Compiled trees made up of a few simple space transforms can result in staggeringly complex patterns) but complete Affine transforms like the one provided by 22 Maths tools # can be used directly as well.
As with iterative looped tree a memory component like 11 Memory Logic# or 11 Memory Add is usually needed to accumulate all iterations results. For Fractal transforms you may also use the 21 Orbit Analyzer # tool for various fractal rendering strategies.



23 Shaded plain color #

ArtMatic script function :Shaded_color

parameters :
A : Red (0.0 : 1.0)
B : Green (0.0 : 1.0)
C : Blue (0.0 : 1.0)
D : Contrast % (0.0 : 16.0)
E9 options

discussion :
Generate an RGB color defined by the Red, Green and Blue parameters and shaded by input y. When the algorithm is set to one of the Dual modes the left-input value (x) determines whether the output value is the target color (when x is positive) or its complement (when x is negative).

The right-input value (y) determines the brightness of the output color. Large values of y generate a shade of the color that approaches white. The "Contrast" parameter controls how much shading is applied to the resulting color.

The algorithms are the same as with the 13 Shaded plain color except the brightness shading is using the Y input as well.

algorithms :



23 HLS color shade

ArtMatic script function :HLS_colorshade

parameters :
A : Hue Rotate (0.0 : 6.283)
B : Saturation (0.0 : 1.0)
C : Crossfade (x<->y) (0.0 : 1.0)
D : Hue shift (x:y) (0.0 : 180.0) angle in degree

discussion :
HLS color shade coming soon



23 RGB main gradient

ArtMatic script function :Gradient

parameters :
A : Scale x (0.0 : 8.0)
B : Scale y (0.0 : 8.0)
C : Offset (-4.0 : 4.0)

discussion :
Create shaded RGB-color output using the colors of the current ArtMatic gradient. Input x sets the position in the gradient while y shades the resulting color.

Simple 3D shading and lighting effects can be easily created with this shader, especially when the second input is fed by the Derivative or 2D Derivative component.

"Scale x" & "Gradient Offset" determines the gradient mapping from input x to the gradient position. "Scale y" controls the amount of shading applied to the resulting color by scaling the incoming input y values.

Just as with the 21 Ax + By + C, you can use either a 2D space (a component with two outputs) as an input or two independent surfaces.

algorithms :



23 Shaded main gradient #

ArtMatic script function :Shaded_gradient

parameters :
A : Scale X (0.0 : 8.0)
B : Shading % (0.0 : 1.0)
C : Offset (-2.0 : 2.0)

discussion :
Create shaded RGB-color output using the colors of the current ArtMatic
Main gradient. The various algorithms gives a greater flexibility on how inputs are affecting the shading of the RGB main gradient. "Gradient Scale X" & "Gradient Offset" determines the gradient mapping from input x to the gradient position."Shading amount " sets how much shading has applied.

If even greater control on the shading is needed you may just use a 13 Main Gradient to generate the color and sets the shading maths yourself prior to multiply it with the color using the 43 w scale or w multiply. Furthermore the 13 version has more option on how the input is mapped to the gradient.
Parameters may change according to algorithm choice.

algorithms :



23 Bezier main gradient

ArtMatic script function :Bezier_main_gradient

parameters :
A : Input range (0.125 : 64.0)
B : Offset (-16.0 : 16.0)
C : Amplitude (0.250 : 64.0)

discussion :
This component is similar to the RGB Main Gradient component but it uses bezier curves rather than straight linear interpolation to map input values to the gradient colors. By using bezier curves to interpolate from the gradient to RGB values, the output values are ArtMatic Voyager friendly since each output curve has a continuous derivative.

As a consequence of the bezier interpolation RGB main gradient can be used to implement 3 parallel filters for surface sculpting. Essentially, this component separates the Red, Green and Blue content of the gradient and outputs them as three independent curves that can be used as different terrains filters that would be blended afterwards to create a rich a various topography.

Note: 13 Indexed Gradient and 13 Main Gradient also uses bezier interpolation. The Output range should be left at 1 for color shaders and the Input range can be used to control the input mapping to gradient. Example: individual RGB curves of the bezier gradient.

algorithms :



23 Indexed gradient

ArtMatic script function :Indexed_gradient

parameters :
A : Scale X (0.0 : 2.0)
B : Shading % (0.0 : 1.0)
C : Index (0 : 48) integer

discussion :
This component allows a gradient other than the ‘active' gradient to be used. The behavior is the same as Shaded Main Gradient BUT parameter C (Gradient Index) selects the gradient to use from the gradients available in the Gradient popup. A Gradient Index of 0 selects the first gradient in the popup and the maximum index selects the last gradient in the library.

Warning: When exporting systems for use in ArtMatic Voyager, this component may return different colors unless you make sure that the other application uses the same gradient library. Use the Gradient Editor to open or export gradient libraries. See
13 Indexed Gradient



23 Y indexed gradient

ArtMatic script function :Y_indexed_gradient

parameters :
A : Scale (0.0 : 2.0)
B : Gradient index mod % (0.0 : 1.0)

discussion :
This component is a color shader that maps the x-input to a color of the gradient selected by the y-input. This component is similar to RGB Main Gradient except that the y-input selects the gradient to be used.

Example: Gradient index mod.



The Y-Indexed Gradient component allows a different gradient to be used by each iteration of a looped system when the iteration number is connected to the y-input of Y-Indexed Gradient.

"Scale" is a scaling factor applied to the x-input value. Setting the parameter high makes the component very sensitive to value changes. The y-value picks the gradient from which the color is picked. The current gradient (the one visible above the canvas) is gradient 0. The second gradient in the palette is gradient 1.

"Gradient Index Mod %" determines the mapping of y-input to gradient number. When it is at 1, integer y-values (0, 1, 2, etc.) pick the color from the corresponding gradient in the library.



23 RGB color gradient

ArtMatic script function :RGBcolor_gradient

parameters :
A : Angle red (-3.142 : 3.142)
B : Angle green (-3.142 : 3.142)
C : Angle blue (-3.142 : 3.142)

discussion :
Returns a procedural RGB color defined by the sum of a red, a green & a blue ramp, each rotated by the corresponding angle parameters. When the angle are the same it will return grey shades.

The brightness intensifies as XY gets far from zero. The angle are defined in radians but you can type 90 then "d" to convert to degree. A wide variety of vibrant color and lighting effects can be achieved with this simple component.

The color shades obtained by setting the angles to 90 degrees 0 and -90 degrees



23 RGB linear hues

ArtMatic script function :RGB_linearhues

parameters :
A : Hue Rotation (-1.0 : 1.0)
B : Saturation (0.0 : 1.0)
C : Frequency (0.0 : 4.0)

discussion :
Returns a procedural RGB color where X input modulates the hue given by "Hue Rotation" . On the Y input axis when Y is negative then the inverse hue is used. It blends the Y+ and Y- colors around the Y=0 axis.



23 RGB radial hues

ArtMatic script function :RGB_radialhues

parameters :
A : Hue Rotation (-1.0 : 1.0)
B : Saturation (0.0 : 1.0)

discussion :
Returns a procedural RGB color by mapping X&Y to a classic color wheel (shown in the component's icon). The two inputs are treated as an x/y coordinate pair. The angular position of the input point (the value pair) determines the hue. Parameter A rotates the color wheel and thus changes the color which corresponds to a particular angle. The Saturation parameter determines the luminance (brightness) of the colors. This component is frequently used to create vibrantly colored surfaces. When this component is used as the color shader, it is as if the original undistorted space (the flat plane) is a sheet of paper with the color wheel printed on it, and the system's space distortions and remapping are really distortions and remapping of the sheet of paper with the color wheel on it. The more chaotic the distortions, the less like a color wheel the image will appear.



Example: RGB radial hues is a great color shader to use with fractal space transform as it will color the fractal according to the direction of the escape orbit.



23 RGB concentric hues

ArtMatic script function :RGB_concentrichues

parameters :
A : Hue Rotation (-1.0 : 1.0)
B : Saturation (0.0 : 1.0)
C : Frequency (0.0 : 4.0)

discussion :
Returns a procedural RGB color defined as a range of hues that vary with the distance from the origin. The luminosity decreases in inverse proportion to the point's distance from the origin (0,0). Parameter A defines the "base hue" used for shading, and Parameter B controls the color saturation. Parameter C determines the spacing of the hue variations. Luminosity becomes lower as the distance from zero increases (and then starts increasing again).



23 Max to gradient

ArtMatic script function :Max_to_gradient

parameters :
A : Amplitude X (0.0 : 2.0)
B : Amplitude Y (0.0 : 2.0)

discussion :
This component uses two incoming surfaces to build a color map using their comparaison. Colors are taken from the current
Main gradient.
The Amplitudes X and Y parameters scales the lower and upper part of the resulting gradient.
ArtMatic Voyager tip: This component is often used in ArtMatic Voyager systems to create colors for a surface based on the maximum values of the two input functions -- similar to the role served by the "21 Min-Max" component. With it, each "winner" will have its own color.



23 RGB Pict/Movie

ArtMatic script function :RGB_PictMovie

parameters :
A : Size (0.0 : 8.0)
B : Contrast (0.0 : 2.0)
C : Tiling (0.0 : 1.0)

discussion :
This is the true color version of the Pict/Movie component.
In ArtMatic Engine 8.5 all color image components have the
1.5 RGBA Picts Options set.

Script example: animate red & green levels over time
vec3 va = RGB_PictMovie(X,Y);
vec3 vout1 = (va.r*sin(T),va.g*sin(T+Pi),va.b);



23 RGB Pict/Movie mirror

ArtMatic script function :RGB_PictMovie_mirror

parameters :
A : Size (0.0 : 8.0)
B : Contrast (0.0 : 2.0)

discussion :
This variant of the color pict/movie component creates mirrored tiles of the picture when the picture is zoomed out.
In ArtMatic Engine 8.5 all color image components have the
1.5 RGBA Picts Options set.



23 Pict/Movie Overlay

ArtMatic script function :RGB_PictMovie_overlay

parameters :
A : Size (0.0 : 8.0)
B : Tile X (0.0 : 1.0)
C : Tile Y (0.0 : 1.0)
D : Input index (0 : 7) integer

discussion :
A variation of the basic pict/movie component that provides independent control of horizontal and vertical tiling. Infinity is generated beyond the picture boundaries. This makes it simple to overlay the output over a controllable background color.
In ArtMatic Engine 8.5 all color image components have the
1.5 RGBA Picts Options set.




23 RGB Multi Perlin noise

ArtMatic script function :RGB_MultiPerlin

parameters :
A : Amplitude (-10.0 : 10.0)
B : Octaves (1.0 : 32.0)
C : Frequency (0.0 : 16.0)
E9 options
D : Roughness (0.250 : 0.750)

discussion :
Sums three 2D Perlin noise functions for each RGB channel with doubled frequencies for each added octave (parameter B). In 'RGB perlin noise' mode the noise function which is normally balanced (outputs both negative and positive values) is scaled and offset so that only positive values are generated. When the Amplitude is zero, this component produces a uniform 50% (neutral) gray. Negative amplitude values invert the colors so that color-complements are generated. Amplitude can be seen as a saturation or color contrast control.
In E9 the component has 4 algorithms and the default mode provides an amplitude independant of frequency.

algorithms :



23 RGB Random Fractal

ArtMatic script function :RGB_Random_Fractal

parameters :
A : Color Saturation (0.0 : 1.0)
B : Phase (-32.0 : 32.0)
E9 options
C : Frequency (0.0 : 16.0) E9 options
D : Roughness (0.300 : 0.900)

discussion :
Randomly-generated 2D color texture which is sensitive to the setting of the Max. Iterations for Fractals preference. The amplitude controls the saturation. A great texture for vibrant color textures.

Roughness added in version 6.0.



23 RGB MultiFractal

ArtMatic script function :RGB_MultiFractal

parameters :
A : Amplitude (0.0 : 2.0)
B : Phase (-32.0 : 32.0)
E9 options
C : Frequency (0.0 : 16.0) E9 options

discussion :
This component is a 2D Multi-Fractal RGB noise component. This can be viewed as 3 independent Multi-Fractal functions for each of the RGB channels. The output values are scaled and offset so that only positive values are generated. When the amplitude is zero, the output is a uniform 50% gray. The Amplitude can be seen as a saturation or color contrast control.



23 Lunar rocks

ArtMatic script function :Lunar_rocks

parameters :
A : Amplitude (0.0 : 2.0)
B : Phase (-32.0 : 32.0)
C : Frequency (0.0 : 16.0)
D : Roughness (0.500 : 0.900)

discussion :
Lunar Rocks is a composite 2D color texture providing a color texture reminiscent of random rocky material. The underlying algorithm is similar to the 21 Lunar Rocks component. This primitive is useful for creating natural-looking mineral shading - especially when used in ArtMatic Voyager.



23 Color Bubbles

ArtMatic script function :Color_Bubbles

parameters :
A : Saturation (0.0 : 1.0)
B : Shade (0.0 : 1.0)
C : Frequency (0.0 : 8.0)

discussion :
Color the 2D space with randomly-sized and colored bubbles/facets using a voronoi tiling algorithm.



23 String noise

ArtMatic script function :String_noise

parameters :
A : Thickness (0.0 : 2.0)
B : Hues (0.0 : 1.0)
C : Frequency (0.062 : 8.0)

discussion :
Color the 2D space with random colored "strings".



23 Techno boxes

ArtMatic script function :Techno_boxes

parameters :
A : Amplitude (0.0 : 8.0)
B : Skew (0.0 : 2.0)
C : Frequency (0.0 : 16.0)
E9 options

discussion :
Techno boxes is a decorative RGB shader that generally used to provide surface texture. The frequency parameter was mislabelled prior E9 : It behave like a period. To keep the same behavior as before just use 1/f parameter option.



23 Color Pyramids

ArtMatic script function :Color_Pyramids

parameters :
A : Amplitude (0.0 : 8.0)
B : Phase (-16.0 : 16.0)
E9 options
C : Frequency (0.0 : 16.0) E9 options

discussion :
Color the space with randomly-sized and colored pyramids.



23 RGB grass

ArtMatic script function :RGB_grass

parameters :
A : Amplitude (0.0 : 1.0)
B : Skew angle (-3.142 : 3.142)
C : Frequency (1.0 : 32.0)

discussion :
RGB Grass is a 2D color texture which evokes - in an impressionistic way - grass seen from afar. This primitive was added primarily for use in ArtMatic Voyager where it is slope dependent (grass tends to appear where the terrain is flat). Within ArtMatic Pro, the "slope values" are derived from the global X input values (since they would be otherwise undefined).

Example: RGB grass as seen in ArtMatic Voyager.



23 RGB foliage

ArtMatic script function :RGB_foliage

parameters :
A : Contrast (0.0 : 4.0)
B : Hues Offset (0.0 : 1.0)
C : Frequency (0.0 : 32.0)

discussion :
RGB foliage is a 2D color texture that impressionistically evokes foliage as seen from afar. The hues offset parameter slides from summer green shades to autumn red shades.

Example: RGB foliage used to texture an ArtMatic Voyager scene.



23 RGB soft random hues

ArtMatic script function :RGB_randomhues

parameters :
A : Hue Rotation (-1.0 : 1.0)
B : Saturation (0.0 : 1.0)
C : Frequency (0.0 : 8.0)

discussion :
Color the incoming space with random modulations of a narrow range of hues. Naturalistic effects are achieved with a low value for the saturation parameter. At the minimum saturation, only a single hue is left. 'Hue rotation' determines the base color for the variations. "Saturation" determines the average brightness of the resulting colors. 'Frequency' determines the distortion density.



23 Packed XYA logic #

ArtMatic script function :Packed_XYA_logic

parameters :
A : Smoothness % (0.0 : 16.0)

discussion :
Useful in 2D geometry applications, this components return a point (x,y,z) based on the z comparison. Pass 2 packed 3D vectors (x,y,z) and (x2,y2,z2).
The returned point may be either of the input depending on the chosen algorithm. 'Smoothness' parameter will blend the transitions between 2D spaces if non zero. 23 Packed XYA logic can be used to create 2D IFS fractals and 2D graphics by splitting the space according to z values.
A 3 input version exist at
33 Packed XYA logic #

algorithms :



23 Packed Vector Maths #

ArtMatic script function :RGBMaths

parameters :
A : Amplitude x*y (0.0 : 2.0)
B : Offset y (0.0 : 2.0)
C : Blend % (0.0 : 1.0)

discussion :
Old Packed RGB multiply has become a set with the following function suited for both 3D vector and RGB calculation. Note: Infinity values in Y are treated as transparent. Theses functions are also available in packed output form in
21 S:P Maths

algorithms :



23 Packed RGB Crossfade

ArtMatic script function :RGB_Crossfade

parameters :
A : Blend % (0.0 : 1.0)

discussion :
Mix two RGB color streams into a single image. When the parameter slider is all the way to the left, only the left input's image is visible (with one caveat noted below). When the slider is to the right, only the right input's image is visible (with one caveat). When the parameter is between the maximum and minimum values, a mix of the two images is created.

There is a situation in which portions of both images are visible even though the Interpolate parameter is at its extremes. If either input stream has a 3D object, then any points that have the value infinity (which means that they are outside the object's boundaries) will be transparent regardless of Interpolate's value. This allows you to have opaque 3D objects which appear against a background created by another RGB color stream.

Usage note: The inputs should come from Pack components that are connected to components whose outputs are RGB colors. This component is used by the RGB 2 Channels system found in the structures menu.
Packed RGB crossfade is equivalent to
21 S:P Maths "Blend" algorithm when its passed 2 RGB packed stream.

You can call Crossfade in the script language implicitely using 'mix' :
vec3 va = color(0.8,0.1,0.6);
vec3 vb = RGB_PictMovie_mirror(X,Y);
vec3 vout = mix(va,vb,0.6); // parameter set to 0.6



23 Packed RGB Add

ArtMatic script function :RGB_Add

parameters :
A : Amplitude A (-2.0 : 2.0)
B : Amplitude B (-2.0 : 2.0)

discussion :
Mix two images (RGB color streams) by adding the values of the merged streams' pixels. The two parameters control the relative contribution of the two images to the final mix. Packed RGB add is equivalent to
21 S:P Maths "Add" algorithm when its passed 2 RGB packed stream. It can also be used to add two 3D vectors (x,y,z).



23 Packed RGB Max

ArtMatic script function :RGB_Max

parameters :
A : Amplitude A (0.0 : 2.0)
B : Amplitude B (0.0 : 2.0)
C : Feather % (0.0 : 1.0)

discussion :
Returns the maximum RGB value for each of the packed inputs. It needs to be fed by packed inputs. The 'Smoothness' parameter will smooth discontinuities if non zero.



23 Packed RGB Min

ArtMatic script function :RGB_Min

parameters :
A : Amplitude A (0.0 : 2.0)
B : Amplitude B (0.0 : 2.0)
C : Feather % (0.0 : 1.0)

discussion :
Returns the minimum RGB value for each of the packed inputs. The 'Smoothness' parameter will smooth discontinuities if non zero.



23 Packed Depth sort

ArtMatic script function :Packed_Depth_sort

parameters :
No parameters.

discussion :
This component mixes two 3D objects into a single set of 3D outputs. It is meant to be used with 3D coordinates and not with RGB colors.

Note: This component should always receive its input from Pack components (that receive their input from 3D object components). The algorithm is such that for each set of points received, the set with the lowest value of z wins; in other words, the coordinates closest to the viewer win.



23 Compiled tree (Subtree)

ArtMatic script function :Subtree_

parameters :
A : Scale (0.0 : 1.0)
B : Iterations (0 : 256) integer

discussion :
Compiled trees are groups of tiles that can be used in place of single tiles as a kind of macro or subroutine. 23 CTs are usually used to hold color 2D texturing function but can also be used to output 3 streams of packed datas.
Select a 23 tile and use "New compiled tree" to create a new CT from the selection (Tree menu->New compiled tree or type 'n' key).

With
E9 you may also create a 23 CT using ArtMatic script language (Tree menu : New CT as text ) and directly type the fonction you want.
To save a CT on disk to use the function elsewhere use Save compiled tree from the Tree menu.
You may also copy and paste the entire CT by using Copy Tile and Paste Tile from the Edit menu.
You may iterate the tree by "Iterations" number when the tree contains an Iterations tile to modify and accumulates various values. "Scale" provide an optionnal scaling of outputs and is set at 1 by default (no scaling).