Skip to content
ShalokShalom edited this page Jan 2, 2025 · 21 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