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.

Visão geral dos renderizadores

Ver também

Esta página fornece uma visão geral dos renderizadores do Godot, focando nas diferenças entre seus recursos de renderização. Para mais detalhes técnicos sobre os renderizadores, veja Arquitetura interna de renderização.

Introdução

O Godot 4 inclui três renderizadores:

  • Avançado+. O renderizador mais avançado, adequado para plataformas desktop. Usado por padrão em plataformas desktop. Este renderizador usa Vulkan, Direct3D 12, ou Metal como driver de renderização, e utiliza o backend RenderingDevice.

  • Mobile. Menos recursos, mas renderiza cenas simples mais rapidamente. Adequado para plataformas desktop e móveis. Usado por padrão em plataformas móveis. Este renderizador usa Vulkan, Direct3D 12 ou Metal como driver de renderização, e utiliza o backend RenderingDevice.

  • Compatibilidade, por vezes chamado de Compatibilidade GL. O backend gráfico menos avançado, adequado para plataformas móveis e computadores com baixo desempenho. Usado por padrão na plataforma web. Este renderizador usa OpenGL como driver de renderização.

Renderizadores, drivers de renderização e RenderingDevice

Diagrama das camadas de renderização. O renderizador Compatibility roda sobre o driver OpenGL. Os renderizadores Forward+ e Mobile rodam sobre a RenderingDevice, que pode usar Vulkan, Direct3D 12 ou Metal como driver de renderização.

As camadas de abstração de renderização do Godot.

O renderizador, ou método de renderização, determina quais recursos estão disponíveis. Na maioria das vezes, essa é a única coisa com a qual você precisa se preocupar. Os renderizadores do Godot são Forward+, Mobile e Compatibility.

The rendering driver tells the GPU what to do, using a graphics API. Godot can use the OpenGL, Vulkan, Direct3D 12, and Metal rendering drivers. Not every GPU supports every rendering driver, and therefore not every GPU supports all renderers. Vulkan, Direct3D 12, and Metal are modern, low-level graphics APIs, and require newer hardware. OpenGL is an older graphics API that runs on most hardware.

O RenderingDevice é um backend de renderização, uma camada de abstração entre o renderizador e o driver de renderização. Ele é usado pelos renderizadores Forward+ e Mobile, e esses renderizadores às vezes são chamados de "renderizadores baseados em RenderingDevice".

Escolhendo um renderizador

Choosing a renderer is a complex question, and depends on your hardware and which platforms you are developing for. As a starting point:

Escolha Forward+ se:

  • Você está desenvolvendo para desktop.

  • Você possui hardware relativamente novo que suporta Vulkan, Direct3D 12 ou Metal.

  • Você está desenvolvendo um jogo 3D.

  • Você deseja usar os recursos de renderização mais avançados.

Escolha Mobile se:

  • You are developing for newer mobile devices, desktop XR, standalone XR, or desktop.

  • Você possui hardware relativamente novo que suporta Vulkan, Direct3D 12 ou Metal.

  • Você está desenvolvendo um jogo 3D.

  • Você deseja usar recursos avançados de renderização, sujeito às limitações do hardware móvel.

Escolha Compatibilidade se:

  • You are developing for older mobile devices, or older desktop devices. The Compatibility renderer supports the widest range of hardware.

  • Você está desenvolvendo para a web. Neste caso, o Compatibility é a única escolha.

  • Você tem hardware antigo que não suporta Vulkan. Neste caso, o Compatibility é a única escolha.

  • Você está desenvolvendo um jogo 2D, ou um jogo 3D que não precisa de recursos avançados de renderização.

  • Você deseja o melhor desempenho possível em todos os dispositivos e não precisa de recursos avançados de renderização.

Tenha em mente que cada jogo é único e este é apenas um ponto de partida. Por exemplo, você pode optar por usar o renderizador Compatibility mesmo tendo a GPU mais recente, para que possa suportar a maior variedade de hardware. Ou pode querer usar o renderizador Forward+ para um jogo 2D, para poder usar recursos avançados como compute shaders.

Alternando entre renderizadores

No editor, você sempre pode alternar entre renderizadores clicando no nome do renderizador no canto superior direito do editor.

Alternar entre renderizadores pode exigir alguns ajustes manuais na sua cena, iluminação e ambiente, já que cada renderizador é diferente. Em geral, alternar entre os renderizadores Mobile e Forward+ exigirá menos ajustes do que alternar entre o renderizador Compatibility e os renderizadores Forward+ ou Mobile.

Desde o Godot 4.4, ao usar Forward+ ou Mobile, se o Vulkan não for suportado, o motor reverterá para o Direct3D 12 e vice-versa. Se o driver de fallback tentado também não for suportado, o motor reverterá para o Compatibility quando o backend RenderingDevice não for suportado. Isso permite que o projeto seja executado de qualquer forma, mas ele pode parecer diferente da aparência pretendida devido ao renderizador mais limitado. Esse comportamento pode ser desativado nas configurações do projeto desmarcando Rendering > Rendering Device > Fallback to OpenGL 3.

Comparação de recursos

