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.

Panoramica dei renderer

Vedi anche

Questa pagina offre una panoramica dei renderer di Godot, concentrandosi sulle differenze tra le loro funzionalità di rendering. Per maggiori dettagli tecnici sui renderer, consultare Architettura interna di rendering.

Introduzione

Godot 4 include tre renderer:

  • Forward+. Il renderer più avanzato, adatto solo a piattaforme desktop. Utilizzato come predefinito sulle piattaforme desktop. Questo renderer utilizza Vulkan, Direct3D 12 o Metal come driver di rendering e si basa sul backend RenderingDevice.

  • Mobile. Meno funzionalità, ma renderizza scene semplici più velocemente. Adatto a piattaforme mobili e desktop. Utilizzato come predefinito sulle piattaforme mobili. Questo renderer utilizza Vulkan, Direct3D 12 o Metal come driver di rendering e si basa sul backend RenderingDevice.

  • Compatibilità, talvolta chiamato Compatibilità GL. Il renderer meno avanzato, adatto a piattaforme desktop e mobili di fascia bassa. Utilizzato come predefinito sulla piattaforma web. Questo renderer utilizza OpenGL come driver di rendering.

Renderer, driver di rendering e RenderingDevice

Diagramma dei livelli di rendering. Il motore di rendering Compatibilità funziona con il driver OpenGL. I motori di rendering Forward+ e Mobile funzionano con RenderingDevice, che può utilizzare Vulkan, Direct3D 12 o Metal come driver di rendering.

I livelli di astrazione di rendering di Godot.

Il renderer, o metodo di rendering, determina quali funzionalità sono disponibili. Il più delle volte, questo è l'unico aspetto a cui bisogna pensare. I renderer di Godot sono Forward+, Mobile e Compatibility.

Il driver di rendering indica alla GPU cosa fare, tramite un'API grafica. Godot può utilizzare i driver di rendering OpenGL, Vulkan, Direct3D 12 e Metal. Non tutte le GPU supportano tutti i driver di rendering e, di conseguenza, non tutte le GPU supportano tutti i renderer. Vulkan, Direct3D 12 e Metal sono API grafiche moderne e di basso livello, che richiedono hardware più recente. OpenGL è un'API grafica più vecchia, che funziona sulla maggioranza dell'hardware.

RenderingDevice è un backend di rendering, un livello di astrazione tra il motore di rendering e il driver di rendering. È utilizzato dai motori di rendering Forward+ e Mobile, e questi motori di rendering sono talvolta chiamati "motori di rendering basati su RenderingDevice".

Scegliere un renderer

La scelta di un renderer è una questione complessa, che dipende dall'hardware e dalle piattaforme per cui si sviluppa. Come punto di partenza:

Scegli Forward+ se:

  • Stai sviluppando per desktop.

  • Hai hardware relativamente nuovo che supporta Vulkan, Direct3D 12 o Metal.

  • Stai sviluppando un gioco 3D.

  • Desideri utilizzare le funzionalità di rendering più avanzate.

Scegli Mobile se:

  • Stai sviluppando per dispositivi mobili più recenti, desktop XR o desktop.

  • Hai hardware relativamente nuovo che supporta Vulkan, Direct3D 12 o Metal.

  • Stai sviluppando un gioco 3D.

  • Desideri utilizzare funzionalità di rendering avanzate, soggette alle limitazioni dell'hardware mobile.

Scegli Compatibilità se:

  • Stai sviluppando per dispositivi mobili più vecchi, dispositivi desktop più vecchi o XR standalone. Il motore di rendering Compatibilità supporta la più ampia gamma di hardware.

  • Stai sviluppando per il web. In questo caso, Compatibilità è l'unica scelta.

  • Hai hardware più vecchio che non supporta Vulkan. In questo caso, Compatibilità è l'unica scelta.

  • Stai sviluppando un gioco 2D o 3D che non necessita di funzionalità di rendering avanzate.

  • Desideri le migliori prestazioni possibili su tutti i dispositivi e non hai bisogno di funzionalità di rendering avanzate.

