-
Notifications
You must be signed in to change notification settings - Fork 316
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
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 |
❌ |
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 |
❌ |
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 |
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 |
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 |
🔵 |
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 |
🔵 |
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 provides additional nodes in the Armory
node category to ease shader creation:
-
Shader Data
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 theInput Source
dropdown. IfVertex 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 theVariable Name
represents either the input name in the shader code or the link name of the uniform. -