Particle systems (3D)
Esta seção do tutorial cobre os sistemas de partículas (3D) acelerados por GPU. A maioria das coisas discutidas aqui se aplica também às partículas de CPU.
Introdução
Você pode usar sistemas de partículas para simular efeitos físicos complexos como fogo, faíscas, fumaça, efeitos mágicos e muitos outros. Eles são muito adequados para criar comportamentos dinâmicos e orgânicos e adicionar "vida" às suas cenas.
The idea is that a particle is emitted at a fixed interval and with a fixed lifetime. During its lifetime, every particle will have the same base behavior. What makes each particle different from the others and creates the organic look is the randomness that you can add to most of its parameters and behaviors.
Cada sistema de partículas que você cria em Godot consiste em duas partes principais: partículas e emissores.
Partículas
Uma partícula é a parte visível de um sistema de partículas. É o que você vê na tela quando um sistema de partículas está ativo: os pequenos grãos de poeira, as chamas de um fogo, as orbes brilhantes de um efeito mágico. Você pode ter entre algumas centenas e dezenas de milhares de partículas em um único sistema. Você pode randomizar o tamanho, a velocidade e a direção do movimento de uma partícula, e mudar sua cor ao longo de sua vida útil. Quando você pensa em um fogo, você pode pensar em todas as pequenas brasas voando para longe dele como partículas individuais.
Emitters
Um emissor é o que está criando as partículas. Os emissores geralmente não são visíveis, mas podem ter uma forma. Essa forma controla onde e como as partículas são criadas, por exemplo, se devem preencher uma sala como poeira ou serem disparadas de um único ponto como uma fonte. Voltando ao exemplo do fogo, um emissor seria o calor no centro do fogo que cria as brasas e as chamas.
Node overview
Todos os nós de partículas 3D disponíveis no Godot
Existem dois tipos de sistemas de partículas 3D no Godot: GPUParticles3D, que são processadas na GPU, e CPUParticles3D, que são processadas na CPU.
Os sistemas de partículas de CPU são menos flexíveis que os seus equivalentes de GPU, mas funcionam em uma variedade maior de hardware e oferecem melhor suporte para dispositivos mais antigos e celulares. Como são processados na CPU, eles não são tão performáticos quanto os sistemas de partículas de GPU e não podem renderizar tantas partículas individuais. Além disso, atualmente não possuem todas as opções de controle disponíveis nas partículas de GPU.
Sistemas de partículas de GPU rodam na GPU e podem renderizar centenas de milhares de partículas em hardware moderno. Você pode escrever shaders de partículas customizados para eles, o que os torna muito flexíveis. Você também pode fazê-los interagir com o ambiente usando nós de atração e colisão.
Existem três nós de atração de partículas: GPUParticlesAttractorBox3D, GPUParticlesAttractorSphere3D, e GPUParticlesAttractorVectorField3D. Um nó de atração aplica uma força a todas as partículas ao seu alcance e as puxa para mais perto ou as empurra para longe com base na direção dessa força.
Existem vários nós de colisão de partículas. GPUParticlesCollisionBox3D e GPUParticlesCollisionSphere3D são os mais simples. Você pode usá-los para criar formas básicas como caixas, um chão ou uma parede com as quais as partículas colidem. Os outros dois nós fornecem um comportamento de colisão mais complexo. O GPUParticlesCollisionSDF3D é útil quando você quer que as cenas internas colidam com partículas sem ter que criar todos os colliders de caixa e esfera individualmente à mão. Se você quiser que as partículas colidam com grandes cenas externas, você usaria o nó GPUParticlesCollisionHeightField3D. Ele cria um mapa de altura do seu mundo e dos objetos nele e o usa para colisões de partículas em larga escala.