S9.A1.

 

5.5. Fluid.

Abril 25, 2012

 

Para utilizar o simulador Fluid, seleccione um objecto do tipo mesh, active o contexto Physics da janela de propriedades, e pressione o botão Fuid.

Como o nome indica, Fluid é utilizado para simular a dinâmica típica de líquidos.







Ao activar Fluid, é criado o painel Fluid, que permite caracterizar de 7 modos diferentes o papel que o objecto mesh desempenha no simulador: Domain, Fluid, Obstacle, Inflow, Outflow, Particle, e Control.

Toda a simulação Fluid tem obrigatoriamente:

• Uma malha do tipo Domain, que define o volume do espaço 3D em que a simulação é calculada.
• Uma malha do tipo Fluid ou do tipo Inflow, que determina o volume, no interior do domínio, em que o fluido tem origem.

5.5.1. Painéis.


5.5.1.1. Domain.


A malha Domain define o volume do espaço 3D em que a simulação é calculada.

Em cada cena (scene) de um mesmo ficheiro blend apenas pode haver uma malha do tipo Domain.

Note que domínio de simulação é determinado pela bounding box do objecto Domain e não pela forma da malha, isto é, pelo posicionamento específico dos seus vértices.
Não há por isso qualquer vantagem em utilizar como Domain qualquer outra malha que não seja uma malha do tipo Cube.

Na simulação de fuidos em Blender é utilizado o algoritmo LBM (Lattice Boltzmann Method). O processo de cálculo será tão mais demorado quanto maior for a dimensão do domínio, mais baixa for a viscosidade do fluído, e maiores forem as velocidade dos intervenientes no sistema.

5.5.1.1.1. Fluid.

Ao activar Domain o painel Fluid é expandido, passando a conter o conjunto de parâmetros que em seguida se descrevem.

Resolution Final: Este é o parâmetro mais importante da simulação, determinando o seu nível de detalhe (nº de vértices da malha que representa o fluído).

O valor padrão é 65, permitindo uma simulação relativamente rápida, embora com baixo nível de detalhe, não sendo conveniente alterar significativamente este valor na primeira fase dos ensaios.

Ao aumento do nível de resolução está associado um substancial aumento do tempo de cálculo, quantidade de memória usada, e dimensão dos ficheiros guardados em disco com a informação sobre o estado do sistema.

Uma resolução 32 requer aproximadamente 4 MB de RAM, uma resolução 64 requer aproximadamente 30 MB, e uma resolução 128 requer aproximadamente 230 MB.

Resolution Preview: Não tem qualquer influência na dinâmica da simulação, especificando apenas o nível de resolução da malha do fluído na pré-animação, visível na janela 3D. Tem, ainda assim, impacto na dimensão dos ficheiros guardados em disco.

Render/Viewport Display: Permite determinar o nível de resolução quer na visualização da pré-animação, quer na imagem resultante da renderização, com base nos valores dos parâmetros Resolution Final e Resolution Preview.






Start Time: Valor, em segundos, do primeiro instante de tempo para o qual os dados da simulação serão registados em disco.

End Time: Valor, em segundos, do último instante de tempo para o qual a dinâmica simulação será calculada, e os seus dados registados em disco.

Note que os parâmetros Star/End Time dizem respeito à variável tempo das equações em se se baseia o cálculo da dinâmica do fluído, nada tendo a ver com o número de frames que é renderizado, tal como especificado, por exemplo, no painel Dimensions do contexto Render da janela de propriedades.

Assim, se, por exemplo, forem especificados os valores Start Time: 2.0 e End Time: 4.0. isso significa que serão calculados 4 segundos da dinâmica do fluído, sendo que apenas os últimos 2 segundos serão registados em disco. Os primeiros 2 segundos serão calculados, qualquer simulação será sempre calculada a partir do instante 0, mas deles não ficará registo, e, portanto, não poderão ser observados posteriormente.

A dinâmica dos 2 segundos registados será depois distribuída por um número de frames igual a End Frame (especificado no painel Dimensions do contexto Render da janela de propriedades).

