Last updated on
Jul 13, 2023
- Substance 3D home
- User guide
- Glossary
- Getting started
- Interface
- Interface
- Customizing your workspace
- Home screen
- Main toolbar
- Preferences
- Explorer
- Graph view
- Library
- Properties
- 2D view
- 3D view
- Dependency manager
- Resources
- Resources
- Importing, linking and new resources
- Bitmap resource
- Vector graphics (SVG) resource
- 3D scene resource
- AxF (Appearance eXchange Format)
- Font resource
- Warnings from dependencies
- Substance graphs
- Substance graphs
- Substance graph key concepts
- Creating a Substance graph
- Exposing a parameter
- Graph parameters
- Inheritance in Substance graphs
- Output size
- Values in Substance graphs
- Publishing Substance 3D asset files (SBSAR)
- Exporting bitmaps
- Exporting PSD files
- Sample Substance graphs
- Warnings in Substance graphs
- Nodes reference for Substance graphs
- Nodes reference for Substance graphs
- Atomic nodes
- Node library
- Node library
- Texture generators
- Texture generators
- Noises
- Noises
- 3D Perlin noise
- 3D Perlin noise fractal
- 3D Ridged noise fractal
- 3D Simplex noise
- 3D Voronoi
- 3D Voronoi fractal
- 3D Worley noise
- Anisotropic noise
- Blue noise fast
- BnW spots 1
- BnW spots 2
- BnW spots 3
- Cells 1
- Cells 2
- Cells 3
- Cells 4
- Clouds 1
- Clouds 2
- Clouds 3
- Creased
- Crystal 1
- Crystal 2
- Directional noise 1
- Directional noise 2
- Directional noise 3
- Directional noise 4
- Directional scratches
- Dirt 1
- Dirt 2
- Dirt 3
- Dirt 4
- Dirt 5
- Dirt gradient
- Fluid
- Fractal sum 1
- Fractal sum 2
- Fractal sum 3
- Fractal sum 4
- Fractal sum base
- Fur 1
- Fur 2
- Fur 3
- Gaussian noise
- Gaussian spots 1
- Gaussian spots 2
- Grunge concrete
- Grunge Damas
- Grunge galvanic large
- Grunge galvanic small
- Grunge leaks
- Grunge leaky paint
- Grunge map 001
- Grunge map 002
- Grunge map 003
- Grunge map 004
- Grunge map 005
- Grunge map 006
- Grunge map 007
- Grunge map 008
- Grunge map 009
- Grunge map 010
- Grunge map 011
- Grunge map 012
- Grunge map 013
- Grunge map 014
- Grunge map 015
- Grunge rough dirty
- Grunge rust fine
- Grunge scratches dirty
- Grunge scratches fine
- Grunge scratches rough
- Grunge shavings
- Grunge splashes dusty
- Grunge spots
- Grunge spots dirty
- Liquid
- Messy fibers 1
- Messy fibers 2
- Messy fibers 3
- Microscope view
- Moisture noise
- Perlin noise
- Plasma
- Caustics
- Voronoi
- Voronoi fractal
- Waveform 1
- White noise
- White noise fast
- Patterns
- Patterns
- 3D linear gradient
- 3D volume mask
- Alveolus
- Arc pavement
- Brick 1
- Brick 2
- Brick generator
- Checker 1
- Cube 3D
- Cube 3D GBuffers
- Fibers 1
- Fibers 2
- Gaussian 1
- Gaussian 2
- Gradient axial
- Gradient axial reflected
- Gradient circular
- Gradient linear 1
- Gradient linear 2
- Gradient linear 3
- Gradient radial
- Height extrude
- Mesh 1
- Mesh 2
- Panorama shape
- Polygon 1
- Polygon 2
- Scratches generator
- Shape
- Shape extrude
- Shape mapper
- Shape splatter
- Shape splatter blend
- Shape splatter data extract
- Shape splatter to mask
- Splatter
- Splatter circular
- Star
- Starburst
- Stripes
- Tile generator
- Tile random
- Tile random 2
- Tile sampler
- Triangle grid
- Weave 1
- Weave 2
- Weave generator
- Filters
- Filters
- Adjustments
- Adjustments
- Apply color palette
- Auto levels
- Channel mixer
- Chrominance extract
- Clamp
- Color match
- Color to mask
- Contrast/Luminosity
- Convert to linear
- Convert to sRGB
- Create color palette (16)
- Grayscale conversion advanced
- Hald CLUT
- HDR range viewer
- Height map frequencies mapper
- Highpass
- Histogram compute
- Histogram equalize
- Histogram range
- Histogram render
- Histogram scan
- Non-uniform histogram scan
- Histogram select
- Histogram shift
- ID to mask grayscale
- Invert
- Lighting cancel high frequencies
- Lighting cancel low frequencies
- Luminance highpass
- Min max
- Modify color palette
- Pow
- Quantize color (Simple)
- Quantize color
- Quantize grayscale
- Replace color
- Replace color range
- Threshold
- View color palette
- Blending
- Blurs
- Channels
- Effects
- Effects
- 3D texture position
- 3D texture SDF
- 3D texture surface render
- 3D texture volume render
- Ambient occlusion (HBAO)
- Ambient occlusion (RTAO)
- Anisotropic Kuwahara color
- Anisotropic Kuwahara grayscale
- Bevel
- Bevel smooth
- Cross section
- Curvature
- Curvature smooth
- Curvature sobel
- Diffusion color
- Diffusion grayscale
- Diffusion UV
- Directional distance
- Edge detect
- Emboss with gloss
- Extend shape
- Flood fill
- Flood fill mapper
- Flood fill to Bbox size
- Flood Fill to gradient
- Flood Fill to grayscale/color
- Flood Fill to index
- Flood Fill to position
- Flood Fill to random color
- Flood Fill to random grayscale
- FXAA
- Glow
- Mosaic
- Multi directional warp
- Non-uniform directional warp
- Reaction diffusion fast
- RT irradiance
- RT shadow
- Shadows
- Shape drop shadow
- Shape glow
- Shape stroke
- Summed area table
- Swirl
- Uber emboss
- Vector morph
- Vector warp
- Normal map
- Tiling
- Transforms
- Material filters
- Material filters
- 1-click
- Effects (Material)
- Transforms (Material)
- Blending (Material)
- PBR utilities
- Scan processing
- Mesh-based generators
- Mesh-based generators
- Mask generators
- Weathering
- Utilities (Mesh-based generators)
- Spline & Path tools
- Spline & Path tools
- Working with Path & Spline tools
- Path tools
- Spline tools
- Spline tools
- Paths to Spline
- Point list
- Scatter on Spline color
- Scatter on Spline grayscale
- Spline 2D transform
- Spline (Cubic)
- Spline (Poly quadratic)
- Spline append
- Spline bridge (2 Splines)
- Spline bridge (List)
- Spline bridge mapper color
- Spline bridge mapper grayscale
- Spline circle
- Spline fill
- Spline flow mapper
- Spline mapper color
- Spline mapper grayscale
- Spline merge list
- Spline render
- Spline sample height
- Spline sample thickness
- Spline select
- Spline warp
- UV mapper color
- UV mapper grayscale
- 3D view (Library)
- 3D view (Library)
- HDRI tools
- Node library
- Substance function graphs
- Substance function graphs
- What is a Substance function graph?
- Create and edit a Substance function graph
- The Substance function graph
- Variables
- FX-maps
- FX-Maps
- How it works
- The Iterate node
- The Quadrant node
- Using Substance function graphs in FX-Maps
- Warnings in Substance function graphs
- Sample Substance function graphs
- Nodes reference for Substance function graphs
- MDL graphs
- Bakers
- Best practices
- Pipeline and project configuration
- Color management
- Package metadata
- Scripting
- Scripting
- Plugin basics
- Plugin search paths
- Plugins packages
- Plugin manager
- Python editor
- Accessing graphs and selections
- Nodes and properties
- Undo and redo
- Application callbacks
- Creating user interface elements
- Adding actions to the Explorer toolbar
- Using color management
- Using spot colors
- Logging
- Using threads
- Debugging plugins using Visual Studio Code
- Porting previous plugins
- Packaging plugins
- Scripting API reference
- Technical issues
- Release notes
Function Nodes Overview
This page provides a full overview of all function nodes and explains color coding used for Function Data Types.You can click through to more detailed pages with further explanations.
These function nodes are accessible by right-clicking in the graph function editor, and choosing Element, by pressing Spacebar or Tab in a function, or through the Functions section of the Library.
Color Coding
Function Nodes and their Link wires are Color Coded according to the following scheme:
Float Colors
Float (1)
Lime Green
Float2
Flat green
Float3
Light Blue
Float4
Flat Blue
Integer Colors
Integer(1)
Flat Yellow
Integer2
Warm Yellow
Integer3
Orange
Integer4
Flat Red
Other Colors
Boolean
White
String
Lila
Node List
Element | Type | Input | Output | Description |
---|---|---|---|---|
Constant | Float | - | Float | Defines a constant floating value, eg 0.1 |
Float2 | - | Float2 | Defines a constant vector of 2 floating values, eg (0.1, 0.2) | |
Float3 | - | Float3 | Defines a constant vector of 3 floating values, eg (0.1, 0.2, 0.3) | |
Float4 | - | Float4 | Defines a constant vector of 4 floating values, eg (0.1, 0.2, 0.3, 0.4) | |
Integer | - | Integer | Defines a constant integer value, eg 1 | |
Integer2 | - | Integer2 | Defines a constant vector of 2 integer values, eg (1, 2) | |
Integer3 | - | Integer3 | Defines a constant vector of 3 integer values, eg (1, 2, 3) | |
Integer4 | - | Integer4 | Defines a constant vector of 4 integer values, eg (1, 2, 3 ,4) | |
Boolean | - | Boolean | Defines a constant boolean value, eg True, or False | |
String | - | String | Defines a constant String value, eg "Substance" | |
Vector | Vector Float2 | Float1 | Float 2 | Casts 2 floating values in a vector with 2 coordinates |
Vector Float3 | Float1 / Float2 | Float 3 | Casts 2 floating values in a vector with 3 coordinates | |
Vector Float4 | Float1 / 2 / 3 | Float 4 | Casts 2 floating values in a vector with 4 coordinates | |
Swizzle Float1 | Vector Float | Float1 | Extracts a floating coordinate from a vector | |
Swizzle Float2 | Vector Float | Float2 | Extracts 2 floating coordinates from a vector | |
Swizzle Float3 | Vector Float | Float3 | Extracts 3 floating coordinates from a vector | |
Swizzle Float4 | Vector Float | Float4 | Extracts 4 floating coordinates from a vector | |
Vector Integer2 | Integer2 | Vector Integer2 | Casts 2 integer values in a vector with 2 coordinates | |
Vector Integer3 | Integer3 | Integer3 | Casts 2 integer values in a vector with 3 coordinates | |
Vector Integer4 | Integer4 | Integer4 | Casts 2 integer values in a vector with 4 coordinates | |
Swizzle Integer1 | Vector Integer | Integer1 | Extracts an integer coordinate from a vector | |
Swizzle Integer2 | Vector Integer | Integer2 | Extracts 2 integer coordinates from a vector | |
Swizzle Integer3 | Vector Integer | Integer3 | Extracts 3 integer coordinates from a vector | |
Swizzle Integer4 | Vector Integer | Integer4 | Extracts 4 integer coordinates from a vector | |
Variables | Set | any | input type | Sets a variable |
Get Integer1 | - | Integer1 | Get a function or graph Integer value input | |
Get Integer2 | - | Integer2 | Get a function or graph Integer2 value input | |
Get Integer3 | - | Integer3 | Get a function or graph Integer3 value input | |
Get Integer4 | - | Integer4 | Get a function or graph Integer4 value input | |
Get Float1 | - | Float1 | Get a function or graph floating value input | |
Get Float2 | - | Float2 | Get a function or graph Float2 value input | |
Get Float3 | - | Float3 | Get a function or graph Float3 value input | |
Get Float4 | - | Float4 | Get a function or graph Float4 value input | |
Get Boolean | - | Boolean | Get a function or graph boolean value input | |
Samplers | Sample Grey | Vector Float2 | Float4 | Returns the greyscale value of an input image at the given UV coordinates (float2) |
Sample Color | Vector Float2 | Float4 | Returns the color value of an input image at the given UV coordinates (float2) | |
Cast | To Float | Integer1 | Float1 | Converts an integer in a float |
To Float2 | Integer2 | Float2 | Converts an Integer2 in a Float2 | |
To Float3 | Integer3 | Float3 | Converts an Integer3 in a Float3 | |
To Float4 | Integer4 | Float4 | Converts an Integer4 in a Float4 | |
To Integer | Float1 | Integer1 | Converts a Float in an Integer | |
To Integer2 | Float2 | Integer2 | Converts a Float2 in an Integer2 | |
To Integer3 | Float3 | Integer3 | Converts a Float3 in an Integer3 | |
To Integer4 | Float4 | Integer4 | Converts a Float4 in an Integer4 | |
Operator | Add | Vector Float / Integer | Type of a & b | Adds 2 values of the same type: a + b |
Subtraction | Vector Float / Integer | Type of a & b | Subtracts 2 values of the same type: a - b | |
Multiplication | Vector Float / Integer | Type of a & b | Multiplies 2 values of the same type: a * b | |
Scalar Multiplication | Vector Float | Type of a | Multiplies a value by a floating value: a * scalar | |
Division | Float1 / Integer1 | Type of a & b | Divides 2 values of the same type: a / b | |
Negation | Float1 / Integer1 | Type of a | Returns the negation value: -a | |
Modulo | Float1 / Integer1 | Type of a | Returns the modulo value: mod(a, divisor) | |
Dot Product | Vector Float | Type of a & b | Returns the dot product of 2 values of the same type: dot(a, b) | |
Logical | And | Boolean | Boolean | Returns true if the 2 boolean entries are true. Returns false if one the entry is false. |
Or | Boolean | Boolean | Returns true if 1 of the boolean entries is true. Returns false if they are both false. | |
Not | Boolean | Boolean | Returns the negation boolean of the entry: !a | |
Comparison | Equal | Float1 / Integer1 | Boolean | Returns true if a = b |
Not Equal | Float1 / Integer1 | Boolean | Returns true if a != b | |
Greater | Float1 / Integer1 | Boolean | Returns true if a > b | |
Greater or Equal | Float1 / Integer1 | Boolean | Returns true if a >= b | |
Lower | Float1 / Integer1 | Boolean | Returns true if a < b | |
Lower or Equal | Float1 / Integer1 | Boolean | Returns true if a <= b | |
Function | Absolute | Float1 / Integer1 | Float1 | Returns the absolute value of a: abs(a) |
Floor | Float1 / Integer1 | Float1 | Returns the highest value lower or equal to a: floor(a) | |
Ceil | Float1 / Integer1 | Float1 | Returns the smallest value upper or equal to a: ceil(a) | |
Cosine | Float1 / Integer1 | Float1 | Returns the cosine value of a: cos(a) | |
Sine | Float1 / Integer1 | Float1 | Returns the sine value of a: sin(a) | |
Tangent | Float1 / Integer1 | Float1 | Returns the tangent value of a: tan(a) | |
Arc Tangent 2 | Vector Float2 | Float1 | Returns the arc tan 2 value of a vector2 entry: arctan2(xa, ya) | |
Cartesian | Float1 | Float2 | Converts 2 polar coordinates to cartesian coordinates: carth(rho, theta) | |
Square Root | Float1 / Integer1 | Float1 | Returns the square root value of a | |
Logarithmic | Float1 / Integer1 | Float1 | Returns the logarithmic value of a: log(a) | |
Exponential | Float1 / Integer1 | Float1 | Returns the exponential value of a: exp(a) | |
Pow 2 | Float1 / Integer1 | Float1 | Returns the power of 2 value of a | |
Linear Interpolation | Float1 / Integer1 | Float1 | Returns the linear interpolation between 2 values, depending on a floating value : (1-x)a + x * b | |
Minimum | Float1 / Integer1 | Type of a & b | Returns the minimum value between a and b | |
Maximum | Float1 / Integer1 | Type of a & b | Returns the maximum value between a and b | |
Random | Float1 | Float1 | Generates a floating value between 0 and a | |
Control | Sequence | any | Type of input | Allows to choose which value to compute first between 2 values. |
If...Else | Boolean / a & b | Type of a & b | Returns true if the condition in If is true. Returns false if it's false. |