Skip to content
Moritz Brückner edited this page May 23, 2023 · 19 revisions

Supported Nodes

While the goal is to support all of Blender's material nodes, not all of them are supported in Armory. The current state of support is indicated in below tables.

For further in-depth information about Armory's shader node support, please consult blender/arm/material/node_meta.py as well as the node parsing functions referenced in that module.

Legend: ✔ Full support 🔵 Not fully implemented ❌ Not supported / will not be supported

Shader

Node name Blender Identifier Supported Additional information
Principled BSDF BSDF_PRINCIPLED 🔵 Not all sockets are supported
Mix Shader MIX_SHADER There is currently no blending between normals
Add Shader ADD_SHADER
Diffuse BSDF BSDF_DIFFUSE
Glossy BSDF BSDF_GLOSSY
Emission EMISSION
Glass BSDF BSDF_GLASS 🔵
Holdout HOLDOUT
Toon BSDF BSDF_TOON
Anisotropic BSDF BSDF_ANISOTROPIC Equivalent to Glossy BSDF
Translucent BSDF BSDF_TRANSLUCENT 🔵
Transparent BSDF BSDF_TRANSPARENT
Velvet BSDF BSDF_VELVET 🔵
Subsurface Scattering SUBSURFACE_SCATTERING 🔵
Refraction BSDF BSDF_REFRACTION
Specular EEVEE_SPECULAR
Principled Volume PRINCIPLED_VOLUME
Volume Absorption VOLUME_ABSORPTION
Volume Scatter VOLUME_SCATTER

Input

Node name Blender Identifier Supported Additional information
Attribute ATTRIBUTE 🔵 Doesn't support all of Blender's attributes. You can access vertex colors (using the color output), UV maps and time)
Camera Data CAMERA
Fresnel FRESNEL
Geometry NEW_GEOMETRY 🔵 All outputs supported except for Pointiness and Random Per Island
Hair Info HAIR_INFO Using default output values
Layer Weight LAYER_WEIGHT
Light Path LIGHT_PATH Using preconfigured values (no raytracing)
Object Info OBJECT_INFO 🔵 All outputs supported except for Color
Particle Info PARTICLE_INFO 🔵 GPU Particles. All outputs supported except for Random, Size and Angular Velocity
RGB RGB
Tangent TANGENT 🔵
Texture Coordinate TEX_COORD 🔵 All outputs supported except for Camera, Reflection. Also it is not possible to access other object's coordinates
UV Map UVMAP
Value VALUE
Vertex Color VERTEX_COLOR
Volume Info VOLUME_INFO
Wireframe WIREFRAME

Output

Node name Blender Identifier Supported Additional information
Material Output OUTPUT_MATERIAL 🔵 Volume input not supported
World Output OUTPUT_WORLD 🔵 Currently only Background and Emission nodes can be directly connected to this node

Converter

Node name Blender Identifier Supported Additional information
Blackbody BLACKBODY
Clamp CLAMP
Color Ramp VALTORGB 🔵 Only color output with constant or linear RGB interpolation
Combine Color COMBINE_COLOR 🔵 HSL mode is not supported
Combine HSV COMBHSV Deprecated. Was replaced by the Combine Color node.
Combine RGB COMBRGB Deprecated. Was replaced by the Combine Color node.
Combine XYZ COMBXYZ
Math MATH 🔵 Most operators are supported but some are still missing
RGB to BW RGBTOBW
Separate Color SEPARATE_COLOR 🔵 HSL mode is not supported
Separate HSV SEPBHSV Deprecated. Was replaced by the Separate Color node.
Separate RGB SEPBRGB Deprecated. Was replaced by the Separate Color node.
Separate XYZ SEPBXYZ
Shader to RGB SHADERTORGB
Vector Math VECT_MATH Modulo operator behaves differently in Blender/Armory with negative numbers
Wavelength WAVELENGTH
Map Range MAP_RANGE 🔵 Only supports Float data type

Color

Node name Blender Identifier Supported Additional information
Bright Contrast BRIGHTCONTRAST
Gamma GAMMA
Hue/Saturation HUE_SAT
Light Falloff LIGHT_FALLOFF 🔵 Follows Eevee's incomplete implementation of the node
Invert INVERT
MixRGB MIX_RGB 🔵 Some blend types default to Mix
RGB Curves CURVE_RGB 🔵

Texture

Node name Blender Identifier Supported Additional information
Brick Texture TEX_BRICK 🔵
Checker Texture TEX_CHECKER
Environment Texture TEX_ENVIRONMENT World shader only
Gradient Texture TEX_GRADIENT 🔵
Image Texture TEX_IMAGE
Magic Texture TEX_MAGIC 🔵
Musgrave Texture TEX_MUSGRAVE 🔵
Noise Texture TEX_NOISE
Point Density TEX_POINTDENSITY
Sky Texture TEX_SKY 🔵 World shader only. Supported sky models: Hosek/Wilkie and Nishita. Preetham will use Hosek/Wilkie .
Voronoi Texture TEX_VORONOI 🔵
Wave Texture TEX_WAVE 🔵

Vector

Node name Blender Identifier Supported Additional information
Bump BUMP
Displacement DISPLACEMENT 🔵
Normal NORMAL
Normal Map NORMAL_MAP
Mapping MAPPING 🔵 'Normal' mapping type is not supported yet
Vector Curves CURVE_VEC
Vector Rotate VECTOR_ROTATE
Vector Transform VECT_TRANSFORM

Armory material nodes

Armory provides additional nodes in the Armory node category to ease shader creation:

  • Shader Data

    Shader Data node
    Example: Retrieving the position of object instances (ipos) from the vertex shader.

    Usage: This node lets you access shader data from uniforms and shader inputs. You can switch between both types via the Input Type toggle.

    • Input mode
      This mode allows you to use the contents of values passed as inputs to the vertex or fragment shader stage. You can choose the stage via the Input Source dropdown. If Vertex Shader is selected, the variable gets passed through to the fragment shader where it is used.

    • Uniform mode
      This mode allows you to access the contents of uniform values that are provided by Iron in Uniforms.hx. Armory will automatically add the selected uniforms to the generated shader. You can find a list of available uniforms here. A more detailed explanation of this mode can be found here.

    The chosen Variable Type represents the data type of the value and the Variable Name represents either the input name in the shader code or the link name of the uniform.

Clone this wiki locally