Tieni presente che ogni gioco è unico e che questo è solo un punto di partenza. Ad esempio, potresti scegliere di utilizzare il motore di rendering Compatibilità anche hai la GPU più recente, così da supportare la più ampia gamma di hardware. Oppure potresti voler utilizzare il motore di rendering Forward+ per un gioco 2D, così da poter utilizzare funzionalità avanzate come gli shader di calcolo.

Passare da un renderer all'altro

Nell'editor, è sempre possibile passare da un renderer all'altro cliccando sul nome del renderer nell'angolo in alto a destra dell'editor.

Passare da un renderer all'altro potrebbe richiedere alcuni aggiustamenti manuali alla scena, all'illuminazione e all'ambiente, poiché ogni renderer è diverso. In generale, passare dal renderer Mobile a quello Forward+ richiederà meno aggiustamenti rispetto a passare dal renderer Compatibilità a quello Forward+ o Mobile.

A partire da Godot 4.4, quando si utilizza Forward+ o Mobile, se Vulkan non è supportato, il motore ricorrerà a Direct3D 12 e viceversa. Se anche il driver di riserva non è supportato, il motore ricorrerà a Compatibilità quando il backend di RenderingDevice non è supportato. Questo permette comunque di eseguire il progetto, ma potrebbe apparire diverso dal previsto a causa del renderer più limitato. È possibile disabilitare questo comportamento nelle impostazioni del progetto deselezionando Rendering > Dispositivo di rendering > Usa OpenGL 3 come riserva.

Confronto di funzionalità

Questo non è un elenco completo delle funzionalità di ciascun renderer. Se una funzionalità non è elencata qui, è disponibile in tutti i renderer, anche se potrebbe essere molto più veloce su alcuni. Per un elenco di tutte le funzionalità di Godot, consultare Elenco delle funzionalità.

L'hardware con supporto RenderingDevice è un hardware che può eseguire Vulkan, Direct3D 12 o Metal.

Confronto generale

Funzionalità

Compatibilità

Mobile

Forward+

Hardware richiesto

Più vecchi o di fascia bassa.

Più recente o di fascia alta. Richiede supporto per Vulkan, Direct3D 12 o Metal.

Più recente o di fascia alta. Richiede supporto per Vulkan, Direct3D 12 o Metal.

Funziona su nuovo hardware

✔️ Si.

✔️ Si.

✔️ Si.

Funziona su hardware vecchio e di fascia bassa

✔️ Si.

✔️ Sì, ma più lento di Compatibilità.

✔️ Sì, ma è il più lento tra tutti i renderer.

Funziona su hardware senza supporto per RenderingDevice

✔️ Si.

❌ No.

❌ No.

Piattaforme di destinazione

Dispositivi mobili, desktop di fascia bassa, web.

Dispositivi mobili, desktop.

Desktop.

Desktop

✔️ Si.

✔️ Si.

✔️ Si.

Mobile

✔️ Yes (fascia passa).

✔️ Si (fascia alta).

⚠️ Supportato, ma scarsamente ottimizzato. Utilizzare invece Mobile o Compatibilità.

XR

✔️ Sì. Consigliato per visori autonomi.

✔️ Sì. Consigliato per visori su desktop.

⚠️ Supportato, ma scarsamente ottimizzato. Utilizzare invece Mobile o Compatibilità.

Web

✔️ Si.

❌ No.

❌ No.

Giochi 2D

✔️ Si.

✔️ Sì, ma Compatibilità è solitamente sufficiente per il 2D.

✔️ Sì, ma Compatibilità è solitamente sufficiente per il 2D.

Giochi 3D

✔️ Si.

✔️ Si.

✔️ Si.

Set di funzionalità

Funzionalità 2D, e 3D di base.

La maggior parte delle funzionalità di rendering.

Tutte le funzionalità di rendering.