Note que o mapeamento da dinâmica começa sempre na frame 1, sendo independente do valor de Start Frame (tal como especificado no painel Dimensions do contexto Render da janela de propriedades).

Para além dos considerandos anteriores, note ainda que o valor de Frame Rate (especificado no painel Dimensions do contexto Render da janela de propriedades) tem influência directa na percepção da velocidade do processo que está a ser simulado, tal como será mostrado na sequência de imagens obtidas por renderização de cada uma das frames.

Por exemplo, admitido Frame Rate: 25 e End Frame 250, para que o tempo da animação resultante da renderização corresponda ao tempo real da dinâmica simulada deverá ser especificado um intervalo (Start Time - End Time) igual a 10 segundos (= 250/25).

Speed: Factor multiplicativo dos parâmetros Time Start/End, permite facilmente modificar a velocidade da simulação.

Offset: Valor da translação, expressa em frames, dos dados da simulação registados em disco.

Por exemplo, se os dados da cache registada em disco forem relativos à simulação do comportamento de um fluído que seria reproduzido entre as frames 1 e 100, de um valor Offset : 51 resultará a reprodução, entre as frames 1 e 50, do comportamento da simulação entre as frames 51 e 100. De um valor Offset : -50 resultará a reprodução, entre as frames 51 e 100, do comportamento da simulação entre as frames 1 e 50

Bake Directory: Na célula Bake Directory deve constar, obrigatoriamente, o nome da pasta onde serão registados os dados da simulação.

No exemplo da figura, os ficheiros serão guardados na pasta cache_fluid, que, caso não exista, será criada na directoria em que se encontra o ficheiro *.blend.




Os ficheiros são de 3 tipos, os relativos aos dados finais, fluidsurface_final_###.bobj.gz, os relativos aos dados da pré-animação, fluidsurface_preview_###.bobj.gz, e os relativos à informação sobre os Speed Vectors, fluidsurface_final_###.bvel.gz.

Note que desde que existam dados em disco relativos a uma simulação, cujos ficheiros tenham um nome coerente com a informação constante na célula Bake Directory, estes dados serão considerados como actuais, e por isso servirão de base a uma eventual pré animação ou renderização que seja solicitada, independentemente de não terem qualquer relação com o estado actual do sistema, o que pode produzir resultados aparentemente bizarros.

As alterações ao sistema só serão tomadas em conta após ter sido calculada, na sequência da pressão do botão Bake, a nova dinâmica correspondente.

Bake Button: O processo de cálculo e e registo da informação relativa à simulação é desencadeado por pressão do botão Bake.

Sobre o botão está inscrita informação sobre a quantidade de RAM necessária ao cálculo de um instante temporal da simulação.

Após a pressão do botão é colocada na barra da janela info uma barra evolutiva que dá conta do desenvolvimento do processo.
O processo pode ser abortado em qualquer altura pressionando [Esc], ou o botão X junto à barra evolutiva.

A observação da pré-animação na janela 3D pode ser feito em qualquer instante a partir do momento em que existam em disco ficheiros do tipo fluidsurface_preview#.

Note que os ficheiro de registo da simulação não são eliminados automaticamente, pelo que poderão existir em disco dados relativos a uma nova configuração do sistema, em simultâneo com dados relativos a uma anterior configuração, o que terá como consequência uma pré-animação de evolução eventualmente pouco compreensível.

Na sequência da pressão do botão Bake, os parâmetro da simulação e a topologia do sistema são exportados para o simulador, iniciando-se então o processo de cálculo, que gerará uma nova configuração da superfície do fluído por cada frame da animação.

Caso as malha envolvidas na simulação tenham modificadores associados, nomeadamente o Subdivision Surface Modifier, os tempos de cálculo envolvidos poderão ser muitíssimo superiores ao estritamente necessário para gerar uma boa aproximação da dinâmica do sistema. É por isso boa prática desassociar momentaneamente o modificador, ou baixar o nível de subdivisão.

Generate Speed Vector: Estando activo na configuração padrão, a informação relativa aos vectores velocidade é calculada e registada em disco, o que permite a sua utilização no compositor de nós, por exemplo, para gerar um efeito Motion Blur.

