Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

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

Shader

shader

Méthodes

Variant

get_shader_parameter(param: StringName) const

void

set_shader_parameter(param: StringName, value: Variant)


Descriptions des propriétés

Shader shader 🔗

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) 🔗

Changes the value set for this material of a uniform in the shader.

Note: param is case-sensitive and must match the name of the uniform in the code exactly (not the capitalized name in the inspector).

Note: Changes to the shader uniform will be effective on all instances using this ShaderMaterial. To prevent this, use per-instance uniforms with CanvasItem.set_instance_shader_parameter(), GeometryInstance3D.set_instance_shader_parameter() or duplicate the ShaderMaterial resource using Resource.duplicate(). Per-instance uniforms allow for better shader reuse and are therefore faster, so they should be preferred over duplicating the ShaderMaterial when possible.