Fluidos

Usando Fluidos, você pode simular as propriedades físicas de líquidos como água, óleo, mel e lava derretida, e também replicar o efeito da gravidade, de colisões com objetos e de interrupções por campos de movimento para obter o resultado desejado.

Conceitos introdutórios

As simulações de fluidos são construídas com base nos seguintes componentes:

Otimização do desempenho

Em qualquer trabalho de simulação de fluidos, o objetivo é criar um resultado visualmente agradável o mais rápido possível. Para isso, é importante entender as opções disponíveis para detalhes de equilíbrio e precisão, considerando memória e tempo de cálculo.

A configuração principal para controlar detalhes da simulação é a opção Tamanho de Voxel principal, no grupo Propriedades do solucionador do painel de Parâmetros do solucionador. Esta configuração também tem grande efeito sobre a precisão. Normalmente, usa-se um valor maior para uma visualização rápida e menos detalhada do trabalho e, quando o efeito está satisfatório, emprega-se um valor menor para uma simulação mais detalhada.

Em qualquer tamanho de voxel principal, os atributos Transporte e Passo de tempo, no grupo Parâmetros de simulação do painel de Parâmetros do solucionador, podem aumentar a precisão da simulação. No entanto, isso exigirá mais tempo e cálculos extras. Para obter mais informações, consulte a seção Configurações de adaptatividade abaixo.

Uma boa combinação nas configurações de tamanho de voxel principal e adaptabilidade depende da velocidade das partículas em relação à escala da cena modelada. Por exemplo, se as velocidades das partículas forem tão altas a ponto de irem de um lado ao outro de um colisor em um único passo de tempo, parecerá não ter havido qualquer colisão. Além disso, se as partículas penetrarem muito profundamente no colisor, elas podem ser direcionadas para o lado errado, como se estivessem "vazando". Para ajudar a diagnosticar esses problemas, pode-se examinar as velocidades das partículas definindo o canal de velocidade para que seja exibido como gradiente de cor, usando o painel Configurações de exibição.