Reverse Frames: Quando activo, faz o mapeamento da dinâmica calculada entre Start e End Time sobre as frames End Frame a frame 1. A opção deve ser activada após o cálculo da simulação.

5.5.1.1.2. Domain World.

Gravity: Força da gravidade a que o sistema está sujeito.

O valor da gravidade é especificado no contexto Scene, sendo que, na configuração padrão, as células não estão activas.
O acesso às células só é possível se for desactivada a opção Gravity do contexto Scene.

Real World Size: Especificação da dimensão real pretendida para o domínio (em metros).

Se o domínio não for cúbico, o valor aqui especificado diz respeito à maior das dimensões da sua bounding box.

Viscosity Presets: Viscosidade do fluído.

Existem 3 níveis de viscosidade pré-definidos: Water, Oil, e Honey.





Para além disso, é possível introduzir o valor numérico desejado para a viscosidade do fluído.

O valor numérico é introduzido na forma base/expoente (note que o valor do expoente é negativo), e deve corresponder à viscosidade cinemática do fluído. No caso da água, por exemplo, o valor é 1.002x10-6.

Optimization: Os parâmetros Grid Levels e Compressibility destinam-se, fundamentalmente, a aumentar a estabilidade da superfície do fluído em modelos de grandes dimensões.

Grid Levels: Número de subdivisões adaptativas em torno da malha base da superfície do fluído a utilizar no cálculo da dinâmica do fluído. Para o valor padrão, -1, a selecção do valor é feita automaticamente. Note que o parâmetro nada tem a ver com o nível de resolução da malha, sendo sim um parâmetro do LBM.

Compressibility: Nível de compressibilidade do fluído. Caso se pretendam grandes superfícies de fluído sem movimento, o valor deste parâmetro deve ser reduzido.

5.5.1.1.3. Domain Boundary.

Slip Type: O parâmetro permite definir o nível de adesividade do fluído, quando entra em contacto com superfícies que com ele interajam.
Estão disponíveis 3 opções:

No Slip: Adesividade total.
Free Slip: Adesividade nula.
Partial Slip: Controle do nível de adesividade através do parâmetro Amount.

Smoothing: Nível de suavização da malha que constitui a superfície do fluído.
Subdivisions: Nível de subdivisão da malha que constitui a superfície do fluído.

Os dois anteriores parâmetros suavizam a forma da superfície do fluído, de modo equivalente, respectivamente, à utilização sobre a malha Domain de Smooth Shading e do modificador Subdivision Surface.

Embora de resultados equivalentes, não é indiferente a utilização daqueles operadores ou a modificação destes parâmetros, quer nas consequências que tem a nível do tempo de cálculo da simulação quer no aumento da dimensão dos ficheiros guardados em disco, sendo preferível o aumento do nível de detalhe da superfície com base nos parâmetros Smoothing e Subdivisions.

A utilização de uns e outros não é exclusiva, sendo que Subdivision Surface nunca deve ser aplicado à malha Domain antes do cálculo da simulação, sob pena de aumentar excessivamente a quantidade de recursos envolvidos.

Note que as consequências da utilização de Smoothing e Subdivisions não é visível na pré-animação, apenas sendo visível a quando da renderização.

5.5.1.1.4. Domain Particles.

Os parâmetros deste painel permitem aumentar o nível de complexidade visual da superfície do fluído, criando partículas de fluído associadas à malha principal.

Tracer Particles: Controla o número de partículas criadas no início da simulação.

A Utilização de Tracer Particles pressupõe a criação de uma malha do tipo Particles.

Generate Particles: Controla o número de partículas a serem criadas durante a simulação.

Generate Particles só tem consequências visíveis se o parâmetro Subdivisions do painel Domain Boundary tiver uma valor igual ou superior a 2.

5.5.1.2. Fluid.


A malha Fluid determina a forma inicial do fluído, e, para que tenha participação no processo de simulação, deve estar contida dentro do domínio de simulação, definido pela bounding box da malha Domain.

