N체 문제 시뮬레이션 만들어봤습니다
요즘 넷플릭스 시리즈 삼체가 인기라고 해서
N체 문제 시뮬레이션을 한번 만들어봤습니다
https://waynechoidev.github.io/n-body-problem/
WebGPU로 만들었어요
윈도우, 맥, 안드로이드 크롬에선 돌아가고
리눅스는 크롬 개발자버젼에다 특정 플래그 포함해서 실행하면 돌아갑니다
아이폰은 아직 미지원입니다
찾아보니 현재까지 관측된 가장 많은 항성으로 구성된 다중성계가
항성이 7개라고 해서 7체문제로 구성해봤습니다.
Compute shader로 각각 모든 물체의 거리와 질량들을 고려해서 가속도를 연산하기때문에
GPU 성능만 따라준다면 물체 개수는 늘릴 수 있지만
너무 많아지니까 보기에 예쁘지가 않더라구요
뉴턴 방정식을 그대로 따르되
화면의 크기와 속도에 맞게 중력상수만 조절하였고,
모바일에서 너무 작은 소수에서 부동소수점 이슈가 있어서
물체 사이의 거리가 0이 되지 않게 작은 값으로 클램핑을 했습니다.
그리고 충돌은 따로 구현하지 않아서 별과 별이 서로를 통과하기도 합니다.
WebGPU가 api 자체도 모던하고
compute shader 쓰는게 간편하게 되어있어서
요즘 이걸로 이것저것 만들어 보는게 재밌네요