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.

Material

Eredita: Resource < RefCounted < Object

Ereditato da: BaseMaterial3D, BlitMaterial, CanvasItemMaterial, FogMaterial, PanoramaSkyMaterial, ParticleProcessMaterial, PhysicalSkyMaterial, PlaceholderMaterial, ProceduralSkyMaterial, ShaderMaterial

Classe di base virtuale per applicare proprietà visive a un oggetto, come colore e rugosità.

Descrizione

Il Material è una risorsa di base utilizzata per colorare e ombreggiare la geometria. Tutti i materiali ereditano da essa e quasi tutti i nodi derivati da VisualInstance3D hanno un Material. Alcuni flag e parametri sono condivisi tra tutti i tipi di materiale e sono configurati qui.

È importante che tu possa ereditare da Material per creare il tuo tipo di materiale personalizzato tramite script o GDExtension.

Tutorial

Proprietà

Material

next_pass

int

render_priority

Metodi

bool

_can_do_next_pass() virtual const

bool

_can_use_render_priority() virtual const

Mode

_get_shader_mode() virtual required const

RID

_get_shader_rid() virtual required const

Resource

create_placeholder() const

void

inspect_native_shader_code()


Costanti

RENDER_PRIORITY_MAX = 127 🔗

Il valore massimo per il parametro render_priority.

RENDER_PRIORITY_MIN = -128 🔗

Il valore minimo per il parametro render_priority.


Descrizioni delle proprietà

Material next_pass 🔗

Imposta il Material da utilizzare per il passaggio successivo. Questo renderizza nuovamente l'oggetto utilizzando un materiale diverso.

Nota: I materiali next_pass non vengono necessariamente disegnati immediatamente dopo il Material sorgente. L'ordine di disegno è determinato dalle proprietà del materiale, render_priority e dalla distanza dalla telecamera.

Nota: Questo si applica solo a StandardMaterial3D e ShaderMaterial con tipo "Spatial".


int render_priority 🔗

  • void set_render_priority(value: int)

  • int get_render_priority()

Imposta la priorità di rendering per gli oggetti nelle scene 3D. Gli oggetti con priorità più alta saranno ordinati prima di quelli con priorità più bassa. In altre parole, tutti gli oggetti con un render_priority di 1 saranno renderizzati prima di tutti gli oggetti con un render_priority di 0.

Nota: Questo si applica solo ai StandardMaterial3D e ShaderMaterial con tipo "Spatial".

Nota: Questo non avrà alcun impatto sul modo in cui gli oggetti trasparenti sono ordinati rispetto agli oggetti opachi o sul modo in cui le mesh dinamiche sono ordinate rispetto ad altre mesh opache. Ciò perché tutti gli oggetti trasparenti sono disegnati dopo tutti gli oggetti opachi e tutte le mesh opache dinamiche sono disegnate prima di altre mesh opache.


Descrizioni dei metodi

bool _can_do_next_pass() virtual const 🔗

Esposto solo per essere sovrascritto. Non puoi chiamare questa funzione direttamente. Utilizzato internamente per determinare se next_pass debba essere mostrato nell'editor o meno.


bool _can_use_render_priority() virtual const 🔗

Esposto solo per essere sovrascritto. Non puoi chiamare questa funzione direttamente. Utilizzato internamente per determinare se render_priority debba essere visualizzato o meno nell'editor.


Mode _get_shader_mode() virtual required const 🔗

Esposto solo per essere sovrascritto. Non puoi chiamare questa funzione direttamente. Utilizzato internamente da vari strumenti dell'editor.


RID _get_shader_rid() virtual required const 🔗

Esposto solo per essere sovrascritto. Non puoi chiamare questa funzione direttamente. Utilizzato internamente da vari strumenti dell'editor. Utilizzato per accedere al RID dello Shader del Material.


Resource create_placeholder() const 🔗

Crea una versione segnaposto di questa risorsa (PlaceholderMaterial).


void inspect_native_shader_code() 🔗

Disponibile solo quando è in esecuzione nell'editor. Apre un popup che visualizza il codice dello shader generato, incluse tutte le varianti e il codice dello shader interno. Vedi anche Shader.inspect_native_shader_code().