ShaderMaterial

Eredita: Material < Resource < RefCounted < Object

Un materiale definito da un programma Shader personalizzato e dai valori dei relativi parametri di shader.

Descrizione

Un materiale che utilizza un programma Shader personalizzato per il rendering di elementi visivi (elementi canvas, mesh, cieli, nebbia) o per elaborare particelle. Rispetto ad altri materiali, ShaderMaterial offre un controllo più approfondito sul codice shader generato. Per ulteriori informazioni, consulta l'indice della documentazione degli shader qui sotto.

Più ShaderMaterial possono usare lo stesso shader e configurare valori diversi per le uniformi nello shader.

Nota: Per motivi di prestazioni, il segnale Resource.changed viene emesso solo quando cambia Resource.resource_name. Solo nell'editor, viene emesso anche per le modifiche di shader.

Tutorial

Proprietà

Shader

shader

Metodi

Variant

get_shader_parameter(param: StringName) const

void

set_shader_parameter(param: StringName, value: Variant)


Descrizioni delle proprietà

Shader shader 🔗

Il programma Shader utilizzato per il rendering di questo materiale.


Descrizioni dei metodi

Variant get_shader_parameter(param: StringName) const 🔗

Restituisce il valore attuale impostato per questo materiale di un'uniforme nello shader.


void set_shader_parameter(param: StringName, value: Variant) 🔗

Modifica il valore impostato per questo materiale di un'uniforme nello shader.

Nota: param è sensibile alle maiuscole e alle minuscole e deve corrispondere esattamente al nome dell'uniforme nel codice (non al nome in maiuscolo nell'ispettore).

Nota: Le modifiche all'uniforme dello shader saranno effettive su tutte le istanze che utilizzano questo ShaderMaterial. Per evitare ciò, usa le uniformi per istanza con GeometryInstance3D.set_instance_shader_parameter() o duplica la risorsa ShaderMaterial tramite Resource.duplicate(). Le uniformi per istanza consentono un migliore riutilizzo dello shader e sono quindi più veloci, pertanto dovrebbero essere preferite alla duplicazione dello ShaderMaterial quando possibile.