Just getting started with shader graph?

mrdeerwhale's Guide to
Reality Composer Pro's
Shader Graph Nodes

Browse the nodes available in RCP's Shader Graph using the list below.
Click on the category to expand.
Click on the name of the Node to get a short description.
[Coming soon: Examples and Tutorials]
Questions or corrections? Reach out on Twitter (
@mrdeerwhale)

Node List

2D Procedural Nodes

Cellular Noise 2D

A 2D cellular noise generator.

Noise 2D

A 2D Perlin noise generator.

Ramp 4 Corners

A four-point linear value ramp (gradient) generator.

Ramp Horizontal

A left-to-right linear value ramp (gradient) generator.

Ramp Vertical

A top-to-bottom linear value ramp (gradient) generator.

Split Horizontal

A left-to-right split matte, split at a specified U value.

Split Vertical

A top-to-bottom split matte, split at a specified V value.

Worley Noise 2D

A 2D Worley noise generator.

2D Texture Nodes

Image

A texture referencing a 2D image file.

Tiled Image

Samples data from an image with provisions for offsetting and tiling in UV space.

Transform 2D

A node that applies an affine transformation to a 2d input.

UV Texture

A MaterialX version of USD UV Texture reader.

3D Procedural Nodes

Cellular Noise 3D

A 3D cellular noise generator.

Fractal Noise 3D

Zero-centered 3D fractal noise created by summing several octaves of 3D Perlin noise.

Noise 3D

A 3D Perlin noise generator.

Worley Noise 3D

A 3D Worley noise generator.

3D Texture Nodes

Triplanar Projection

Samples data from three images and projects each along its respective coordinate axis and blends them by geometric normal.

Adjustment Nodes

Contrast

Increases or decreases contrast of values using a linear slope multiplier.

HSV Adjust

Adjusts the hue, saturation, and value of an RGB color by a vector <amount>.

HSV to RGB

Converts a color from HSV to RGB space.

Luminance

Outputs a grayscale value containing the luminance of the incoming RGB color in all color channels.

Range

Remaps incoming values from one range to another.

Remap

Linearly remaps incoming values from one range to another.

RGB to HSV

Converts a color form RGB to HSV space.

Saturate

Adjusts the saturation of a color.

Smooth Step

Outputs a smooth remapping from low-high to 0–1.

Step (RealityKit)

Step.

Application Nodes

Time (float)

The current time in seconds.

Up Direction

The direction of the up vector.

Compositing Nodes

Additive Mix

Adds foreground and background values. B + F

Burn

A blend operation that darkens the foreground layer using the background. 1 — (1 — B) / F

Difference

Outputs the distance between foreground and background values. abs(B — F)

Disjoint Over

A merge operation that layers foreground over background color, but assumes no overlap in partially transparent areas covered by both.

Dodge

A blend operation that lightens the background layer depending on the foreground. B / (1 — F)

In

Outputs areas of foreground that overlap with the alpha of background.

Inside

Multiplies a mask to all channels of the input.

Mask

Outputs areas of background that overlap with the alpha of foreground.

Matte

A merge operation that layers premultiplied foreground over background.

Mix

Mixes foreground and background inputs, weighting based on mix value. F * m + B(1 — m)

Out

Outputs areas of foreground that do not overlap with background.

Outside

Multiplies (1 — mask) to all channels of the input.

Over

A merge operation that layers foreground over background, using the alpha of the foreground.

Overlay

A blend operation that multiplies dark areas and screens light areas. 2 * F * B if F < 0.5; 1 — (1 — F)(1 — B) if F ≥ 0.5

Premultiply

Multiplies the RGB channels of the input by the alpha channel.

Screen

A blend operation that lightens area that are dark than white. 1 — (1 — F)(1 — B)

Subtractive Mix

Subtracts foreground from background values. B — F

Unpremultiply

Divides RGB channels of the input by the alpha channel.

Data Nodes

Combine 2

Combines the channels from two streams into two channels of a single output stream of a compatible type.

Combine 3

Combines the channels from three streams into three channels of a single output stream with a compatible type.

Combine 4

Combines the channels from four streams into four channels of a single output stream of a compatible type.

Convert

Converts a stream from one data type to another.

Extract

Generates a float stream from one channel of a colorN or vectorN stream.

Primvar Reader (bool)

A node that provides the ability for shading networks to consume boolean data defined on geometry.

Primvar Reader (float)

A node that provides the ability for shading networks to consume float data defined on geometry.

Primvar Reader (integer)

A node that provides the ability for shading networks to consume integer data defined on geometry.

Primvar Reader (string)

A node that provides the ability for shading networks to consume string data defined on geometry.

Primvar Reader (vector2f)

A node that provides the ability for shading networks to consume float2 data defined on geometry.

Primvar Reader (vector3f)

A node that provides the ability for shading networks to consume float3 data defined on geometry.

Primvar Reader (vector4f)

A node that provides the ability for shading networks to consume float4 data defined on geometry.

Separate 2

Outputs each of the channels of a vector2 as a separate float output.

Separate 3

Outputs each of the channels of a vector3 as a separate float output.

Separate 4

Outputs each of the channels of a vector4 as a separate float output.

Swizzle

Performs an arbitrary permutation of the channels of the input stream, returning a new stream of the specified type.

Geometric Nodes

Bitangent

The geometric bitangent vector of the currently processed data in a given coordinate space.

Geometric Property

The value of the specified geometric property (defined using <geompropdef>) of the currently-bound geometry.