Caso esteja apenas parcialmente no domínio de simulação, apenas a parte aí contida dará forma ao fluído.

Se existir mais que um objecto Fluid no interior do domínio as suas malhas não se devem interceptar.

Volume Initialization: Especificação da forma inicial do fluído.

Volume: O fluído toma a forma do interior da malha, que deve ser obrigatoriamente fechada. Note que a posição das normais às superfícies deve ser tida em especial atenção, devendo estar dirigidas para o exterior do volume.
Shell: O fluído toma a forma da superfície da malha.
Both: O fluído toma a forma do interior e da superfície da malha, que deve ser obrigatoriamente fechada.

Initial Velocity: Velocidade inicial do fluído, com base nas coordenadas globais, e expresso em metros por segundo.

Export Animated Mesh: A opção deve ser activada caso a malha esteja a ser deformada por uma Armação, Shape Key ou Lattice.

5.5.1.3. Obstacle.


Para que uma malha interaja com o fluído deve ser especificada como Obstacle e deve encontrar-se dentro do domínio de simulação.

Se existir mais de um objecto Obstacle no interior do domínio as suas malhas não se devem interceptar.

Volume Initialization: Especificação da forma que interage com o fluído, com opções idênticas às do painel Fluid.

Slip Type: O parâmetro determina o nível de adesividade da superfície da malha Obstacle relativamente ao fluído que com ela entra em contacto, sendo as opções idênticas às do painel Domain Boundary.

No Slip: Adesividade total.
Free Slip: Adesividade nula.
Partial Slip: Controle do nível de adesividade através do parâmetro Amount.

Se o objecto Obstacle estiver em movimento será considerado automaticamente como tendo uma superfície de contacto do tipo No Slip.

Impact Factor: O parâmetro apenas é relevante para malhas Obstacle em movimento, e aumenta o volume do fluído, caso o parâmetro seja positivo, ou retira volume ao fluído, caso o parâmetro seja negativo, quando este entra em contacto com a malha Obstacle.

Export Animated Mesh: A opção deve ser activada caso a malha esteja a ser deformada por uma Armação, Shape Key ou Lattice.

5.5.1.4. Inflow.


Uma malha do tipo Inflow injecta continuamente fluído no domínio de simulação.

Volume Initialization: Especifica a forma da fonte de fluído, identicamente aos painéis anteriores

Inflow Velocity: Velocidade inicial do fluído, expressa em m/s, e com base nas coordenadas globais, a menos que o parâmetro Local Coordinates esteja activo.

Export Animated Mesh: Idêntico aos painéis anteriores.

5.5.1.5. Outflow.


Uma malha do tipo Outflow elimina do domínio de simulação todo o fluído que com ela entre em contacto.

Volume Initialization: Idêntico aos painéis anteriores.

Export Animated Mesh: Idêntico aos painéis anteriores.

5.5.1.6. Particle.


Deve ser criada uma malha do tipo Particle sempre que se pretendam criar efeitos com partículas de fluído.

A uma malha do tipo Particles é imediatamente associado um sistemas de partículas com o nome padrão FluidParticles, como pode ser visto no contexto Particles da janela de propriedades.

A posição e forma da malha Particle é irrelevante, sendo o sistema de partículas automaticamente adaptado ao fluído em simulação.

Type: Tipo de partículas de fluído.

Drops: Deve ser activado se se pretender simular o comportamento dos salpicos que se desprendem de fluidos com baixa tensão superficial.
Floats: Deve ser activado se se pretender simular o comportamento das gotículas que se desprendem de fluidos com alta tensão superficial.
Tracer: Deve ser activado se se pretender simular a existência de gotículas que acompanham o movimento da superfície do fluído.

Size influence: A menos que o parâmetro seja 0.0, o factor influencia a variação da dimensão das partículas.

Alpha influence: Se maior que 0.0, o factor influencia o grau de transparência das partículas, que variará em função da sua dimensão.

Particles directory: Pasta onde é guardada a informação sobre o sistema de partículas.

5.5.1.7. Control.


Uma malha do tipo Control força o fluído a assumir a sua forma, conforme determinado pelos parâmetros do painel, que em seguida se descrevem.

