Up to date
This page is up to date for Godot 4.2
.
If you still find outdated information, please open an issue.
Shader¶
Inherits: Resource < RefCounted < Object
Inherited By: VisualShader
A shader implemented in the Godot shading language.
Description¶
A custom shader program implemented in the Godot shading language, saved with the .gdshader
extension.
This class is used by a ShaderMaterial and allows you to write your own custom behavior for rendering visual items or updating particle information. For a detailed explanation and usage, please see the tutorials linked below.
Tutorials¶
Properties¶
|
Methods¶
get_default_texture_parameter ( StringName name, int index=0 ) const |
|
get_mode ( ) const |
|
get_shader_uniform_list ( bool get_groups=false ) |
|
void |
set_default_texture_parameter ( StringName name, Texture2D texture, int index=0 ) |
Enumerations¶
enum Mode:
Mode MODE_SPATIAL = 0
Mode used to draw all 3D objects.
Mode MODE_CANVAS_ITEM = 1
Mode used to draw all 2D objects.
Mode MODE_PARTICLES = 2
Mode used to calculate particle information on a per-particle basis. Not used for drawing.
Mode MODE_SKY = 3
Mode used for drawing skies. Only works with shaders attached to Sky objects.
Mode MODE_FOG = 4
Mode used for setting the color and density of volumetric fog effect.
Property Descriptions¶
String code = ""
Returns the shader's code as the user has written it, not the full generated code used internally.
Method Descriptions¶
Texture2D get_default_texture_parameter ( StringName name, int index=0 ) const
Returns the texture that is set as default for the specified parameter.
Note: name
must match the name of the uniform in the code exactly.
Note: If the sampler array is used use index
to access the specified texture.
Mode get_mode ( ) const
Returns the shader mode for the shader.
Array get_shader_uniform_list ( bool get_groups=false )
Get the list of shader uniforms that can be assigned to a ShaderMaterial, for use with ShaderMaterial.set_shader_parameter and ShaderMaterial.get_shader_parameter. The parameters returned are contained in dictionaries in a similar format to the ones returned by Object.get_property_list.
If argument get_groups
is true, parameter grouping hints will be provided.
void set_default_texture_parameter ( StringName name, Texture2D texture, int index=0 )
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: name
must match the name of the uniform in the code exactly.
Note: If the sampler array is used use index
to access the specified texture.