|
@@ -135,50 +135,66 @@ is usually:
|
|
|
This allows you to easily adjust the shader to a particle system using default particles material. When writing a custom particle
|
|
|
shader, this value can be used as desired.
|
|
|
|
|
|
-+--------------------------------------+-------------------------------------------------------+
|
|
|
-| Built-in | Description |
|
|
|
-+======================================+=======================================================+
|
|
|
-| in vec2 **VIEWPORT_SIZE** | Size of viewport (in pixels). |
|
|
|
-+--------------------------------------+-------------------------------------------------------+
|
|
|
-| inout mat4 **WORLD_MATRIX** | Model space to world space transform. |
|
|
|
-+--------------------------------------+-------------------------------------------------------+
|
|
|
-| in mat4 **INV_CAMERA_MATRIX** | World space to view space transform. |
|
|
|
-+--------------------------------------+-------------------------------------------------------+
|
|
|
-| inout mat4 **PROJECTION_MATRIX** | View space to clip space transform. |
|
|
|
-+--------------------------------------+-------------------------------------------------------+
|
|
|
-| in mat4 **CAMERA_MATRIX** | View space to world space transform. |
|
|
|
-+--------------------------------------+-------------------------------------------------------+
|
|
|
-| inout mat4 **MODELVIEW_MATRIX** | Model space to view space transform (use if possible).|
|
|
|
-+--------------------------------------+-------------------------------------------------------+
|
|
|
-| inout mat4 **INV_PROJECTION_MATRIX** | Clip space to view space transform. |
|
|
|
-+--------------------------------------+-------------------------------------------------------+
|
|
|
-| inout vec3 **VERTEX** | Vertex in local coordinates. |
|
|
|
-+--------------------------------------+-------------------------------------------------------+
|
|
|
-| out vec4 **POSITION** | If written to, overrides final vertex position. |
|
|
|
-+--------------------------------------+-------------------------------------------------------+
|
|
|
-| inout vec3 **NORMAL** | Normal in local coordinates. |
|
|
|
-+--------------------------------------+-------------------------------------------------------+
|
|
|
-| inout vec3 **TANGENT** | Tangent in local coordinates. |
|
|
|
-+--------------------------------------+-------------------------------------------------------+
|
|
|
-| inout vec3 **BINORMAL** | Binormal in local coordinates. |
|
|
|
-+--------------------------------------+-------------------------------------------------------+
|
|
|
-| out float **ROUGHNESS** | Roughness for vertex lighting. |
|
|
|
-+--------------------------------------+-------------------------------------------------------+
|
|
|
-| inout vec2 **UV** | UV main channel. |
|
|
|
-+--------------------------------------+-------------------------------------------------------+
|
|
|
-| inout vec2 **UV2** | UV secondary channel. |
|
|
|
-+--------------------------------------+-------------------------------------------------------+
|
|
|
-| in bool **OUTPUT_IS_SRGB** | ``true`` when calculations happen in sRGB color space |
|
|
|
-| | (``true`` in GLES2, ``false`` in GLES3). |
|
|
|
-+--------------------------------------+-------------------------------------------------------+
|
|
|
-| inout vec4 **COLOR** | Color from vertices. |
|
|
|
-+--------------------------------------+-------------------------------------------------------+
|
|
|
-| inout float **POINT_SIZE** | Point size for point rendering. |
|
|
|
-+--------------------------------------+-------------------------------------------------------+
|
|
|
-| in int **INSTANCE_ID** | Instance ID for instancing. |
|
|
|
-+--------------------------------------+-------------------------------------------------------+
|
|
|
-| in vec4 **INSTANCE_CUSTOM** | Instance custom data (for particles, mostly). |
|
|
|
-+--------------------------------------+-------------------------------------------------------+
|
|
|
++----------------------------------------+--------------------------------------------------------+
|
|
|
+| Built-in | Description |
|
|
|
++----------------------------------------+--------------------------------------------------------+
|
|
|
+| in vec2 **VIEWPORT_SIZE** | Size of viewport (in pixels). |
|
|
|
++----------------------------------------+--------------------------------------------------------+
|
|
|
+| in mat4 **INV_CAMERA_MATRIX** | World space to view space transform. |
|
|
|
++----------------------------------------+--------------------------------------------------------+
|
|
|
+| in mat4 **CAMERA_MATRIX** | View space to world space transform. |
|
|
|
++----------------------------------------+--------------------------------------------------------+
|
|
|
+| in mat4 **INV_PROJECTION_MATRIX** | Clip space to view space transform. |
|
|
|
++----------------------------------------+--------------------------------------------------------+
|
|
|
+| in bool **OUTPUT_IS_SRGB** | ``true`` when calculations happen in sRGB color space |
|
|
|
+| | (``true`` in GLES2, ``false`` in GLES3). |
|
|
|
++----------------------------------------+--------------------------------------------------------+
|
|
|
+| in int **INSTANCE_ID** | Instance ID for instancing. |
|
|
|
++----------------------------------------+--------------------------------------------------------+
|
|
|
+| in vec4 **INSTANCE_CUSTOM** | Instance custom data (for particles, mostly). |
|
|
|
++----------------------------------------+--------------------------------------------------------+
|
|
|
+| inout vec3 **VERTEX** | Vertex in local coordinates. |
|
|
|
++----------------------------------------+--------------------------------------------------------+
|
|
|
+| inout vec3 **NORMAL** | Normal in local coordinates. |
|
|
|
++----------------------------------------+--------------------------------------------------------+
|
|
|
+| inout vec3 **TANGENT** | Tangent in local coordinates. |
|
|
|
++----------------------------------------+--------------------------------------------------------+
|
|
|
+| inout vec3 **BINORMAL** | Binormal in local coordinates. |
|
|
|
++----------------------------------------+--------------------------------------------------------+
|
|
|
+| inout vec4 **POSITION** | If written to, overrides final vertex position. |
|
|
|
++----------------------------------------+--------------------------------------------------------+
|
|
|
+| inout vec2 **UV** | UV main channel. |
|
|
|
++----------------------------------------+--------------------------------------------------------+
|
|
|
+| inout vec2 **UV2** | UV secondary channel. |
|
|
|
++----------------------------------------+--------------------------------------------------------+
|
|
|
+| inout vec4 **COLOR** | Color from vertices. |
|
|
|
++----------------------------------------+--------------------------------------------------------+
|
|
|
+| inout float **ROUGHNESS** | Roughness for vertex lighting. |
|
|
|
++----------------------------------------+--------------------------------------------------------+
|
|
|
+| inout float **POINT_SIZE** | Point size for point rendering. |
|
|
|
++----------------------------------------+--------------------------------------------------------+
|
|
|
+| inout mat4 **MODELVIEW_MATRIX** | Model space to view space transform (use if possible). |
|
|
|
++----------------------------------------+--------------------------------------------------------+
|
|
|
+| inout mat3 **MODELVIEW_NORMAL_MATRIX** | |
|
|
|
++----------------------------------------+--------------------------------------------------------+
|
|
|
+| inout mat4 **WORLD_MATRIX** | Model space to world space transform. |
|
|
|
++----------------------------------------+--------------------------------------------------------+
|
|
|
+| inout mat3 **WORLD_NORMAL_MATRIX** | |
|
|
|
++----------------------------------------+--------------------------------------------------------+
|
|
|
+| inout mat4 **PROJECTION_MATRIX** | View space to clip space transform. |
|
|
|
++----------------------------------------+--------------------------------------------------------+
|
|
|
+| inout uvec4 **BONE_INDICES** | |
|
|
|
++----------------------------------------+--------------------------------------------------------+
|
|
|
+| inout vec4 **BONE_WEIGHTS** | |
|
|
|
++----------------------------------------+--------------------------------------------------------+
|
|
|
+| inout vec4 **CUSTOM0** | |
|
|
|
++----------------------------------------+--------------------------------------------------------+
|
|
|
+| inout vec4 **CUSTOM1** | |
|
|
|
++----------------------------------------+--------------------------------------------------------+
|
|
|
+| inout vec4 **CUSTOM2** | |
|
|
|
++----------------------------------------+--------------------------------------------------------+
|
|
|
+| inout vec4 **CUSTOM3** | |
|
|
|
++----------------------------------------+--------------------------------------------------------+
|
|
|
|
|
|
Fragment built-ins
|
|
|
^^^^^^^^^^^^^^^^^^
|
|
@@ -187,98 +203,116 @@ The default use of a Godot fragment processor function is to set up the material
|
|
|
and to let the built-in renderer handle the final shading. However, you are not required to use all
|
|
|
these properties, and if you don't write to them, Godot will optimize away the corresponding functionality.
|
|
|
|
|
|
-+-----------------------------------+--------------------------------------------------------------------------------------------------+
|
|
|
-| Built-in | Description |
|
|
|
-+===================================+==================================================================================================+
|
|
|
-| in vec2 **VIEWPORT_SIZE** | Size of viewport (in pixels). |
|
|
|
-+-----------------------------------+--------------------------------------------------------------------------------------------------+
|
|
|
-| in vec4 **FRAGCOORD** | Coordinate of pixel center in screen space. ``xy`` specifies position in window, ``z`` |
|
|
|
-| | specifies fragment depth if ``DEPTH`` is not used. Origin is lower-left. |
|
|
|
-+-----------------------------------+--------------------------------------------------------------------------------------------------+
|
|
|
-| in mat4 **WORLD_MATRIX** | Model space to world space transform. |
|
|
|
-+-----------------------------------+--------------------------------------------------------------------------------------------------+
|
|
|
-| in mat4 **INV_CAMERA_MATRIX** | World space to view space transform. |
|
|
|
-+-----------------------------------+--------------------------------------------------------------------------------------------------+
|
|
|
-| in mat4 **CAMERA_MATRIX** | View space to world space transform. |
|
|
|
-+-----------------------------------+--------------------------------------------------------------------------------------------------+
|
|
|
-| in mat4 **PROJECTION_MATRIX** | View space to clip space transform. |
|
|
|
-+-----------------------------------+--------------------------------------------------------------------------------------------------+
|
|
|
-| in mat4 **INV_PROJECTION_MATRIX** | Clip space to view space transform. |
|
|
|
-+-----------------------------------+--------------------------------------------------------------------------------------------------+
|
|
|
-| in vec3 **VERTEX** | Vertex that comes from vertex function (default, in view space). |
|
|
|
-+-----------------------------------+--------------------------------------------------------------------------------------------------+
|
|
|
-| in vec3 **VIEW** | Vector from camera to fragment position (in view space). |
|
|
|
-+-----------------------------------+--------------------------------------------------------------------------------------------------+
|
|
|
-| in bool **FRONT_FACING** | ``true`` if current face is front face. |
|
|
|
-+-----------------------------------+--------------------------------------------------------------------------------------------------+
|
|
|
-| inout vec3 **NORMAL** | Normal that comes from vertex function (default, in view space). |
|
|
|
-+-----------------------------------+--------------------------------------------------------------------------------------------------+
|
|
|
-| inout vec3 **TANGENT** | Tangent that comes from vertex function. |
|
|
|
-+-----------------------------------+--------------------------------------------------------------------------------------------------+
|
|
|
-| inout vec3 **BINORMAL** | Binormal that comes from vertex function. |
|
|
|
-+-----------------------------------+--------------------------------------------------------------------------------------------------+
|
|
|
-| out vec3 **NORMALMAP** | Set normal here if reading normal from a texture instead of NORMAL. |
|
|
|
-+-----------------------------------+--------------------------------------------------------------------------------------------------+
|
|
|
-| out float **NORMALMAP_DEPTH** | Depth from variable above. Defaults to 1.0. |
|
|
|
-+-----------------------------------+--------------------------------------------------------------------------------------------------+
|
|
|
-| in vec2 **UV** | UV that comes from vertex function. |
|
|
|
-+-----------------------------------+--------------------------------------------------------------------------------------------------+
|
|
|
-| in vec2 **UV2** | UV2 that comes from vertex function. |
|
|
|
-+-----------------------------------+--------------------------------------------------------------------------------------------------+
|
|
|
-| in bool **OUTPUT_IS_SRGB** | ``true`` when calculations happen in sRGB color space (``true`` in GLES2, ``false`` in GLES3). |
|
|
|
-+-----------------------------------+--------------------------------------------------------------------------------------------------+
|
|
|
-| in vec4 **COLOR** | COLOR that comes from vertex function. |
|
|
|
-+-----------------------------------+--------------------------------------------------------------------------------------------------+
|
|
|
-| out vec3 **ALBEDO** | Albedo (default white). |
|
|
|
-+-----------------------------------+--------------------------------------------------------------------------------------------------+
|
|
|
-| out float **ALPHA** | Alpha (0..1); if written to, the material will go to the transparent pipeline. |
|
|
|
-+-----------------------------------+--------------------------------------------------------------------------------------------------+
|
|
|
-| out float **ALPHA_SCISSOR** | If written to, values below a certain amount of alpha are discarded. |
|
|
|
-+-----------------------------------+--------------------------------------------------------------------------------------------------+
|
|
|
-| out float **METALLIC** | Metallic (0..1). |
|
|
|
-+-----------------------------------+--------------------------------------------------------------------------------------------------+
|
|
|
-| out float **SPECULAR** | Specular. Defaults to 0.5, best not to modify unless you want to change IOR. |
|
|
|
-+-----------------------------------+--------------------------------------------------------------------------------------------------+
|
|
|
-| out float **ROUGHNESS** | Roughness (0..1). |
|
|
|
-+-----------------------------------+--------------------------------------------------------------------------------------------------+
|
|
|
-| out float **RIM** | Rim (0..1). If used, Godot calculates rim lighting. |
|
|
|
-+-----------------------------------+--------------------------------------------------------------------------------------------------+
|
|
|
-| out float **RIM_TINT** | Rim Tint, goes from 0 (white) to 1 (albedo). If used, Godot calculates rim lighting. |
|
|
|
-+-----------------------------------+--------------------------------------------------------------------------------------------------+
|
|
|
-| out float **CLEARCOAT** | Small added specular blob. If used, Godot calculates Clearcoat. |
|
|
|
-+-----------------------------------+--------------------------------------------------------------------------------------------------+
|
|
|
-| out float **CLEARCOAT_GLOSS** | Gloss of Clearcoat. If used, Godot calculates Clearcoat. |
|
|
|
-+-----------------------------------+--------------------------------------------------------------------------------------------------+
|
|
|
-| out float **ANISOTROPY** | For distorting the specular blob according to tangent space. |
|
|
|
-+-----------------------------------+--------------------------------------------------------------------------------------------------+
|
|
|
-| out vec2 **ANISOTROPY_FLOW** | Distortion direction, use with flowmaps. |
|
|
|
-+-----------------------------------+--------------------------------------------------------------------------------------------------+
|
|
|
-| out float **SSS_STRENGTH** | Strength of Subsurface Scattering. If used, Subsurface Scattering will be applied to object. |
|
|
|
-+-----------------------------------+--------------------------------------------------------------------------------------------------+
|
|
|
-| out vec3 **TRANSMISSION** | Transmission mask (default 0,0,0). Allows light to pass through object. Only applied if used. |
|
|
|
-+-----------------------------------+--------------------------------------------------------------------------------------------------+
|
|
|
-| out vec3 **EMISSION** | Emission color (can go over 1,1,1 for HDR). |
|
|
|
-+-----------------------------------+--------------------------------------------------------------------------------------------------+
|
|
|
-| out float **AO** | Strength of Ambient Occlusion. For use with pre-baked AO. |
|
|
|
-+-----------------------------------+--------------------------------------------------------------------------------------------------+
|
|
|
-| out float **AO_LIGHT_AFFECT** | How much AO affects lights (0..1; default 0). |
|
|
|
-+-----------------------------------+--------------------------------------------------------------------------------------------------+
|
|
|
-| sampler2D **SCREEN_TEXTURE** | Built-in Texture for reading from the screen. Mipmaps contain increasingly blurred copies. |
|
|
|
-+-----------------------------------+--------------------------------------------------------------------------------------------------+
|
|
|
-| sampler2D **DEPTH_TEXTURE** | Built-in Texture for reading depth from the screen. Must convert to linear using INV_PROJECTION. |
|
|
|
-+-----------------------------------+--------------------------------------------------------------------------------------------------+
|
|
|
-| out float **DEPTH** | Custom depth value (0..1). |
|
|
|
-+-----------------------------------+--------------------------------------------------------------------------------------------------+
|
|
|
-| in vec2 **SCREEN_UV** | Screen UV coordinate for current pixel. |
|
|
|
-+-----------------------------------+--------------------------------------------------------------------------------------------------+
|
|
|
-| in vec2 **POINT_COORD** | Point Coordinate for drawing points with POINT_SIZE. |
|
|
|
-+-----------------------------------+--------------------------------------------------------------------------------------------------+
|
|
|
-| out vec4 **FOG** | If written to, blends final pixel color with FOG.rgb based on FOG.a. |
|
|
|
-+-----------------------------------+--------------------------------------------------------------------------------------------------+
|
|
|
-| out vec4 **RADIANCE** | If written to, blends environment map radiance with RADIANCE.rgb based on RADIANCE.a. |
|
|
|
-+-----------------------------------+--------------------------------------------------------------------------------------------------+
|
|
|
-| out vec4 **IRRADIANCE** | If written to, blends environment map IRRADIANCE with IRRADIANCE.rgb based on IRRADIANCE.a. |
|
|
|
-+-----------------------------------+--------------------------------------------------------------------------------------------------+
|
|
|
++-------------------------------------------+--------------------------------------------------------------------------------------------------+
|
|
|
+| Built-in | Description |
|
|
|
++-------------------------------------------+--------------------------------------------------------------------------------------------------+
|
|
|
+| in vec2 **VIEWPORT_SIZE** | Size of viewport (in pixels). |
|
|
|
++-------------------------------------------+--------------------------------------------------------------------------------------------------+
|
|
|
+| in vec4 **FRAGCOORD** | Coordinate of pixel center in screen space. ``xy`` specifies position in window, ``z`` |
|
|
|
+| | specifies fragment depth if ``DEPTH`` is not used. Origin is lower-left. |
|
|
|
++-------------------------------------------+--------------------------------------------------------------------------------------------------+
|
|
|
+| in bool **FRONT_FACING** | ``true`` if current face if front face. |
|
|
|
++-------------------------------------------+--------------------------------------------------------------------------------------------------+
|
|
|
+| in vec3 **VIEW** | Vector from camera to fragment position (in view space). |
|
|
|
++-------------------------------------------+--------------------------------------------------------------------------------------------------+
|
|
|
+| in vec2 **UV** | UV that comes from vertex function. |
|
|
|
++-------------------------------------------+--------------------------------------------------------------------------------------------------+
|
|
|
+| in vec2 **UV2** | UV2 that comes from vertex function. |
|
|
|
++-------------------------------------------+--------------------------------------------------------------------------------------------------+
|
|
|
+| in vec4 **COLOR** | COLOR that comes from vertex function. |
|
|
|
++-------------------------------------------+--------------------------------------------------------------------------------------------------+
|
|
|
+| in vec2 **POINT_COORD** | Point Coordinate for drawing points with POINT_SIZE. |
|
|
|
++-------------------------------------------+--------------------------------------------------------------------------------------------------+
|
|
|
+| in bool **OUTPUT_IS_SRGB** | ``true`` when calculations happen in sRGB color space (``true`` in GLES2, ``false`` in GLES3). |
|
|
|
++-------------------------------------------+--------------------------------------------------------------------------------------------------+
|
|
|
+| in mat4 **WORLD_MATRIX** | Model space to world space transform. |
|
|
|
++-------------------------------------------+--------------------------------------------------------------------------------------------------+
|
|
|
+| in mat3 **WORLD_NORMAL_MATRIX** | |
|
|
|
++-------------------------------------------+--------------------------------------------------------------------------------------------------+
|
|
|
+| in mat4 **INV_CAMERA_MATRIX** | World space to view space transform. |
|
|
|
++-------------------------------------------+--------------------------------------------------------------------------------------------------+
|
|
|
+| in mat4 **CAMERA_MATRIX** | View space to world space transform. |
|
|
|
++-------------------------------------------+--------------------------------------------------------------------------------------------------+
|
|
|
+| in mat4 **PROJECTION_MATRIX** | View space to clip space transform. |
|
|
|
++-------------------------------------------+--------------------------------------------------------------------------------------------------+
|
|
|
+| in mat4 **INV_PROJECTION_MATRIX** | Clip space to view space transform. |
|
|
|
++-------------------------------------------+--------------------------------------------------------------------------------------------------+
|
|
|
+| in vec3 **VERTEX** | Vertex that comes from vertex function (default, in view space). |
|
|
|
++-------------------------------------------+--------------------------------------------------------------------------------------------------+
|
|
|
+| in sampler2D **SCREEN_TEXTURE** | Built-in Texture for reading from the screen. Mipmaps contain increasingly blurred copies. |
|
|
|
++-------------------------------------------+--------------------------------------------------------------------------------------------------+
|
|
|
+| in vec2 **SCREEN_UV** | Screen UV coordinate for current pixel. |
|
|
|
++-------------------------------------------+--------------------------------------------------------------------------------------------------+
|
|
|
+| in sampler2D **NORMAL_ROUGHNESS_TEXTURE** | |
|
|
|
++-------------------------------------------+--------------------------------------------------------------------------------------------------+
|
|
|
+| in sampler2D **DEPTH_TEXTURE** | Built-in Texture for reading depth from the screen. Must convert to linear using INV_PROJECTION. |
|
|
|
++-------------------------------------------+--------------------------------------------------------------------------------------------------+
|
|
|
+| inout float **DEPTH** | Custom depth value (0..1). |
|
|
|
++-------------------------------------------+--------------------------------------------------------------------------------------------------+
|
|
|
+| inout vec3 **NORMAL** | Normal that comes from vertex function (default, in view space). |
|
|
|
++-------------------------------------------+--------------------------------------------------------------------------------------------------+
|
|
|
+| inout vec3 **TANGENT** | Tangent that comes from vertex function. |
|
|
|
++-------------------------------------------+--------------------------------------------------------------------------------------------------+
|
|
|
+| inout vec3 **BINORMAL** | Binormal that comes from vertex function. |
|
|
|
++-------------------------------------------+--------------------------------------------------------------------------------------------------+
|
|
|
+| inout vec3 **NORMAL_MAP** | Set normal here if reading normal from a texture instead of NORMAL. |
|
|
|
++-------------------------------------------+--------------------------------------------------------------------------------------------------+
|
|
|
+| inout float **NORMAL_MAP_DEPTH** | Depth from variable above. Defaults to 1.0. |
|
|
|
++-------------------------------------------+--------------------------------------------------------------------------------------------------+
|
|
|
+| inout vec3 **ALBEDO** | Albedo (default white). |
|
|
|
++-------------------------------------------+--------------------------------------------------------------------------------------------------+
|
|
|
+| inout float **ALPHA** | Alpha (0..1); if written to, the material will go to the transparent pipeline. |
|
|
|
++-------------------------------------------+--------------------------------------------------------------------------------------------------+
|
|
|
+| inout float **ALPHA_SCISSOR_THRESHOLD** | If written to, values below a certain amount of alpha are discarded. |
|
|
|
++-------------------------------------------+--------------------------------------------------------------------------------------------------+
|
|
|
+| inout float **ALPHA_HASH_SCALE** | |
|
|
|
++-------------------------------------------+--------------------------------------------------------------------------------------------------+
|
|
|
+| inout float **ALPHA_ANTIALIASING_EDGE** | |
|
|
|
++-------------------------------------------+--------------------------------------------------------------------------------------------------+
|
|
|
+| inout vec2 **ALPHA_TEXTURE_COORDINATE** | |
|
|
|
++-------------------------------------------+--------------------------------------------------------------------------------------------------+
|
|
|
+| inout float **METALLIC** | Metallic (0..1). |
|
|
|
++-------------------------------------------+--------------------------------------------------------------------------------------------------+
|
|
|
+| inout float **SPECULAR** | Specular. Defaults to 0.5, best not to modify unless you want to change IOR. |
|
|
|
++-------------------------------------------+--------------------------------------------------------------------------------------------------+
|
|
|
+| inout float **ROUGHNESS** | Roughness (0..1). |
|
|
|
++-------------------------------------------+--------------------------------------------------------------------------------------------------+
|
|
|
+| inout float **RIM** | Rim (0..1). If used, Godot calculates rim lighting. |
|
|
|
++-------------------------------------------+--------------------------------------------------------------------------------------------------+
|
|
|
+| inout float **RIM_TINT** | Rim Tint, goes from 0 (white) to 1 (albedo). If used, Godot calculates rim lighting. |
|
|
|
++-------------------------------------------+--------------------------------------------------------------------------------------------------+
|
|
|
+| inout float **CLEARCOAT** | Small added specular blob. If used, Godot calculates Clearcoat. |
|
|
|
++-------------------------------------------+--------------------------------------------------------------------------------------------------+
|
|
|
+| inout float **CLEARCOAT_GLOSS** | Gloss of Clearcoat. If used, Godot calculates Clearcoat. |
|
|
|
++-------------------------------------------+--------------------------------------------------------------------------------------------------+
|
|
|
+| inout float **ANISOTROPY** | For distorting the specular blob according to tangent space. |
|
|
|
++-------------------------------------------+--------------------------------------------------------------------------------------------------+
|
|
|
+| inout vec2 **ANISOTROPY_FLOW** | Distortion direction, use with flowmaps. |
|
|
|
++-------------------------------------------+--------------------------------------------------------------------------------------------------+
|
|
|
+| inout float **SSS_STRENGTH** | Strength of Subsurface Scattering. If used, Subsurface Scattering will be applied to object. |
|
|
|
++-------------------------------------------+--------------------------------------------------------------------------------------------------+
|
|
|
+| inout vec4 **SSS_TRANSMITTANCE_COLOR** | |
|
|
|
++-------------------------------------------+--------------------------------------------------------------------------------------------------+
|
|
|
+| inout float **SSS_TRANSMITTANCE_DEPTH** | |
|
|
|
++-------------------------------------------+--------------------------------------------------------------------------------------------------+
|
|
|
+| inout float **SSS_TRANSMITTANCE_CURVE** | |
|
|
|
++-------------------------------------------+--------------------------------------------------------------------------------------------------+
|
|
|
+| inout float **SSS_TRANSMITTANCE_BOOST** | |
|
|
|
++-------------------------------------------+--------------------------------------------------------------------------------------------------+
|
|
|
+| inout vec3 **BACKLIGHT** | |
|
|
|
++-------------------------------------------+--------------------------------------------------------------------------------------------------+
|
|
|
+| inout float **AO** | Strength of Ambient Occlusion. For use with pre-baked AO. |
|
|
|
++-------------------------------------------+--------------------------------------------------------------------------------------------------+
|
|
|
+| inout float **AO_LIGHT_AFFECT** | How much AO affects lights (0..1; default 0). |
|
|
|
++-------------------------------------------+--------------------------------------------------------------------------------------------------+
|
|
|
+| inout vec3 **EMISSION** | Emission color (can go over 1,1,1 for HDR). |
|
|
|
++-------------------------------------------+--------------------------------------------------------------------------------------------------+
|
|
|
+| inout vec4 **FOG** | If written to, blends final pixel color with FOG.rgb based on FOG.a. |
|
|
|
++-------------------------------------------+--------------------------------------------------------------------------------------------------+
|
|
|
+| inout vec4 **RADIANCE** | If written to, blends environment map radiance with RADIANCE.rgb based on RADIANCE.a. |
|
|
|
++-------------------------------------------+--------------------------------------------------------------------------------------------------+
|
|
|
+| inout vec4 **IRRADIANCE** | If written to, blends environment map IRRADIANCE with IRRADIANCE.rgb based on IRRADIANCE.a. |
|
|
|
++-------------------------------------------+--------------------------------------------------------------------------------------------------+
|
|
|
|
|
|
Light built-ins
|
|
|
^^^^^^^^^^^^^^^
|
|
@@ -311,57 +345,57 @@ If you want the lights to add together, add the light contribution to ``DIFFUSE_
|
|
|
**Rendering > Quality > Shading > Force Vertex Shading** is enabled in the
|
|
|
Project Settings. (It's enabled by default on mobile platforms.)
|
|
|
|
|
|
-+-----------------------------------+-----------------------------------------------------+
|
|
|
-| Built-in | Description |
|
|
|
-+===================================+=====================================================+
|
|
|
-| in float **TIME** | Elapsed total time in seconds. |
|
|
|
-+-----------------------------------+-----------------------------------------------------+
|
|
|
-| in vec2 **VIEWPORT_SIZE** | Size of viewport (in pixels). |
|
|
|
-+-----------------------------------+-----------------------------------------------------+
|
|
|
-| in vec4 **FRAGCOORD** | Coordinate of pixel center in screen space. |
|
|
|
-| | ``xy`` specifies position in window, ``z`` |
|
|
|
-| | specifies fragment depth if ``DEPTH`` is not used. |
|
|
|
-| | Origin is lower-left. |
|
|
|
-+-----------------------------------+-----------------------------------------------------+
|
|
|
-| in mat4 **WORLD_MATRIX** | Model space to world space transform. |
|
|
|
-+-----------------------------------+-----------------------------------------------------+
|
|
|
-| in mat4 **INV_CAMERA_MATRIX** | World space to view space transform. |
|
|
|
-+-----------------------------------+-----------------------------------------------------+
|
|
|
-| in mat4 **CAMERA_MATRIX** | View space to world space transform. |
|
|
|
-+-----------------------------------+-----------------------------------------------------+
|
|
|
-| in mat4 **PROJECTION_MATRIX** | View space to clip space transform. |
|
|
|
-+-----------------------------------+-----------------------------------------------------+
|
|
|
-| in mat4 **INV_PROJECTION_MATRIX** | Clip space to view space transform. |
|
|
|
-+-----------------------------------+-----------------------------------------------------+
|
|
|
-| in vec3 **NORMAL** | Normal vector, in view space. |
|
|
|
-+-----------------------------------+-----------------------------------------------------+
|
|
|
-| in vec2 **UV** | UV that comes from vertex function. |
|
|
|
-+-----------------------------------+-----------------------------------------------------+
|
|
|
-| in vec2 **UV2** | UV2 that comes from vertex function. |
|
|
|
-+-----------------------------------+-----------------------------------------------------+
|
|
|
-| in vec3 **VIEW** | View vector, in view space. |
|
|
|
-+-----------------------------------+-----------------------------------------------------+
|
|
|
-| in vec3 **LIGHT** | Light Vector, in view space. |
|
|
|
-+-----------------------------------+-----------------------------------------------------+
|
|
|
-| in vec3 **ATTENUATION** | Attenuation based on distance or shadow. |
|
|
|
-+-----------------------------------+-----------------------------------------------------+
|
|
|
-| in bool **OUTPUT_IS_SRGB** | ``true`` when calculations happen in sRGB color |
|
|
|
-| | space (``true`` in GLES2, ``false`` in GLES3). |
|
|
|
-+-----------------------------------+-----------------------------------------------------+
|
|
|
-| in vec3 **ALBEDO** | Base albedo. |
|
|
|
-+-----------------------------------+-----------------------------------------------------+
|
|
|
-| in vec3 **LIGHT_COLOR** | Color of light multiplied by energy. |
|
|
|
-+-----------------------------------+-----------------------------------------------------+
|
|
|
-| out float **ALPHA** | Alpha (0..1); if written to, the material will go |
|
|
|
-| | to the transparent pipeline. |
|
|
|
-+-----------------------------------+-----------------------------------------------------+
|
|
|
-| in float **METALLIC** | Metallic. |
|
|
|
-+-----------------------------------+-----------------------------------------------------+
|
|
|
-| in float **ROUGHNESS** | Roughness. |
|
|
|
-+-----------------------------------+-----------------------------------------------------+
|
|
|
-| in vec3 **TRANSMISSION** | Transmission mask from fragment function. |
|
|
|
-+-----------------------------------+-----------------------------------------------------+
|
|
|
-| out vec3 **DIFFUSE_LIGHT** | Diffuse light result. |
|
|
|
-+-----------------------------------+-----------------------------------------------------+
|
|
|
-| out vec3 **SPECULAR_LIGHT** | Specular light result. |
|
|
|
-+-----------------------------------+-----------------------------------------------------+
|
|
|
++-----------------------------------+----------------------------------------------------+
|
|
|
+| Built-in | Description |
|
|
|
++-----------------------------------+----------------------------------------------------+
|
|
|
+| in vec2 **VIEWPORT_SIZE** | Size of viewport (in pixels). |
|
|
|
++-----------------------------------+----------------------------------------------------+
|
|
|
+| in vec4 **FRAGCOORD** | Coordinate of pixel center in screen space. |
|
|
|
+| | ``xy`` specifies position in window, ``z`` |
|
|
|
+| | specifies fragment depth if ``DEPTH`` is not used. |
|
|
|
+| | Origin is lower-left. |
|
|
|
++-----------------------------------+----------------------------------------------------+
|
|
|
+| in mat4 **WORLD_MATRIX** | Model space to world space transform. |
|
|
|
++-----------------------------------+----------------------------------------------------+
|
|
|
+| in mat4 **CAMERA_MATRIX** | View space to world space transform. |
|
|
|
++-----------------------------------+----------------------------------------------------+
|
|
|
+| in mat4 **INV_CAMERA_MATRIX** | World space to view space transform. |
|
|
|
++-----------------------------------+----------------------------------------------------+
|
|
|
+| in mat4 **PROJECTION_MATRIX** | View space to clip space transform. |
|
|
|
++-----------------------------------+----------------------------------------------------+
|
|
|
+| in mat4 **INV_PROJECTION_MATRIX** | Clip space to view space transform. |
|
|
|
++-----------------------------------+----------------------------------------------------+
|
|
|
+| in vec3 **NORMAL** | Normal vector, in view space. |
|
|
|
++-----------------------------------+----------------------------------------------------+
|
|
|
+| in vec2 **UV** | UV that comes from vertex function. |
|
|
|
++-----------------------------------+----------------------------------------------------+
|
|
|
+| in vec2 **UV2** | UV2 that comes from vertex function. |
|
|
|
++-----------------------------------+----------------------------------------------------+
|
|
|
+| in vec3 **VIEW** | View vector, in view space. |
|
|
|
++-----------------------------------+----------------------------------------------------+
|
|
|
+| in vec3 **LIGHT** | Light Vector, in view space. |
|
|
|
++-----------------------------------+----------------------------------------------------+
|
|
|
+| in vec3 **LIGHT_COLOR** | Color of light multiplied by energy. |
|
|
|
++-----------------------------------+----------------------------------------------------+
|
|
|
+| in float **ATTENUATION** | Attenuation based on distance or shadow. |
|
|
|
++-----------------------------------+----------------------------------------------------+
|
|
|
+| in vec3 **SHADOW_ATTENUATION** | |
|
|
|
++-----------------------------------+----------------------------------------------------+
|
|
|
+| in vec3 **ALBEDO** | Base albedo. |
|
|
|
++-----------------------------------+----------------------------------------------------+
|
|
|
+| in vec3 **BACKLIGHT** | |
|
|
|
++-----------------------------------+----------------------------------------------------+
|
|
|
+| in float **METALLIC** | Metallic. |
|
|
|
++-----------------------------------+----------------------------------------------------+
|
|
|
+| in float **ROUGHNESS** | Roughness. |
|
|
|
++-----------------------------------+----------------------------------------------------+
|
|
|
+| in bool **OUTPUT_IS_SRGB** | ``true`` when calculations happen in sRGB color |
|
|
|
+| | space (``true`` in GLES2, ``false`` in GLES3). |
|
|
|
++-----------------------------------+----------------------------------------------------+
|
|
|
+| inout vec3 **DIFFUSE_LIGHT** | Diffuse light result. |
|
|
|
++-----------------------------------+----------------------------------------------------+
|
|
|
+| inout vec3 **SPECULAR_LIGHT** | Specular light result. |
|
|
|
++-----------------------------------+----------------------------------------------------+
|
|
|
+| inout float **ALPHA** | Alpha (0..1); if written to, the material will go |
|
|
|
+| | to the transparent pipeline. |
|
|
|
++-----------------------------------+----------------------------------------------------+
|