Quality: Nível de qualidade do ajuste do fluído à forma da malha Control.

Time: Especifica o intervalo de tempo durante o qual a malha Control atrai o fluído.

Star e End são expressos em segundos, e, dizem respeito ao tempo absoluto da simulação, ou seja, devem ser coerentes com os valores expressos no painel Fluid Domain.

Reverse Frames: Inverte o mapeamento do ajuste do fluído, relativamente à sequência natural das frames da animação.

Attraction Force Strength: Controla a força de atracão do fluído.

Se o valor for positivo o fluído é atraído e se o valor for negativo o fluído é repelido pelo objecto Control.

Velocity Force Strength: Se o objecto Control estiver em movimento, este parâmetro introduz uma componente na força de atracção do fluído dependente da velocidade do objecto.

Em qualquer dos parâmetros anteriores, Radius permite controlar o raio de acção da respectiva força.

5.5.2. Exemplo.


Abra o Blender.

O cubo padrão encontra-se já seleccionado. Vamos utilizá-lo como domínio de simulação.

Na janela de propriedades, active o contexto Physics, pressione o botão Fluid, e, no painel Fluid, seleccione Domain.

Especifique Resolution Final : 64 e Resolution Preview : 32

Especifique a directoria e cache : //\cache_fluid.

Contrariamente à simulação Smoke, na simulação Fluid o domínio não é representado em wireframe. Tal deve-se ao facto de, como verá, ser ele que representa a superfície do fluido.

Passe a Front Ortho, [1] > [5], e a Viewport Shading Wireframe, [Z].

Vamos agora criar uma malha do tipo Flow que dará a forma inicial ao fluído, e especificará a sua quantidade. Note que esta deve estar contida no domínio de simulação.

Coloque o cursor sobre o cubo, [Shift]+[S] > Cursor to Selected, e insira uma UVSphere, [Shift]+[A] > Mesh > UV Sphere.

Escale a esfera para metade, [S] > 0.5, e desloque-a até ao topo do domínio, [G] >[Z].

Com a esfera seleccionada, active o contexto Physics, pressione o botão Fluid, e, no painel Fluid, seleccione Fluid.




Active o contexto Render da janela de propriedades, e, no painel Dimensions, especifique End Frame : 100 e Frame Rate : 25.






A animação terá assim 4 segundos. Dado que Time Star/End do painel Fluid do Domain têm respectivamente os valores 0 e 4, a dinâmica observada na animação corresponderá à dinâmica do fluido em tempo real.







Seleccione a esfera, [RMB], e passe-a para o segundo layer, [M] > 2.

Em praticamente todas as situações, não é desejável a renderização da malha Fluid. Passá-la para outro layer é a maneira mais prática de a eliminar do layer renderizado, e, simultaneamente, desimpedir visualmente a observação da evolução da simulação na janela 3d.

Seleccione o cubo (a malha Domain), e, no contexto Physics da janela de propriedades, pressione o botão Bake do painel Fluid.

Aguarde que os dados da simulação sejam calculados e registados em disco. Pode verificar que foi criada a directoria cache_fluid em que são inscritos os ficheiros correspondentes aos dados da simulação.




O processo é relativamente demorado, mas não excessivamente, dada a baixa resolução que estamos a utilizar. Durante o cálculo dos dados da simulação é possível ver, na barra da janela Info, um gráfico indicativo da evolução do processo.

Vá para a frame 1, [Shift]+[LA], e pré visualize a simulação, [Alt]+[A].

Note que a malha Domain começa por assumir a forma da malha Fluid (a UV Sphere) e depois de precipita segundo -z, devido à acção da gravidade, mantendo-se sempre dentro da boundingbox da malha Domain.

A resolução observada na janela 3D corresponde à especificada no painel Fluid da malha Domain.






Vá para a última frame da animação, [Shift]+[RA].

É visível a subdivisão da aresta do domínio em 32 partes. Atendendo às especificações, os dados da simulação, para efeitos de representação na janela 3D, resultam do cálculo da dinâmica do fluido em 323 células cúbicas em que a boundingbox da malha Domain foi subdividida.