Esta não é uma lista completa dos recursos de cada renderizador. Se um recurso não estiver listado aqui, ele está disponível em todos os renderizadores, embora possa ser muito mais rápido em alguns deles. Para uma lista de todos os recursos do Godot, veja Lista de funcionalidades.

Hardware com suporte a RenderingDevice é o hardware que pode rodar Vulkan, Direct3D 12 ou Metal.

Comparação geral

Recurso

Compatibilidade

Mobile

Forward+

Hardware necessário

Antigo ou de baixo custo.

Mais recente ou de alto desempenho. Requer suporte a Vulkan, Direct3D 12 ou Metal.

Mais recente ou de alto desempenho. Requer suporte a Vulkan, Direct3D 12 ou Metal.

Roda em hardware novo

✔️ Sim.

✔️ Sim.

✔️ Sim.

Roda em hardware antigo e de baixo custo

✔️ Sim.

✔️ Sim, mas mais lento que o Compatibility.

✔️ Sim, mas é o mais lento de todos os renderizadores.

Roda em hardware sem suporte a RenderingDevice

✔️ Sim.

❌ Não.

❌ Não.

Plataformas alvo

Dispositivos móveis, desktop de baixo custo, web.

Dispositivos móveis, desktop.

Desktop.

Desktop

✔️ Sim.

✔️ Sim.

✔️ Sim.

Mobile

✔️ Sim (baixo custo).

✔️ Sim (alto desempenho).

⚠️ Suportado, mas mal otimizado. Use Mobile ou Compatibility em seu lugar.

Realidade Aumentada (XR)

⚠️ Supported, but not recommended. Use Mobile instead.

✔️ Yes. Recommended for desktop and standalone headsets.

⚠️ Suportado, mas mal otimizado. Use Mobile ou Compatibility em seu lugar.

Web

✔️ Sim.

❌ Não.

❌ Não.

Jogos 2D

✔️ Sim.

✔️ Sim, mas o Compatibility geralmente é bom o suficiente para 2D.

✔️ Sim, mas o Compatibility geralmente é bom o suficiente para 2D.

Jogos 3D

✔️ Sim.

✔️ Sim.

✔️ Sim.

Conjunto de recursos

Recursos 2D e recursos 3D principais.

A maioria dos recursos de renderização.

Todos os recursos de renderização.

Recursos de renderização 2D

✔️ Sim.

✔️ Sim.

✔️ Sim.

Recursos principais de renderização 3D

✔️ Sim.

✔️ Sim.

✔️ Sim.

Recursos avançados de renderização 3D

❌ Não.

⚠️ Sim, limitado pelo hardware móvel.

✔️ Sim. Todos os recursos de renderização são suportados.

Novos recursos

⚠️ Alguns novos recursos de renderização são adicionados ao Compatibility. Os recursos são adicionados após o Mobile e o Forward+.

✔️ A maioria dos novos recursos de renderização é adicionada ao Mobile. O Mobile geralmente recebe novos recursos ao mesmo tempo que o Forward+.

✔️ Todos os novos recursos são adicionados ao Forward+. Como foco do novo desenvolvimento, o Forward+ recebe os recursos primeiro.

Custo de renderização

Custo base baixo, mas custo de dimensionamento alto.

Custo base médio e custo de dimensionamento médio.

Custo base mais alto e custo de dimensionamento baixo.

Driver de renderização

OpenGL.

Vulkan, Direct3D 12 ou Metal.

Vulkan, Direct3D 12 ou Metal.

Luzes e sombras

Veja Luzes e sombras 3D para mais informações.

Recurso

Compatibilidade

Mobile

Forward+

Abordagem de iluminação

Forward single-pass. Luzes com sombras usam uma abordagem de múltiplos passes (multi-pass) e mistura menos precisa.

Forward de passo único.

Clustered forward.

Máximo de OmniLights

8 por malha. Pode ser aumentado.

8 por malha, 256 por visualização.

512 por cluster. Pode ser aumentado.

Máximo de SpotLights

8 por malha. Pode ser aumentado.

8 por malha, 256 por visualização.

512 por cluster. Pode ser aumentado.

Máximo de DirectionalLights

8

8

8

PCSS para OmniLight e SpotLight

❌ Não suportado.

✔️ Suportado.

✔️ Suportado.

PCSS para DirectionalLight

❌ Não suportado.

❌ Não suportado.

✔️ Suportado.

Texturas de projetor de luz

❌ Não suportado.

✔️ Suportado.

✔️ Suportado.

Iluminação Global

Veja Introdução à iluminação global para mais informações.

Recurso

Compatibilidade

Mobile

Forward+

ReflectionProbe

✔️ Suportado, 2 por malha.

✔️ Suportado, 8 por malha.

✔️ Suportado, ilimitado.

LightmapGI

⚠️ A renderização de lightmaps pré-calculados é suportada. O pré-cálculo requer hardware com suporte a RenderingDevice.

✔️ Suportado.

✔️ Suportado.

VoxelGI

❌ Não suportado.

❌ Não suportado.

✔️ Suportado.

