Shader Nodes Reference / Blender
To some extent, Verge3D supports almost all nodes provided by Blender's Shader Editor. However, for most tasks of web-based real-time graphics it is sufficient to use just a limited set of them. Below we only list the nodes that are used in stock Verge3D demos.
Inputs and outputs that are supported by Verge3D are marked with green check mark, while unsupported ones are marked with red one.
Contents
- Shader Nodes
- Output Nodes
- Input Nodes
- Texture Nodes
- Color Nodes
- Vector Nodes
- Converter Nodes
- World-Specific Nodes
- Performance Considerations
Shader Nodes
These nodes are in the core of any material, performing shading calculations for the object surface. Among them, the following nodes are used the most in Verge3D workflow:

Principled BSDF
This universal node implements the physically-based rendering model (aka PBR). Suitable for creating most materials for Verge3D.

By tweaking just a few options in the Principled BSDF node, you can quickly setup various good-looking materials. For best results, you might use an environment texture which provides reflections and image-based lighting, or just use the default cube template where the environment is set up for you.

Diffuse BSDF
This node implements the diffuse component of PBR. It is used for adding baked ambient occlusion to materials, or sometimes combined with Glossy BSDF node for more flexibility compared to Principled BSDF node.

In the following example, Diffuse BSDF is used to add baked ambient occlusion to chrome material:

Glossy BSDF
This node implements the specular component of PBR. It is used for purely metallic surfaces, or sometimes combined with Diffuse BSDF node for more flexibility.

Emission
This node is used to represent unlit (shadeless) objects. It is also used to represent glowing objects when combined with the bloom post-effect in Verge3D.

In the following simplified example, Emission is used for shadeless UI icons:

Transparent BSDF
This node implements transparent materials by mixing with other Shader nodes such as Glossy BSDF.

This node is supported partially. It resembles Blender's viewport better if
you follow these restrictions:
- the Color input should be strictly white (R = 1, G = 1, B = 1)
- the node should be used at the very end of a node tree, i.e. just
before the Material Output through a Mix Shader or an Add Shader
node (see the example below), or directly plugged into the Surface socket
of Material Output
In the following simplified example, Transparent BSDF is used for the material of front glass:

Refraction BSDF
This node implements refractive materials by using the environment map for refraction.

Below is a simple usage example:

Glass BSDF
This node implements the specular and the refraction components of PBR.

See more information on the Glass BSDF node in Blender Manual: link.
Translucent BSDF
This node implements the translucency effect.

See more information on the Translucent BSDF node in Blender Manual: link.
Add Shader
This node sums up two shaders together.

Mix Shader
This node mixes two shaders together.

Output Nodes
These nodes are the end point in a shader. For Object materials, only the following node is available (there is also a special output node for World materials):

Material Output
This node provide shading results for the surface point.

Input Nodes
These nodes provide various input information to the shader. Among them, the following nodes are used the most in Verge3D workflow:

Geometry
This node provides geometrical information (in world space) for the shaded point. At the moment, Verge3D supports only Position, Normal, Tangent, Incoming and Backfacing sockets.

Attribute
This node retrieves mesh attributes. Only vertex colors are supported by Verge3D at the moment.

Texture Coordinate
This node provides UV-mapped or procedurely assigned coordinates for texturing. Verge3D takes the first UV layer from the list of UV layers available on the mesh.

UV Map
This node retrieves the specified UV layer from mesh. Unlike the Texture Coordinate node, this node works with any UV layer available on the mesh.

Fresnel
This node computes the proportion of light reflected vs refracted.

Layer Weight
This node provides a mix factor thats depends on the direction upon which the object surface is observed.

RGB
This node provides a color value to the shader.

Value
This node provides a numeric value to the shader.

Camera Data
This node provides information about objects position relative to the camera.

See more information on the Camera Data node in Blender Manual: link.
Tangent
This node provides tangent directions. If Direction Type is set to "UV Map" then the tangents will be calculated from the mesh's active UV layer rather than from the UV layer specified in the node itself (this parameter is not supported).

See more information on the Tangent node in Blender Manual: link.
Vertex Color
This node provides vertex color values.

See more information on the Vertex Color node in Blender Manual: link.
Texture Nodes
These nodes provide bitmaps to the shader. Among them, the following nodes are used the most in Verge3D workflow:

Checker Texture
This node provides a bitmap with checker patterns.

See more information on the Checker Texture node in Blender Manual: link.
Image Texture
This node provides an image file to be used as texture in the shader.

NOTE: some options are supported partially
- interpolation modes: Linear, Closest
- image source: Single Image, Generated
- color space: Linear, sRGB
Gradient Texture
This node provides a smoothly changing range of colors and intensities.

Voronoi Texture
This node provides a bitmap with Voronoi patterns.

NOTE: only 3D dimension is supported, which also means no support for the W input
Noise Texture
This node provides a bitmap with noise patterns.

NOTE: only 3D dimension is supported, which also means no support for the W input
Wave Texture
This node provides a bitmap with wave patterns.

See more information on the Wave Texture node in Blender Manual: link.
Color Nodes
These nodes provides various operations on colors. Among them, the following nodes are used the most in Verge3D workflow:

Bright/Contrast
This node is used to change birghtness and contrast of the color input.

