Shader

Inherits: Resource < Reference < Object

Inherited By: VisualShader

A custom shader program.

Description

This class allows you to define a custom shader program that can be used by a ShaderMaterial. Shaders allow you to write your own custom behavior for rendering objects or updating particle information. For a detailed explanation and usage, please see the tutorials linked below.

Properties

String code ""
String custom_defines "#define MAX_LIGHT_DATA_STRUCTS 409#define MAX_FORWARD_LIGHTS 8#define MAX_REFLECTION_DATA_STRUCTS 455#define MAX_SKELETON_BONES 1365"

Methods

Texture get_default_texture_param ( String param ) const
Mode get_mode ( ) const
bool has_param ( String name ) const
void set_default_texture_param ( String param, Texture texture )

Enumerations

enum Mode:

  • MODE_SPATIAL = 0 --- Mode used to draw all 3D objects.
  • MODE_CANVAS_ITEM = 1 --- Mode used to draw all 2D objects.
  • MODE_PARTICLES = 2 --- Mode used to calculate particle information on a per-particle basis. Not used for drawing.

Property Descriptions

Default ""
Setter set_code(value)
Getter get_code()

Returns the shader's code as the user has written it, not the full generated code used internally.


Default "#define MAX_LIGHT_DATA_STRUCTS 409#define MAX_FORWARD_LIGHTS 8#define MAX_REFLECTION_DATA_STRUCTS 455#define MAX_SKELETON_BONES 1365"
Setter set_custom_defines(value)
Getter get_custom_defines()

Returns the shader's custom defines. Custom defines can be used in Godot to add GLSL preprocessor directives (e.g: extensions) required for the shader logic.

Note: Custom defines are not validated by the Godot shader parser, so care should be taken when using them.

Method Descriptions

Returns the texture that is set as default for the specified parameter.

Note: param must match the name of the uniform in the code exactly.


  • Mode get_mode ( ) const

Returns the shader mode for the shader, either MODE_CANVAS_ITEM, MODE_SPATIAL or MODE_PARTICLES.


Returns true if the shader has this param defined as a uniform in its code.

Note: param must match the name of the uniform in the code exactly.


  • void set_default_texture_param ( String param, Texture texture )

Sets the default texture to be used with a texture uniform. The default is used if a texture is not set in the ShaderMaterial.

Note: param must match the name of the uniform in the code exactly.