Altere Viewport Display para Final de modo a observar na janela 3D uma resolução idêntica à que será renderizada.




Vá para a frame 1, [Shift]+[LA], e pré visualize a simulação, [Alt]+[A].

Atendendo às especificações, é agora observável na janela 3D a dinâmica do fluído calculada em 643 células cúbicas em que a boundingbox da malha domain foi subdividida.

Note que a dinâmica resulta da resolução discreta das equações diferenciais que regem o comportamento do fuído, pelo que, embora muito semelhante, dada a evolução numérica, a dinâmica não é igual em baixa e alta resolução.

Altere o parâmetro Offset para -50. Pré visualize a simulação, [Alt]+[A].

Pode ver que a simulação é agora reproduzida na janela 3D entre as frames 51 e 100.

Note que a alteração dos parâmetros Time Start/End e Speed implica uma mudança dos instantes em que o valor das equações diferenciais são calculadas pelo que se torna necessário que o seu cálculo seja feito novamente (pressionando o botão Bake).

No painel Fluid do Domain, reponha o valor Offset : 0 e altere a especificação da directoria de cache para //\cache_fluid2.









No painel Domain World seleccione a viscosidade pré-definida Honey.






No painel Fluid do Domain, pressione Bake para proceder ao cálculo e registo da dinâmica do fluido para as novas condições de viscosidade.

Vá para a frame 1, [Shift]+[LA], e pré visualize a simulação, [Alt]+[A]. Compare com a anteriormente obtida (a dinâmica padrão é correspondente à viscosidade da água).

No painel Domain World, reponha o valor da viscosidade da água, seleccionando Viscosity Presets : Water, e especifique Real World Size Metres : 5.0.

No painel Fluid do Domain, altere a especificação da directoria de cache para //\cache_fluid3, e pressione Bake para proceder ao cálculo e registo da dinâmica do fluido para as novas dimensões do domínio.

Vá para a frame 1, [Shift]+[LA], e pré visualize a simulação, [Alt]+[A].

Compare com a anteriormente obtida. Note que agora o domínio é um cubo com 5 metros de aresta.

Como não alterámos a dimensão da malha Fluid, o volume de líquido que intervém na simulação é agora maior.

Note como o líquido demora agora mais tempo a atingir a base do domínio, dado que a distância a percorrer é maior, ou, em geral, note como o processo parece agora mais lento, o que resulta das distâncias a percorrer pelo fluido serem agora maiores.

No painel Domain Boundary especifique Surface Subdivisions : 2.

No Painel Particles especifique Generate Particles : 2.

No painel Fluid do Domain, altere a especificação da directoria de cache para //\cache_fluid4, e pressione Bake para proceder ao cálculo e registo da dinâmica do fluido para os novos parâmetros da simulação.

Vá para a frame 1, [Shift]+[LA], e pré visualize a simulação, [Alt]+[A].

Pode ver agora que há um enorme número de gotículas geradas ao longo da simulação, que se desprende da superfície principal do fluido.

Vamos agora criar uma malha do tipo Obstacle.

Seleccione o Domain, [RMB], e coloque sobre ele o cursor 3D, [Shift]+[S] > Cursor to Selected.

Insira uma UV Sphere, [Shift]+[A] > Mesh > UV Sphere e desloque-a ligeiramente para cima, [G] > [Z].

Entre em modo edição, [Tab], seleccione os vértices da semiesfera superior, [A] > [B], e elimine-os, [X].

Numa malha Obstacle é muito importante o correcto posicionamento das normais à superfície.

Active a tabela de propriedades da janela 3D, [N], e, no painel Mesh Diplay, active a representação das normais às faces.






Pode ver que as normais se encontram dirigidas para o exterior da esfera.

Se procedesse à simulação poderia ver que o simulador iria considerar que estava na presença de uma semiesfera sólida (como se fosse fechada no topo).






Active o painel de operadores da janela 3D, [T], e inverta a posição das normais.






Pode ver que agora as normais se encontram dirigidas para o interior da esfera.











