Efeitos Magneticos - Linhas de campo mostrando os efeitos magnéticos do ímã | Vetor Premium
Linhas de campo mostrando os efeitos magnéticos do ímã | Vetor Premium

Configurando simulações magnéticas no Blender: o que funciona e o que quebra seus renders

A primeira coisa que todo mundo tenta fazer quando pega um simulador de partículas é criar um campo magnético que atrai metais para um ponto central. O resultado quase sempre parece um desenho animado. Partículas voam em espirais perfeitas, param do nada, ou explodem para fora da tela porque o campo de força tem um pico infinito no centro. Eu passei duas semanas consertando isso em um projeto de VFX onde precisávamos de limalha de ferro se organizando sobre um ímã real filmado em plate. O problema fundamental não é o simulador. É que campos magnéticos na natureza obedecem a leis que são bem diferentes do que a maioria dos tutoriais ensina. Um campo dipolar decai com o cubo da distância, não com o quadrado. A maioria das ferramentas usa gravidade ou atração simples, que decai com o quadrado, e isso já começa errado desde o início. Quando você aplica isso a partículas, elas aceleram de forma irreconhecível perto do ímã e ficam inertes demais longe dele.

efeitos magneticos — Configuração prática no Blender

Comece com um domínio de fluidos ou um sistema de partículas com física. Se você está usando o sistema de partículas nativo do Blender, adicione um campo Magnético (Field Type: Magnetic) ao invés de Gravity. A diferença no comportamento é imediata. Partículas metálicas com alta massa vão se comportar de maneira mais crível porque a força magnética age de forma diferente dependendo do material. O parâmetro que mais ninguém ajusta e deveria ser o primeiro é a força de repulsão (Strength). Deixe em zero no início. Partículas magnéticas tendem a colapsar todas num único ponto porque a atração é forte demais. Aumente gradualmente até 50 ou 100, dependendo do tamanho do seu domínio. Se as partículas ainda estão se amontoando de forma antinatural, diminua o Weight do campo magnético nos próprios vértices das partículas e adicione um campo Turbulence com Intensity por volta de 0.3 a 0.5. Isso quebra a simetria perfeita que todo simulador cria e dá aquele aspecto orgânico de limalha se organizando em padrões de ferro. Padrões those que você vê em vídeos científicos reais.

Um detalhe técnico que economiza muito tempo: o passo de simulação (Step Scale) padrão é 1.0. Mude para 0.5 ou até 0.25 se estiver usando campos magnéticos. Campos que variam rapidamente com a distância precisam de mais sub-steps para não criar artefatos de aceleração. Simulações de 200 frames que antes levavam 4 minutos rodando com Step Scale 1.0 podem demorar 8 minutos com 0.25, mas o resultado não vai ter partículas pulando de posição em posição. Isso é muito mais barato do que reprocessar tudo depois de notar o problema no render final. Para dar aparência metálica real, não confie apenas no campo magnético. A interação entre partículas magnéticas também importa. Partículas de ferro se atraem magneticamente umas às outras, não só ao ímã. No Blender, isso pode ser aproximado usando Field Weight nas próprias partículas com um campo Magnético configurado como fuente nas configurações de partículas. Ajuste a distância de influência para algo entre 0.05 e 0.2 unidades do domínio. Valores maiores criam aglomerados visivelmente falsos.

O problema que ninguém menciona nos tutoriais

Quase todo mundo que configura efeitos magneticos pelo primeiro vez enfrenta o mesmo problema: partículas que escapam do domínio. Quando a força magnética é forte e o campo de turbulência puxa numa direção, algumas partículas ganham velocidade suficiente para sair da caixa de simulação. O Blender simplesmente as deleta. Isso cria buracos visíveis na simulação que parecem que partículas foram arrancadas do campo magnético de repente. Visualmente é um erro óbvio. A solução que eu uso e recomendo é criar um volume wrapper ao redor do domínio — uma esfera ou caixa ligeiramente maior que o volume de simulação com um campo Collision configurado como Bouncer com bounce mínimo (0.1 a 0.2). As partículas que tentam escapar batem suavemente e voltam para dentro. Parece contra-intuitivo porque colisões geralmente adicionam caos, mas com bounce baixo e uma superfície suave, o efeito é exatamente o oposto: as partículas ficam contidas sem perder energia de forma dramática. O resultado é que a simulação parece um sistema fechado, que é como um campo magnético real se comporta.