Funzionalità di rendering 2D

✔️ Si.

✔️ Si.

✔️ Si.

Funzionalità fondamentali di rendering 3D

✔️ Si.

✔️ Si.

✔️ Si.

Funzionalità avanzate di rendering

❌ No.

⚠️ Sì, limitato dall'hardware mobile.

✔️ Sì. Sono supportate tutte le funzionalità di rendering.

Nuove funzionalità

⚠️ Alcune nuove funzionalità di rendering vengono aggiunte a Compatibilità. Le funzionalità vengono aggiunte dopo Mobile e Forward+.

✔️ La maggior parte delle nuove funzionalità di rendering viene aggiunta a Mobile. Solitamente, le nuove funzionalità vengono introdotte insieme a Forward+.

✔️ Tutte le nuove funzionalità vengono aggiunte a Forward+. Essendo il fulcro dello sviluppo, Forward+ riceve le funzionalità per primo.

Costo di rendering

Basso costo di base, ma elevato costo di scalabilità.

Costo di base medio, e costo di scalabilità medio.

Costo di base più elevato, e costi di scalabilità bassi.

Driver di rendering

OpenGL.

Vulkan, Direct3D 12 o Metal.

Vulkan, Direct3D 12 o Metal.

Luci e ombre

Consultare Luci e ombre 3D per maggiori informazioni.

Funzionalità

Compatibilità

Mobile

Forward+

Approccio di illuminazione

Forward a singolo passaggio. Le luci con ombre utilizzano un approccio a passaggi multipli e una fusione meno accurata.

Forward a singolo passaggio.

Forward clusterizzato.

Massimo di OmniLight

8 per mesh. Si può aumentare.

8 per mesh, 256 per vista.

512 per cluster. Si può aumentare.

Massimo di SpotLight

8 per mesh. Si può aumentare.

8 per mesh, 256 per vista.

512 per cluster. Si può aumentare.

Massimo di DirectionalLight

8

8

8

PCSS per OmniLight e SpotLight

❌ Non supportato.

✔️ Supportato.

✔️ Supportato.

PCSS per DirectionalLight

❌ Non supportato.

❌ Non supportato.

✔️ Supportato.

Texture per i proiettori di luce

❌ Non supportato.

✔️ Supportato.

✔️ Supportato.

Illuminazione globale

Consulta Introduzione all'illuminazione globale per ulteriori informazioni.

Funzionalità

Compatibilità

Mobile

Forward+

ReflectionProbe

✔️ Supportato, 2 per mesh.

✔️ Supportato, 8 per mesh.

✔️ Supportato, illimitato.

LightmapGI

⚠️ È supportato il rendering delle lightmap elaborate. L'elaborazione richiede hardware con supporto per RenderingDevice.

✔️ Supportato.

✔️ Supportato.

VoxelGI

❌ Non supportato.

❌ Non supportato.

✔️ Supportato.

Illuminazione indiretta nello spazio dello schermo (SSIL)

❌ Non supportato.

❌ Non supportato.

✔️ Supportato.

Signed Distance Field Global Illumination (SDFGI)

❌ Non supportato.

❌ Non supportato.

✔️ Supportato.

Environment and post-processing

Consultare Environment and post-processing per maggiori informazioni.

Funzionalità

Compatibilità

Mobile

Forward+

Nebbia (profondità e altezza)

✔️ Supportato.

✔️ Supportato.

✔️ Supportato.

Volumetric Fog

❌ Non supportato.

❌ Non supportato.

✔️ Supportato.

Mappatura dei toni

✔️ Supportato.

✔️ Supportato.

✔️ Supportato.

Riflessi nello spazio dello schermo

❌ Non supportato.

❌ Non supportato.

✔️ Supportato.

Occlusione ambientale nello spazio dello schermo (SSAO)

✔️ Supportato.

❌ Non supportato.

✔️ Supportato.

Illuminazione indiretta nello spazio dello schermo (SSIL)