See more information on the Bright/Contrast node in Blender Manual: link.
Hue Saturation Value
This node is used to transform the color input in the HSV space.

See more information on the Hue Saturation Value node in Blender Manual: link.
Mix
This node mixes two color inputs together using various blending modes.

RGB Curves
This node is used for color correction and level adjustment.

Invert
This node inverts the color input producing a negative.

Gamma
This node applies gamma correction to the color input.

Vector Nodes
These nodes provides various operations on vectors. Among them, the following nodes are used the most in Verge3D workflow:

Bump
This node generates a bump map.

See more information on the Bump node in Blender Manual: link.
Mapping
This node is used to transform a bitmap, including shifting, rotation and scale.

Normal
This node is used to define a normal vector and to generate a dot product.

See more information on the Normal node in Blender Manual: link.
Normal Map
This node provides the normal vector from a bitmap interpreted as normal map.

NOTE: only Tangent Space is supported
Vector Curves
This node is used to map the input vector to a curve.

Vector Rotate
This node is used for rotating the input vector around a pivot point.

Vector Transform
This node is used to convert an input vector between world, camera or object coordinate spaces.

Converter Nodes
These nodes provides means for converting between data of various types. Among them, the following nodes are used the most in Verge3D workflow:

Clamp
This node clamps the input value to be in the specified range.

NOTE: only Min Max clamp type is supported
See more information on the Clamp node in Blender Manual: link.
Color Ramp
This node converts values to colors by using a gradient.

NOTE: some options are supported partially
- color mode: only RGB is supported
- interpolation: Linear, Constant
Map Range
This node is used to transform a value from one range to another.

NOTE: only Linear interpolation is supported
See more information on the Map Range node in Blender Manual: link.
Shader to RGB
This node replaces shading calculation results with plain color. Typically used for non-photorealistic rendering.

RGB to BW
This node converts color to black and white imagery by using luminance.

Math
This node performs mathematical operations with numeric values:
- Add, Subtract, Multiply, Divide, Multiply and Add, Power, Logarithm, Square Root, Inverse Square Root, Absolute
- Minimum, Maximum, Less Than, Greater Than, Sign, Compare, Smooth Minimum, Smooth Maximum
- Round, Floor, Ceil, Truncate, Fraction, Modulo, Wrap, Snap, Ping-pong
- Sine, Cosine, Tangent, Arcsine, Arccosine, Arctangent, 2-Argument Arctangent, Hyperbolic Sine, Hyperbolic Cosine, Hyperbolic Tangent
- Convert to Radians, Convert to Degrees

Vector Math
This node performs operations with vectors:
- Add, Subtract, Multiply, Divide
- Cross Product, Project, Reflect, Dot Product
- Distance, Length, Scale, Normalize
- Absolute, Minimum, Maximum, Floor, Ceil, Fraction, Modulo, Wrap, Snap
- Sine, Cosine, Tangent

Combine/Separate Nodes
These nodes compose a color/vector from, or split it to, the individual channels.

World-Specific Nodes
These nodes are either available only for World materials (Background, World Output), or typically used with World materials (Environment Texture, Light Path, Sky Texture):

Background
This node is used for setting up the background color, as well as for image-based lighting and reflections. It is rarely used on its own as it would produce just a solid color. You might combine with an environment texture for best results.

World Output
This node is the end point of World materials. It represents shading results for the environment.

Environment Texture
This node provides an image file to be used as environment texture in the shader. The images must be in equirectangular projection, and should typically be HDR, although JPEG or PNG formats can be used as well.
The default cube template includes an HDR image which you may reuse in your projects.

NOTE: some options are supported partially
- interpolation mode: Linear, Closest
- image source: Single Image, Generated
- color space: Linear, sRGB
In the following example, a JPEG image is used to provide image-based lighting, reflections and the background, all at once.

Light Path
This node provides various information of Boolean type to the shader. The Is Camera Ray output is supported by Verge3D with the purpose to control whether the environment texture is visible in the background.

The following typical setup is used to provide environment lighting and reflections to the scene yet just render a white solid color in the background:

Sky Texture
This node provides a procedurally generated skydome texture.

NOTE: this node is Cycles-only and doesn't work with the Eevee renderer
See more information on the Sky Texture node in Blender Manual: link.
Performance Considerations
Principled BSDF Performance
Being the most frequently used node, Principled BSDF nevertheless require more computing power from your GPU and slows down application loading. This is especially true if you have lots of such materials in your scene.
There are several ways to optimize Principled-based materials:
- Replace Principled BSDF by Diffuse BSDF for non-specular or non-metallic surfaces.
- Replace Principled BSDF by Glossy BSDF for pure metallic materials.
- Replace Principled BSDF by Emission if you render color-only materials.
- Tweak Cubemap Size or IBL Environment Mode property to improve environment lighting performance.
- Switch to glTF 2.0 model.
Keep in mind, that the last two methods will make your materials look differently compared to Blender viewport.
Slow Procedural Textures
There are procedural textures that have reduced performance:
- Noise Texture, especially with high Detail property (16 is the performance killer).
- Voronoi Texture. Use F1 as feature parameter as it works much better than any other.
You can bake these textures to bitmaps and use the Image Texture node to achieve much better results.
Got Questions?
Feel free to ask on the forums!