Saia de modo edição, [Tab]. Active o contexto Physics da janela de propriedades, pressione Fluid, e, no painel Fluid, seleccione Obstacle.












No painel Domain Boundary reponha Surface Subdivisions : 0. No painel Particles reponha Generate Particles : 0.






No painel Fluid do Domain, altere a especificação da directoria de cache para //\cache_fluid5, e pressione Bake para proceder ao cálculo e registo da dinâmica do fluido para os novos parâmetros da simulação.







Vá para a frame 1, [Shift]+[LA], e pré visualize a simulação, [Alt]+[A].

Pode ver que o fluido se escapa através da parede da esfera.

Tal deve-se ao facto de o obstáculo ser demasiado fino para ser convenientemente detectado pelo simulador, ou, mais exactamente, ao facto de, sendo a malha constituída apenas por uma superfície, não ter sido alterada, no painel Fluid, a opção padrão Volume Initialization : Volume.

Com a malha Obstacle seleccionada, active o contexto Physics da janela de propriedades e altere a opção para Volume Initialization : Shell.





Seleccione a malha Domain e pressione Bake para proceder ao cálculo e registo da dinâmica do fluido.

Vá para a frame 1, [Shift]+[LA], e pré visualize a simulação, [Alt]+[A].

Note que o fluido é visível na superfície exterior da malha Obstacle, mas não se desprende da superfície.

A visibilidade na superfície exterior deve-se à dimensão das células da malha do domínio, sendo tanto maior quanto mais baixa for a resolução.

Pode ver na figura de cima o resultado para uma resolução 256, e na figura de baixo o resultado para uma resolução 64.

Note que, obviamente, a malha que serve de obstáculo na simulação não corresponde necessariamente à malha que é renderizada, pelo que esta característica da simulação de fluidos é facilmente ocultada na renderização.









Seleccione a malha Fluid, [RMB], e escale-a para metade, [S] > 0.5.

Active o contexto Physics da janela de propriedades, e, no painel Fluid, seleccione Inflow, e especifique Inflow Velocity Z : -1.0.


Seleccione o obstáculo, active o contexto Object Modifiers da janela de propriedades, associe à malha um modificador Solidify, especifique Thickness até que o objecto toque a fronteira inferior do domínio, e passe o modificador para a segunda posição do stack.














Escale ligeiramente a malha obstáculo em xy, [S] > [Shift]+[Z].











Seleccione o domínio. No painel Fluid, altere a especificação da directoria de cache para //\cache_fluid6, e pressione Bake para proceder ao cálculo e registo da dinâmica do fluido para os novos parâmetros da simulação.

Vá para a frame 1, [Shift]+[LA], e pré visualize a simulação, [Alt]+[A].

Pode ver agora que o fluido é continuamente gerado a partir da malha Inflow, preenchendo progressivamente todo o domínio.

Seleccione o objecto Domain, [RMB], coloque sobre ele o cursor 3D, [Shift]+[S] > Cursor to Selected, e insira um cubo, [Shift]+[A] > [Mesh] > Cube.

Escale muito ligeiramente o cubo, [S], de modo a ficar contido dentro do domínio, escale-o segundo z, [S] > [Z], e desloque-o para junto da fronteira inferior do domínio, [G] > [Z].




Seleccione o contexto Physics da janela de propriedades, pressione Fluid, e, no painel Fluid, Seleccione Outflow.











Seleccione o domínio. No painel Fluid, altere a especificação da directoria de cache para //\cache_fluid7, e pressione Bake para proceder ao cálculo e registo da dinâmica do fluido para os novos parâmetros da simulação.

Vá para a frame 1, [Shift]+[LA], e pré visualize a simulação, [Alt]+[A].

Pode ver agora que o fluido é eliminado do domínio quando entra em contacto com o objecto Outflow.

Ficam assim vistos os conceitos fundamentais da simulação de fluidos no Bender.

Há agora que associar aos objectos os materiais e texturas convenientes.

Veja o Fluid Tutorial 1, Fluid Tutorial 2, e Fluid Tutorial 3.