Geometry Color

The color associated with the geometry at the currently processed geometric position, typically defined by vertex color.

Normal

The geometric normal of the currently-processed data in a given coordinate space.

Position

The coordinates of the currently-processed data in a given coordinate space

Reflect (RealityKit)

Reflects a vector about another vector.

Refract (RealityKit)

Refracts a vectror using a given normal and index of refraction (eta).

Tangent

The geometric tangent of the currently-processed data in a given coordinate space.

Texture Coordinates

The 2D or 3D texture coordinates fo the currently-processed data.

If Greater Or Equal

Outputs True Result or False Result depending on whether value1 ≥ value2.

Not (RealityKit)

Returns !input.

Logic Nodes

And (RealityKit)

Boolean operation in1 && in2.

If Equal

Outputs True Result or False Result depending on whether value1 == value2.

If Greater

Outputs True Result or False Result depending on whether value1 > value2.

Or (RealityKit)

Boolean operation in1 || in2.

Switch

Outputs the value from one of ten input streams acording to a selector <which>.

XOR (RealityKit)

Returns true if only one of the inputs is true.

Material Nodes

NodeGraph

A node that can contain shading nodes and other node graphs.

Organizational Nodes

Dot

A pass-through node used for visually routing edges in the graph.

PBR Nodes

Preview Surface

A MaterialX version of the USD Preview Surface.

Procedural Nodes

Boolean

A constant boolean (true/false) value.

Color3 (Float)

A constant Color3 (Float) value.

Color4 (Float)

A constant Color4 (Float) value.

Float

A constant floating-point numeric value.

Half

ND_constant_half.menuDescriptionShort (lol). I’m guessing: A constant 16-bit floating-point numeric value.

Image File

A constant path referring to an arbitrary image file on disk.

Integer

A constant integer numeric value.

Matrix2x2 (Float)

A constant Matrix2x2 (Float) value. (Row-major order)

Matrix3x3 (Float)

A constant Matrix3x3 (Float) value. (Row-major order)

Matrix4x4 (Float)

A constant Matrix4x4 (Float) value. (Row-major order)

String

A constant string (text) value.

Vector2 (Float)

A constant Vector2 (Float) value.

Vector2 (Half)

ND_constant_half2.menuDescriptionShort (lol). I’m guessing: A constant Vector2 (Half) value.

Vector3 (Float)

A constant Vector3 (Float) value.

Vector3 (Half)

ND_constant_half3.menuDescriptionShort (lol). I’m guessing: A constant Vector3 (Half) value.

Vector4 (Float)

A constant Vector4 (Float) value.

Vector4 (Half)

ND_constant_half4.menuDescriptionShort (lol). I’m guessing: A constant Vector4 (Half) value.

RealityKit Nodes

Camera Index Switch (RealityKit)

Render different results for each eye ina stereoscopic render.

Camera Position (RealityKit)

The position of the camera in the scene.

Cube Image (RealityKit)

A cube map in .ktx format, corresponding to Metal texture 'typeCube'. Can be used for skybox or environment maps.

Geometry Modifier (RealityKit)

A function that manipulates the location of a model's vertices, run once per vertex.

Geometry Modifier Model to View (Reality Kit)

[description missing from RCP]

Geometry Modifier Model to World (RealityKit)

[description missing from RCP]

Geometry Modifier Normal to World (RealityKit)

[description missing from RCP]

Geometry Modifier Projection to View (RealityKit)

[description missing from RCP]

Geometry Modifier Vertex ID (RealityKit)

[description missing from RCP]

Geometry Modifier View to Projection (RealityKit)

[description missing from RCP]

Geometry Modifier World to Model (RealityKit)

[description missing from RCP]

Occlusion Surface (RealityKit)

A surface shader that defines properties for a RealityKit Occlusion material that does not receive dynamic lighting.

PBR Surface (RealityKit)

A surface shader that defines properties for a RealityKit Physically Based Rendering material.

Shadow Receiver Surface (RealityKit)

A surface shader that defines properties for a RealityKit Occlusion material that receives dynamic lighting.

Surface Custom Attribute 0 (vector2h)

[description missing from RCP]

Surface Custom Attribute 0 (vector4h)

[description missing from RCP]

Surface Custom Attribute 1 (vector2h)

[description missing from RCP]

Surface Custom Attribute 1 (vector4h)

[description missing from RCP]

Surface Custom Attribute 2 (vector4h)

[description missing from RCP]

Surface Custom Attribute 3 (vector4h)

[description missing from RCP]

Surface Model to View (RealityKit)

[description missing from RCP]

Surface Model to World (RealityKit)

[description missing from RCP]

Surface Projection to View (RealityKit)

[description missing from RCP]

Surface Screen Position (RealityKit)

[description missing from RCP]

Surface View Direction (RealityKit)

[description missing from RCP]

Surface View to Projection (RealityKit)

[description missing from RCP]

Unlit Surface (RealityKit)

[description missing from RCP]

View Direction (RealityKit)

[description missing from RCP]

Surface Nodes

Preview Surface

A MaterialX version of the USD Preview Surface.

Other

Blank

The missing mystery node.

See an issue or have a question? Reach out to me on Twitter: @mrdeerwhale.
The short descriptions on this page are provided by Apple inside of Reality Composer Pro and are reproduced here to be more easily searchable until Apple creates more comprehensive documentation on the Developer website or provides a help document within the app.
The other content on this website is provided by @mrdeerwhale.