ReferenceLayerShaders
SurfaceShader
Setup macros and layer variables used in SurfaceShaders.
Setup Macros
At the top of the vertex() function, declare SETUP_SURFACE_VERTEX.
At the top of the fragment() function, declare SETUP_SURFACE_FRAGMENT.
Layer Variables
A SurfaceShader can only output its own material properties using LAYER_OUT_* variables. It can read data values from layers below using LAYER_BELOW_TEX_* and LAYER_BELOW_MASK_* variables.
Output Variables
Variables to output material properties.
| Output Variables |
|---|
| LAYER_OUT_ALBEDO |
| LAYER_OUT_NORMAL_MAP |
| LAYER_OUT_ROUGHNESS |
| LAYER_OUT_HEIGHT |
| LAYER_OUT_AO |
| LAYER_OUT_METALLIC |
| LAYER_OUT_EMISSION |
| LAYER_OUT_BENT_NORMAL |
| LAYER_OUT_MESH_NORMAL_MAP |
| LAYER_OUT_MESH_AO |
| LAYER_OUT_MESH_HEIGHT |
| LAYER_OUT_MESH_CURVATURE |
| LAYER_OUT_MESH_THICKNESS |
Input Variables
Data values read from layers below.
| Vec4 Variables | Float Variables |
|---|---|
| LAYER_BELOW_TEX_0 | LAYER_BELOW_MASK_0 |
| LAYER_BELOW_TEX_1 | LAYER_BELOW_MASK_1 |
| LAYER_BELOW_TEX_2 | LAYER_BELOW_MASK_2 |
| LAYER_BELOW_TEX_3 | LAYER_BELOW_MASK_3 |
| LAYER_BELOW_TEX_4 | LAYER_BELOW_MASK_4 |
| LAYER_BELOW_TEX_5 | LAYER_BELOW_MASK_5 |
| LAYER_BELOW_TEX_6 | LAYER_BELOW_MASK_6 |
| LAYER_BELOW_TEX_7 | LAYER_BELOW_MASK_7 |
| LAYER_BELOW_TEX_8 | LAYER_BELOW_MASK_8 |
| LAYER_BELOW_TEX_9 | LAYER_BELOW_MASK_9 |
| LAYER_BELOW_TEX_10 | LAYER_BELOW_MASK_10 |
| LAYER_BELOW_TEX_11 | LAYER_BELOW_MASK_11 |
| LAYER_BELOW_TEX_12 | LAYER_BELOW_MASK_12 |
| LAYER_BELOW_TEX_13 | LAYER_BELOW_MASK_13 |
| LAYER_BELOW_TEX_14 | LAYER_BELOW_MASK_14 |
| LAYER_BELOW_TEX_15 | LAYER_BELOW_MASK_15 |