ShaderMaterial
Hérite de : Material < Resource < RefCounted < Object
Un matériau défini par un programme Shader personnalisé et les valeurs des paramètres du shader.
Description
Un matériau qui utilise un programme Shader personnalisé pour rendre des objets visuels (éléments de canevas, maillage, ciel, brouillard) ou pour traiter des particules. Comparé à d'autres matériaux, ShaderMaterial donne un contrôle plus profond sur le code du shader généré. Pour plus d'informations, consultez l'index de documentation des shaders ci-dessous.
Plusieurs ShaderMaterials peuvent utiliser le même shaderet configurer des valeurs différentes pour les uniforms du shader.
Note : Pour des raisons de performances, le Resource.changed n'est émis que lorsque le nom Resource.resource_name change. Seulement dans l'éditeur, il est également émis pour les changements du shader.
Tutoriels
Propriétés
Méthodes
get_shader_parameter(param: StringName) const |
|
void |
set_shader_parameter(param: StringName, value: Variant) |
Descriptions des propriétés
Le programme Shader utilisé pour le rendu de ce matériau.
Descriptions des méthodes
Variant get_shader_parameter(param: StringName) const 🔗
Renvoie la valeur actuelle définie pour ce matériau d'un uniform du shader.
void set_shader_parameter(param: StringName, value: Variant) 🔗
Change la valeur définie pour ce matériau d'un uniform du shader.
Note : param est sensible à la casse et doit correspondre exactement au nom de l'uniform dans le code (pas le nom capitalisé dans l'inspecteur).
Note : Les changements apportés à l'uniform du shader seront effectifs dans toutes les instances utilisant ce ShaderMaterial. Pour éviter cela, utilisez des uniforms par instance avec GeometryInstance3D.set_instance_shader_parameter() ou dupliquez la ressource ShaderMaterial en utilisant Resource.duplicate(). Les uniforms par instance permettent une meilleure réutilisation du shader et sont donc plus rapides, de sorte qu'ils devraient être préférés plutôt que la duplication du ShaderMaterial si possible.