👉 Clique no botão abaixo para saber mais sobre o assunto!

Outro problema prático é a cor. Partículas magnéticas em simulated scenes geralmente precisam ter variação de cor baseada na velocidade ou na proximidade do campo. Partículas mais próximas do ímã ficam mais quentes (vermelhas/laranjas) por causa da intensidade do campo. Partículas mais distantes ficam azuladas. Isso é um detalhe de pós-produção que faz toda a diferença. No Blender, use um Vertex Color ou um Geometry node setup com a propriedade Distance to Center para gerar um gradiente. Depois aplique um ColorRamp no shader das partículas. Sem essa variação, tudo parece pintado digitalmente.

Limitações reais que você precisa saber

Simulações magnéticas com muitas partículas são pesadas. Partir de 10.000 partículas com campos magnéticos e turbulência ativos, um domínio de resolução média (64^3) e step scale 0.5, você vai esperar cerca de 20 a 40 minutos por frame em uma workstation com RTX 4090 e 64GB RAM. Se precisar de 50.000 partículas para preencher a cena, multiplica por cinco. A redução de.step scale ajuda na qualidade mas aumenta proporcionalmente o tempo. Não existe workaround mágico para isso. Se o projeto tiver deadline apertado e você precisar de muitos mais partículas, a alternativa que eu uso é simular uma versão de baixa resolução primeiro (10.000 partículas), capturar o movimento das partículas como um arquivo de cache, e depois usar esse cache como source para uma simulação de alta resolução (50.000+) com campos magnéticos desligados, usando apenas o campo de velocidade bakeado. O resultado visual é idêntico para a câmera porque o padrão de movimento já está definido. A economia de tempo é de horas para minutos. O único downside é que você perde a capacidade de ajustar o campo magnético depois porque o movimento já está baked. Se o diretor pedir uma mudança no campo, volta pro passo anterior.

Quando a simulação magnética precisa interagir com geometria real do set (como objetos físicos filmados em plate), o problema é diferente: a simulação não sabe onde estão os objetos do set. A solução é importar a geometria do set como collision mesh no Blender, aplicar subdivision moderada para garantir que as partículas não atravessem superfícies complexas, e ajustar a distância de collision para algo entre 0.02 e 0.05. Partículas que passam por dentro de geometria de set criam glitches visíveis que são muito difíceis de corrigir depois. Para projetos que exigem réalismo extremo com campos magnéticos variáveis no tempo (um ímã que se move, por exemplo), a abordagem padrão de campos fixos não funciona bem. O campo magnético precisa seguir o movimento do objeto. No Blender, você pode keyframar a posição de um campo Magnético enquanto a simulação roda, mas o resultado é instável porque o campo muda de posição e as partículas recalibram a trajectória de forma brusca. A solução profissional é usar simulações separadas em seções temporais — simule de 0 a 50 frames com o campo na posição A, depois de 50 a 100 com o campo na posição B, e faça o blend entre os dois caches no compositor. Isso elimina o salto visual quando o campo se move. É mais trabalho mas é a única forma de manter consistência.

Se o projeto for em Houdini, o fluxo é Similar mas com mais controle. O DOP network permite configurar campos magnéticos com função de decaimento customizada (não só as predefinidas). Você pode usar uma expressão como 1/(distance^3) para simular o decaimento dipolar real. Isso é tecnicamente mais preciso do que o campo magnético padrão do Blender, que usa uma aproximação. Se o client ou diretor pedir precisão física, essa customização faz diferença. Se não pedir, o campo padrão do Blender é suficiente na maioria dos casos.