:github_url: hide .. Generated automatically by doc/tools/make_rst.py in Godot's source tree. .. DO NOT EDIT THIS FILE, but the ShaderMaterial.xml source instead. .. The source is found in doc/classes or modules//doc_classes. .. _class_ShaderMaterial: ShaderMaterial ============== **Inherits:** :ref:`Material` **<** :ref:`Resource` **<** :ref:`Reference` **<** :ref:`Object` A material that uses a custom :ref:`Shader` program. Description ----------- A material that uses a custom :ref:`Shader` program to render either items to screen or process particles. You can create multiple materials for the same shader but configure different values for the uniforms defined in the shader. **Note:** Due to a renderer limitation, emissive ``ShaderMaterial``\ s cannot emit light when used in a :ref:`GIProbe`. Only emissive :ref:`SpatialMaterial`\ s can emit light in a :ref:`GIProbe`. Tutorials --------- - :doc:`../tutorials/shaders/index` Properties ---------- +-----------------------------+-----------------------------------------------------+ | :ref:`Shader` | :ref:`shader` | +-----------------------------+-----------------------------------------------------+ Methods ------- +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Variant` | :ref:`get_shader_param` **(** :ref:`String` param **)** |const| | +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`property_can_revert` **(** :ref:`String` name **)** | +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Variant` | :ref:`property_get_revert` **(** :ref:`String` name **)** | +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`set_shader_param` **(** :ref:`String` param, :ref:`Variant` value **)** | +-------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------+ Property Descriptions --------------------- .. _class_ShaderMaterial_property_shader: - :ref:`Shader` **shader** +----------+-------------------+ | *Setter* | set_shader(value) | +----------+-------------------+ | *Getter* | get_shader() | +----------+-------------------+ The :ref:`Shader` program used to render this material. Method Descriptions ------------------- .. _class_ShaderMaterial_method_get_shader_param: - :ref:`Variant` **get_shader_param** **(** :ref:`String` param **)** |const| Returns the current value set for this material of a uniform in the shader. ---- .. _class_ShaderMaterial_method_property_can_revert: - :ref:`bool` **property_can_revert** **(** :ref:`String` name **)** Returns ``true`` if the property identified by ``name`` can be reverted to a default value. ---- .. _class_ShaderMaterial_method_property_get_revert: - :ref:`Variant` **property_get_revert** **(** :ref:`String` name **)** Returns the default value of the material property with given ``name``. ---- .. _class_ShaderMaterial_method_set_shader_param: - void **set_shader_param** **(** :ref:`String` param, :ref:`Variant` value **)** Changes the value set for this material of a uniform in the shader. **Note:** ``param`` must match the name of the uniform in the code exactly. .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)` .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)` .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`