2021-05-11 – Um pouco de Fluid/Fire Dynamics, com o meu algoritmo gerador de fogo em tempo real, em C/C++…
Deixo aqui três tipos de animações criadas com o algoritmo gerador de fogo que desenvolvi em C/C++ para o meu Game Engine, criado do zero também em C/C++ (e que podem ver na opção “Projectos Meus” no menu deste website.
Agora, as três variantes são muito simples. Numa delas não tenho velocidade de vento, na outra tenho vento suave, e na outra um vento forte, e criei as três, para ver qual delas fica melhor nos meus jogos (os tais que criarei no Futuro com o meu Game Engine).
Agora, este é o algoritmo que em tempos partilhei dizendo que “descobri a fórmula que gera o fogo na nossa realidade”. Claro que isto não é correcto, pois não existe uma fórmula geradora de fogo na nossa realidade, o que existem, são várias leis de Física e 1001 dinâmicas, que todas interligadas, fazem com que o fogo se porta da maneira que se porta, seja na Terra, seja num espaço sem gravidade, o que quer que seja, são as leis da Física em si que determinam o seu comportamento.
Mas claro que num Game Engine, não vou simular toda a Física da nossa realidade e do Universo, para gerar simples fogos, senão os jogos passariam de uns 10000 FPS para 1 FPS, seria overkill para um simples jogo. Da mesma maneira, se quisermos criar uma explosão nuclear num jogo, vamos usar algo simplista, como “o cogumelo será x vezes maior em píxeis que a força usada”, apesar de este fogo ser mais complexo que isso, mas mais simples que a realidade em que vivemos. :).
Daí, sendo o jogo uma realidade mais simplista, tive de criar fórmulas mais simplistas de geração de fogo. Não serão as usadas pela nossa realidade, pelo “programador” que desenhou a nossa realidade, mas sim outras que simulam o fogo de maneira mais simples, e que o faz funcionar em realidades mais simples como serão os meus videojogos.
O importante é que simula o fogo bastante bem, e fica bastante bonito.
Vou deixar os três exemplos para verem, todos eles gravados no dia 15 de Abril, com o algoritmo de gravação de GIFs animados em tempo real no meu Game Engine, mas só agora partilhados por mim (tinham ficado esquecidos).
Primeiro, um fogo sem vento:
Agora, um fogo com um vento ligeiro:
E agora, um fogo com um vento mais forte:
E pronto, espero que tenham gostado.
Atenção que as animações foram criadas em tamanho pequeno para poupar tamanho no GIF animado, e aqui são ampliados para se verem melhor, daí ficarem pixelizados!
Hei-de criar mais coisas relacionadas com Física, ou Matemática, ou simplesmente features novas para o meu Game Engine, nas secções correspondentes, estejam atentos a este website. 🙂
Hasta!
2021-05-11.
Partilhei este post no LinkedIn em 14 de Maio de 2021, por me faltar lá uma animação deste fogo bem feita, que a anterior estava aos saltos. 🙂 (https://www.linkedin.com/feed/update/urn:li:activity:6798861579686359040/):
«Volto a deixar aqui um exemplo do meu algoritmo de geração de fogo.
É que da última vez que o fiz, o meu algoritmo de gravação de gifs animados não estava bem feito, e a animação ficou estragada. E queria também ter um fogo bem feito no meu perfil.
Assim, desta vez, partilho-o mas sem falhas na animação.
Partilho também sem vento desta vez.
Mas se quiserem ver as três versões que fiz, a sem vento, a com vento ligeiro, e a com vento forte, visitem:
Atenção que como o fogo está muito pequeno (para encaixar no meu Game Engine, que foi para isso que criei o algoritmo), ficou pixelizado ao ser aumentado.
Pergunto-me se fica melhor no jogo com vento ligeiro, sem vento, ou com vento forte.
O mal é que quando o criei, foi a pensar em vento, e sem vento fica um bocado estranho, talvez um dia melhore o algoritmo.
Mas é suposto ser um wildfire com chamas altas, penso que não está mal de todo.
Para a semana partilho novidades sobre o meu trading systems’ back-tester e talvez sobre o meu simulador de Physics da SpaceX.
Entretanto podem ver actualizações sobre todos os projectos no meu site http://www.goncalo.pt.
2021-05-14.»