No trabalho com escalas extremamente pequenas (uma simulação de gota d'água, por exemplo), pode ser necessário aumentar a taxa de quadros da cena, devido às velocidades muito altas em relação às distâncias e escalas de tempo diminutas.

Configurações de adaptatividade

Use as configurações relacionadas à adaptatividade no painel Parâmetros de simulação da janela Vista da simulação para ajustar automaticamente a resolução e fornecer o maior número de detalhes quando e onde for preciso, sem desperdício de memória ou de tempo de cálculo. Há quatro conjuntos de opções disponíveis para este controle:

Adaptatividade espacial

A opção Adaptatividade espacial é usada para criar voxels de baixa resolução no centro do fluido, onde detalhes são menos necessários. A resolução máxima definida pelo tamanho de voxel principal é preservada nas regiões de movimento rápido, ao longo dos limites com objetos de colisão e da superfície livre (o limite com o ar).

Normalmente, esta opção está ativada na maioria das simulações.

Excluir partículas excedentes

A opção Excluir partículas excedentes remove algumas partículas quando o número por voxel em regiões de baixa resolução excede determinado limite. Desative esta opção quando houver perda de volume ou outras grandes diferenças entre simulações espacialmente adaptáveis e não adaptáveis.

Etapas de transporte e Passos de tempo

As opções Etapas de transporte e Passos de tempo, no painel Parâmetros de simulação, controlam o número de execuções dos cálculos em cada quadro. Mais iterações resultam em maior precisão, porém com maior tempo de cálculo. Experimente ajustar essas configurações se houver problemas como perda de volume, agrupamento de partículas, explosões espontâneas e vazamentos através de colisores.

  • A opção Etapas de transporte controla o número de iterações usadas para produzir advecção de partículas ao longo do campo de velocidade do voxel, após a realização dos cálculos de pressão. Caso haja problemas como passagem de partículas através de colisores estáticos, experimente ajustar essas configurações. Isso pode resolver o problema sem muito tempo extra de cálculo. Como a pressão não é recalculada e não há nova criação de voxels com base em colisores e outros sólidos a cada iteração, a opção Etapas de transporte provavelmente não será útil em casos como colisores que se movam rapidamente e outras situações mais complexas.
  • A opção Passos de tempo controla o número de iterações de toda a simulação por quadro, inclusive as fases de criação de voxels, pressão e transporte. Essas configurações podem aumentar muito a precisão, especialmente com velocidades altas, mas também estender muito os tempos de cálculo.

Os dois controles funcionam juntos, e a opção Etapas de transporte controla o número de iterações da fase de transporte em cada passo de tempo. Em outras palavras, cada quadro pode conter vários passos de tempo, dependendo das configurações de Passos de tempo, e cada um deles pode conter várias etapas de transporte, dependendo das configurações das Etapas de transporte.

Adaptatividade controla o desencadeamento (ou não) de subetapas adicionais. Pode-se executar um número diferente de iterações por quadro, dependendo da distância das partículas e da sua velocidade de movimentação na estrutura. A escala de valores não é linear:
  • Em 0.0, as partículas podem percorrer uma distância praticamente ilimitada sem acionar mais subetapas.
  • Em 0.1, as partículas podem percorrer distâncias de até 10 voxels antes de acionar mais subetapas.
  • Em 0.32, as partículas podem percorrer distâncias aproximadas de 5 voxels antes de acionar mais subetapas.
  • Em 0.5, as partículas podem percorrer distâncias de até 1,0 voxel antes de acionar mais subetapas.
  • Em 0.75, as partículas podem percorrer distâncias aproximadas de 0,5 voxel antes de acionar mais subetapas.
  • Em 1.0, as partículas podem percorrer distâncias de até 0,001 voxel antes de acionar mais subetapas.
As iterações Mín. de etapas de transporte/Mín. de passos de tempo são sempre executadas por quadro. Isso significa que é possível forçar determinado número de subetapas, mesmo que a movimentação das partículas não seja muito rápida. No entanto, normalmente é melhor ajustar a Adaptatividade, para evitar cálculos desnecessários.
Nota: Apenas uma iteração é executada no primeiro quadro de uma simulação.

Máx. de etapas define o total de iterações executadas por quadro, limitando a quantidade de cálculos executada. No entanto, as partículas sempre se movem em toda a distância exigida por sua velocidade e pelo comprimento do quadro. Isso significa que elas talvez não obedeçam ao limite definido em Adaptatividade. Por exemplo, se a definição de Adaptatividade for 0.5, mas o Máx. de etapas for muito baixo, talvez as partículas velozes não consigam percorrer toda a distância em etapas de 1 voxel de comprimento. Nesse caso, cada etapa terá comprimento superior a 1 voxel, para conseguir percorrer toda a distância.

Escala de tempo é uma configuração disponível para Etapas de transporte, apenas alterando a velocidade do fluxo de partículas. Valores superiores a 1.0 aceleram o fluxo sem apresentar novas velocidades ou acelerações. Valores entre 0.0 e 1.0 diminuem a velocidade. O resultado talvez não seja fisicamente correto, mas pode ser útil se você quiser retemporizar rapidamente uma simulação. Mas tenha cuidado, pois esta configuração pode gerar efeitos colaterais indesejados, especialmente com valores extremos.

Considerações sobre escala

A escala é muito importante no trabalho com simulações de fluidos, pois afeta diretamente a credibilidade do resultado final. Por exemplo, considere como os modelos físicos em escala reduzida de lagos e piscinas usados em filmes antigos nunca parecem corretos. Isso ocorre porque, considerando-se a realidade, uma onda de um metro em um corpo de água tem aparência diferente de outra que meça um centímetro. Por isso, para obter os melhores resultados, é importante considerar corretamente as unidades, e também usar uma quantidade razoável de memória e de tempo de cálculo.

Há três parâmetros importantes a serem considerados na construção de uma simulação:

O Tamanho de voxel ajuda a determinar o nível de precisão da simulação. Quanto menor for o valor em centímetros, mais precisa será a solução, mas isso consumirá mais memória e recursos. Um valor maior é menos preciso: talvez não se vejam as partículas geradas, elas flutuem acima das superfícies de colisão ou não fluam através de furos. O Tamanho de Voxel é usado ao transferir todas as malhas para a simulação. Isso afeta a precisão da malha e também é o tamanho mínimo das partículas.
Aviso: Tamanhos de voxel muito pequenos podem consumir muita memória e tornar seu sistema instável

A Configuração de unidade máxima é importante, pois determina o comportamento dos fluidos e a quantidade de memória consumida. Ao trabalhar com fluidos, você deve ter sempre em mente as dimensões do mundo real na sua cena. Nunca se devem usar unidades genéricas. O ideal é definir a Escala das Unidades de exibição como Metros, para que se tenha uma ideia do tamanho da cena no "mundo real". A opção Máximo de fluidos também leva em conta unidades personalizadas, mas é preciso ter cautela ao alterar a unidade padrão. O ideal é ter uma fita métrica por perto, para medir e ver o tamanho real dos objetos. As unidades também afetam o aspecto visual da cena, pois uma onda com 15 cm tem aparência muito diferente de outra com 15 metros. A substituição personalizada de unidades do Solucionador de líquido só deve ser usada quando se estiver artificialmente restrito por unidades (por exemplo, um mecanismo de jogos) ou for preciso obter um efeito especial, como uma renderização realista de água em miniatura.

Tamanho da cena é o tamanho da sua cena com as dimensões do mundo real definidas por sua Configuração de unidades. O tamanho da cena afeta diretamente a forma como você define o seu Tamanho de Voxel. Por exemplo, se os limites da cena com líquido forem 10 km x 10 km, a definição do tamanho de Voxel como 0,05 cm praticamente nunca resolverá, pois a exigência de memória será imensa. O ideal é começar com um Tamanho de Voxel muito grande e diminuir até chegar a resultados satisfatórios com uso razoável de memória. Além disso, quanto mais densa for a grade de Voxel, mais demorado será o cálculo da simulação.

As opções Etapa de transporte e Tempo também determinam a qualidade da simulação, mas afetam mais a rapidez de movimentação das partículas do que a qualidade geral.

Nota: Nunca use a ferramenta Escala no Objeto líquido ou no Campo de movimento, pois isso desativará os cálculos.

Trabalho com escalas pequenas

No trabalho de simulação com escalas pequenas há algumas considerações adicionais importantes, em função das velocidades altas em relação às distâncias e aos tamanhos de voxel diminutos envolvidos. Em particular, para obter bom resultado talvez seja preciso aumentar as configurações de Passo de tempo e Etapas de transporte. Em alguns casos, pode ser preciso aumentar a taxa de quadros da cena, para simular uma câmera de alta velocidade.

Em escalas extremamente reduzidas, como na simulação de uma gota d'água, talvez sejam necessários mais alguns ajustes. A opção Tensão da superfície, por exemplo, nem sempre gera resultados precisos, mesmo com muitos passos de tempo. Por isso, talvez seja mais eficaz usar valores não fisicamente precisos para obter um resultado mais realista. Em alguns casos, pode ser útil reduzir a Magnitude de gravidade.

Também é possível desativar configurações como Vorticity e Gotas, para evitar cálculos sem efeito nessas escalas.

Malhas

A malha é outra representação do resultado. Além de ser renderizada, ela pode ser exportada como cache do Alembic ou de outro tipo para uso em outra cena ou software. Ele não tem polígonos, a menos que você ative a criação de malha na forma.