❌ Non supportato.

❌ Non supportato.

✔️ Supportato.

Signed Distance Field Global Illumination (SDFGI)

❌ Non supportato.

❌ Non supportato.

✔️ Supportato.

Bagliore

✔️ Supportato.

✔️ Supportato.

✔️ Supportato.

Aggiustamenti

✔️ Supportato.

✔️ Supportato.

✔️ Supportato.

Post-elaborazione personalizzata con quad a schermo intero

✔️ Supportato.

✔️ Supportato.

✔️ Supportato.

Post-elaborazione personalizzata con CompositorEffect

❌ Non supportato.

✔️ Supportato.

✔️ Supportato.

Antialiasing

Consultare Antialiasing 3D per maggiori informazioni.

Funzionalità

Compatibilità

Mobile

Forward+

MSAA 3D

✔️ Supportato.

✔️ Supportato.

✔️ Supportato.

MSAA 2D

❌ Non supportato.

✔️ Supportato.

✔️ Supportato.

TAA

❌ Non supportato.

❌ Non supportato.

✔️ Supportato.

FSR2

❌ Non supportato.

❌ Non supportato.

✔️ Supportato.

FXAA

❌ Non supportato.

✔️ Supportato.

✔️ Supportato.

SMAA

❌ Non supportato.

✔️ Supportato.

✔️ Supportato.

SSAA

✔️ Supportato.

✔️ Supportato.

✔️ Supportato.

Screen-space roughness limiter

❌ Non supportato.

✔️ Supportato.

✔️ Supportato.

Funzionalità di StandardMaterial

Consultare Standard Material 3D and ORM Material 3D per maggiori informazioni.

Funzionalità

Compatibilità

Mobile

Forward+

Subsurface scattering

❌ Non supportato.

❌ Non supportato.

✔️ Supportato.

Funzionalità di shader

Consultare Riferimento di shading per maggiori informazioni.

Funzionalità

Compatibilità

Mobile

Forward+

Texture di schermo

✔️ Supportato.

✔️ Supportato.

✔️ Supportato.

Texture di profondità

✔️ Supportato.

✔️ Supportato.

✔️ Supportato.

Buffer di normali/rugosità

❌ Non supportato.

❌ Non supportato.

✔️ Supportato.

Shader di calcolo

❌ Non supportato.

⚠️ Supportato, ma comporta una riduzione delle prestazioni sui dispositivi più vecchi.

✔️ Supportato.

Altre funzionalità

Funzionalità

Compatibilità

Mobile

Forward+

Precisione del colore

RGBA8. Gamma dinamica bassa, precisione media.

RGB10A2. Gamma dinamica media, precisione bassa. RGBA16F se HDR 2D è abilitato.

RGBA16F. Gamma dinamica alta, precisione buona.

Precisione della profondità

24 bit senza Z inverso. Precisione media.

24 bit con Z inverso. Precisione media.

32 bit con Z inverso. Precisione buona.

Debanding

❌ Non supportato.

✔️ Supportato.

✔️ Supportato.

Variable rate shading

❌ Non supportato.

✔️ Supportato.

✔️ Supportato.

Decalcomanie

❌ Non supportato.

✔️ Supportato.

✔️ Supportato.

Scie di particelle

❌ Non supportato.

✔️ Supportato.

✔️ Supportato.

Collisioni SDF di particelle

❌ Non supportato.

✔️ Supportato.

✔️ Supportato.

Sfocatura della profondità di campo

❌ Non supportato.

✔️ Supportato.

✔️ Supportato.

Modalità adattiva e mailbox di Vsync

❌ Non supportato.

✔️ Supportato.

✔️ Supportato.

Viewport con HDR in 2D

❌ Non supportato.

✔️ Supportato.

✔️ Supportato.

Output HDR

❌ Non supportato.

✔️ Supportato.

✔️ Supportato.

Accesso a RenderingDevice

❌ Non supportato.

✔️ Supportato.

✔️ Supportato.