Iluminação Indireta em Espaço de Tela (SSIL)

❌ Não suportado.

❌ Não suportado.

✔️ Suportado.

Iluminação Global por Campo de Distância Sinalizado (SDFGI)

❌ Não suportado.

❌ Não suportado.

✔️ Suportado.

Ambiente e pós-processamento

Veja Ambiente e pós-processamento para mais informações.

Recurso

Compatibilidade

Mobile

Forward+

Névoa (Profundidade e Altura)

✔️ Suportado.

✔️ Suportado.

✔️ Suportado.

Névoa Volumétrica (Volumetric Fog)

❌ Não suportado.

❌ Não suportado.

✔️ Suportado.

Mapeamento de tons (Tonemapping)

✔️ Suportado.

✔️ Suportado.

✔️ Suportado.

Reflexos em Espaço de Tela

❌ Não suportado.

❌ Não suportado.

✔️ Suportado.

Oclusão Ambiente em Espaço de Tela (SSAO)

✔️ Suportado.

❌ Não suportado.

✔️ Suportado.

Iluminação Indireta em Espaço de Tela (SSIL)

❌ Não suportado.

❌ Não suportado.

✔️ Suportado.

Iluminação Global por Campo de Distância Sinalizado (SDFGI)

❌ Não suportado.

❌ Não suportado.

✔️ Suportado.

Brilho

✔️ Suportado.

✔️ Suportado.

✔️ Suportado.

Ajustes

✔️ Suportado.

✔️ Suportado.

✔️ Suportado.

Pós-processamento personalizado com quad em tela cheia

✔️ Suportado.

✔️ Suportado.

✔️ Suportado.

Pós-processamento personalizado com CompositorEffects

❌ Não suportado.

✔️ Suportado.

✔️ Suportado.

Antialiasing

Veja Antisserrilhamento 3D para mais informações.

Recurso

Compatibilidade

Mobile

Forward+

MSAA 3D

✔️ Suportado.

✔️ Suportado.

✔️ Suportado.

MSAA 2D

❌ Não suportado.

✔️ Suportado.

✔️ Suportado.

TAA

❌ Não suportado.

❌ Não suportado.

✔️ Suportado.

FSR2

❌ Não suportado.

❌ Não suportado.

✔️ Suportado.

FXAA

❌ Não suportado.

✔️ Suportado.

✔️ Suportado.

SMAA

❌ Não suportado.

✔️ Suportado.

✔️ Suportado.

SSAA

✔️ Suportado.

✔️ Suportado.

✔️ Suportado.

Limitador de rugosidade em espaço de tela

❌ Não suportado.

✔️ Suportado.

✔️ Suportado.

Recursos do StandardMaterial

Veja Material 3D Padrão e Material ORM 3D para mais informações.

Recurso

Compatibilidade

Mobile

Forward+

Subsurface scattering

❌ Não suportado.

❌ Não suportado.

✔️ Suportado.

Recursos de shader

Veja Referência de shading para mais informações.

Recurso

Compatibilidade

Mobile

Forward+

Textura de tela (Screen texture)

✔️ Suportado.

✔️ Suportado.

✔️ Suportado.

Textura de profundidade

✔️ Suportado.

✔️ Suportado.

✔️ Suportado.

Buffer de Normal/Roughness

❌ Não suportado.

❌ Não suportado.

✔️ Suportado.

Shaders de computação

❌ Não suportado.

⚠️ Suportado, mas acarreta uma penalidade de desempenho em dispositivos mais antigos.

✔️ Suportado.

Outros recursos

Recurso

Compatibilidade

Mobile

Forward+

Precisão de cor

RGBA8. Baixo alcance dinâmico, precisão média.

RGB10A2. Alcance dinâmico médio, precisão baixa. RGBA16F se o HDR 2D estiver ativado.

RGBA16F. Alto alcance dinâmico (HDR), boa precisão.

Precisão de profundidade

24 bits sem Z reverso. Precisão média.

24 bits com Z reverso. Precisão média.

32 bits com Z reverso. Boa precisão.

Debanding

❌ Não suportado.

✔️ Suportado.

✔️ Suportado.

Variable rate shading (sombreamento de taxa variável)

❌ Não suportado.

✔️ Suportado.

✔️ Suportado.

Decalques (Decals)

❌ Não suportado.

✔️ Suportado.

✔️ Suportado.

Rastros de partículas

❌ Não suportado.

✔️ Suportado.

✔️ Suportado.

Colisão SDF de partículas

❌ Não suportado.

✔️ Suportado.

✔️ Suportado.

Desfoque de profundidade de campo

❌ Não suportado.

✔️ Suportado.

✔️ Suportado.

Modos VSync Adaptive e Mailbox

❌ Não suportado.

✔️ Suportado.

✔️ Suportado.

Viewport HDR 2D

❌ Não suportado.

✔️ Suportado.

✔️ Suportado.

Saída HDR

❌ Não suportado.

✔️ Suportado.

✔️ Suportado.

Acesso ao RenderingDevice

❌ Não suportado.

✔️ Suportado.

✔️ Suportado.