Material Layers
ReferenceLayerShaders

DataShader

Setup macros and layer variables used in DataShaders.

Setup Macros

At the top of the vertex() function, declare SETUP_DATA_VERTEX.

At the top of the fragment() function, declare SETUP_DATA_FRAGMENT.

Layer Variables

A DataShader can output up to 16 vec4 and 16 float values up the chain, using LAYER_OUT_TEX_* and LAYER_OUT_MASK_* variables. It can also read data from layers below using LAYER_BELOW_TEX_* and LAYER_BELOW_MASK_* variables.

Output Variables

Data variables written to the chain. Read by layers above with the matching LAYER_BELOW_* variable.

Output Vec4 VariablesOutput Float Variables
LAYER_OUT_TEX_0LAYER_OUT_MASK_0
LAYER_OUT_TEX_1LAYER_OUT_MASK_1
LAYER_OUT_TEX_2LAYER_OUT_MASK_2
LAYER_OUT_TEX_3LAYER_OUT_MASK_3
LAYER_OUT_TEX_4LAYER_OUT_MASK_4
LAYER_OUT_TEX_5LAYER_OUT_MASK_5
LAYER_OUT_TEX_6LAYER_OUT_MASK_6
LAYER_OUT_TEX_7LAYER_OUT_MASK_7
LAYER_OUT_TEX_8LAYER_OUT_MASK_8
LAYER_OUT_TEX_9LAYER_OUT_MASK_9
LAYER_OUT_TEX_10LAYER_OUT_MASK_10
LAYER_OUT_TEX_11LAYER_OUT_MASK_11
LAYER_OUT_TEX_12LAYER_OUT_MASK_12
LAYER_OUT_TEX_13LAYER_OUT_MASK_13
LAYER_OUT_TEX_14LAYER_OUT_MASK_14
LAYER_OUT_TEX_15LAYER_OUT_MASK_15

Input Variables

Data variables can read values from layers below.

Vec4 VariablesFloat Variables
LAYER_BELOW_TEX_0LAYER_BELOW_MASK_0
LAYER_BELOW_TEX_1LAYER_BELOW_MASK_1
LAYER_BELOW_TEX_2LAYER_BELOW_MASK_2
LAYER_BELOW_TEX_3LAYER_BELOW_MASK_3
LAYER_BELOW_TEX_4LAYER_BELOW_MASK_4
LAYER_BELOW_TEX_5LAYER_BELOW_MASK_5
LAYER_BELOW_TEX_6LAYER_BELOW_MASK_6
LAYER_BELOW_TEX_7LAYER_BELOW_MASK_7
LAYER_BELOW_TEX_8LAYER_BELOW_MASK_8
LAYER_BELOW_TEX_9LAYER_BELOW_MASK_9
LAYER_BELOW_TEX_10LAYER_BELOW_MASK_10
LAYER_BELOW_TEX_11LAYER_BELOW_MASK_11
LAYER_BELOW_TEX_12LAYER_BELOW_MASK_12
LAYER_BELOW_TEX_13LAYER_BELOW_MASK_13
LAYER_BELOW_TEX_14LAYER_BELOW_MASK_14
LAYER_BELOW_TEX_15LAYER_BELOW_MASK_15
YoutubePatreonDocsAssetsTwitter

©2026 Foyezes