Рет қаралды 123,837
Nesse episódio eu mostro como programei meu próprio universo (ou, pelo menos, parte dele) usando simulação física e ray tracing na @unity.
De física, eu implementei somente uma fórmula: a lei da gravitação universal, do grande Isaac Newton. Meu script em C# aplica as devidas forças gravitacionais em todos os rigid bodies presentes na cena, daí a Unity cuida de todo o resto (integração, detecção e tratamento de colisão, etc). Depois eu dei um trato visual usando shaders novamente!
Com esse sistema, criei alguns sistemas planetários, tentei resolver o "problema dos três corpos", contemplei um nascer do sol, um eclipse... e até testei a teoria da terra plana (para fins de entretenimento, claro).
No fim, é tudo bem simples, mas o resultado visual é muito bonito, principalmente com ray tracing!
Esse projeto vai servir de base para um jogo que eu tô desenvolvendo. Será um game fantástico e, em breve, estará disponível nas lojas mais próximas de você!
Se você também se sentiu inspirado pra fazer um jogo com isso, você pode baixar o código completo do meu projeto aqui:
github.com/oprogramadorreal/G...
Boa sorte e até o próximo episódio! :)
Menu:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Introdução: 0:00
Minha história com simulação física: 1:11
Objetivos: 3:24
Lei da gravitação universal: 4:03
Criando estrelas e planetas: 4:52
Simulando: 5:18
Um grande caos: 6:41
A física é bela: 7:24
O problema dos três corpos: 7:45
Objetos com massas diferentes: 8:38
Um sistema solar: 8:58
Terra plana?: 9:52
Renderização com ray tracing: 10:24
Próximos passos: 11:33
Adendos:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1) Com relação ao que eu disse em 10:47: o shader do ray tracing foi escrito usando "compute shaders" da Unity (docs.unity3d.com/Manual/class.... A sintaxe é bem similar ao HLSL do DirectX, mas não é exatamente a mesma coisa.
2) Para a simulação funcionar do jeito que mostrei no vídeo, é importante desativar a gravidade (da Unity) para todos os rigid bodies na cena. A gravidade é calculada somente pelo script que chamei de "Simulator".
Referências:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Esse episódio foi inspirado em alguns vídeos do @SebastianLague. Recomendo fortemente o canal dele!
Coding Adventure: Solar System
• Coding Adventure: Sola...
Coding Adventure: Compute Shaders
• Coding Adventure: Comp...
Coding Adventure: Ray Marching
• Coding Adventure: Ray ...
Ray Tracing: O que é e como funciona
• Ray Tracing: O que é e...
Artigo sobre ray tracing na Unity (só implementei a parte 1)
three-eyed-games.com/2018/05/0...
Estrelas usando o sistema de partículas da Unity
• Creating an Infinite A...
Problema dos três corpos
pt.wikipedia.org/wiki/Problem...
Lei da gravitação universal
pt.wikipedia.org/wiki/Lei_da_...
• A História COMPLETA da... - veja mais no canal @CienciaTodoDia
Como simular gravidade na Unity
• How to Simulate Gravit...
Matemática para games (forças)
• Game Math Theory - FORCES
Músicas utilizadas:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MONIN - Limits [Chill Electro] - RoyaltyFreePlanet
• MONIN - Limits [Chill ...
CHRISRGMFB - Radical Heights [Synthwave] - RoyaltyFreePlanet
• CHRISRGMFB - Radical H...
Aries Beats - Infinity [Synthwave] - RoyaltyFreePlanet
• Aries Beats - Infinity...
MONIN - Binary Stars [Synthwave] - RoyaltyFreePlanet
• MONIN - Binary Stars [...
Aries Beats - Night Ride [Synthwave] - RoyaltyFreePlanet
• Aries Beats - Night Ri...
Gravity - Lance Conrad
www.storyblocks.com/audio/sto...
#física #raytracing #gamedev