Files
godot-docs/classes/class_shadermaterial.rst

116 lines
4.4 KiB
ReStructuredText

:github_url: hide
.. DO NOT EDIT THIS FILE!!!
.. Generated automatically from Godot engine sources.
.. Generator: https://github.com/godotengine/godot/tree/master/doc/tools/make_rst.py.
.. XML source: https://github.com/godotengine/godot/tree/master/doc/classes/ShaderMaterial.xml.
.. _class_ShaderMaterial:
ShaderMaterial
==============
**Inherits:** :ref:`Material<class_Material>` **<** :ref:`Resource<class_Resource>` **<** :ref:`RefCounted<class_RefCounted>` **<** :ref:`Object<class_Object>`
A material that uses a custom :ref:`Shader<class_Shader>` program.
.. rst-class:: classref-introduction-group
Description
-----------
A material that uses a custom :ref:`Shader<class_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.
.. rst-class:: classref-introduction-group
Tutorials
---------
- :doc:`Shaders documentation index <../tutorials/shaders/index>`
.. rst-class:: classref-reftable-group
Properties
----------
.. table::
:widths: auto
+-----------------------------+-----------------------------------------------------+
| :ref:`Shader<class_Shader>` | :ref:`shader<class_ShaderMaterial_property_shader>` |
+-----------------------------+-----------------------------------------------------+
.. rst-class:: classref-reftable-group
Methods
-------
.. table::
:widths: auto
+-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| :ref:`Variant<class_Variant>` | :ref:`get_shader_parameter<class_ShaderMaterial_method_get_shader_parameter>` **(** :ref:`StringName<class_StringName>` param **)** |const| |
+-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| void | :ref:`set_shader_parameter<class_ShaderMaterial_method_set_shader_parameter>` **(** :ref:`StringName<class_StringName>` param, :ref:`Variant<class_Variant>` value **)** |
+-------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
Property Descriptions
---------------------
.. _class_ShaderMaterial_property_shader:
.. rst-class:: classref-property
:ref:`Shader<class_Shader>` **shader**
.. rst-class:: classref-property-setget
- void **set_shader** **(** :ref:`Shader<class_Shader>` value **)**
- :ref:`Shader<class_Shader>` **get_shader** **(** **)**
The :ref:`Shader<class_Shader>` program used to render this material.
.. rst-class:: classref-section-separator
----
.. rst-class:: classref-descriptions-group
Method Descriptions
-------------------
.. _class_ShaderMaterial_method_get_shader_parameter:
.. rst-class:: classref-method
:ref:`Variant<class_Variant>` **get_shader_parameter** **(** :ref:`StringName<class_StringName>` param **)** |const|
Returns the current value set for this material of a uniform in the shader.
.. rst-class:: classref-item-separator
----
.. _class_ShaderMaterial_method_set_shader_parameter:
.. rst-class:: classref-method
void **set_shader_parameter** **(** :ref:`StringName<class_StringName>` param, :ref:`Variant<class_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.)`
.. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
.. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`
.. |operator| replace:: :abbr:`operator (This method describes a valid operator to use with this type as left-hand operand.)`