Skip to content

Latest commit

 

History

History
42 lines (31 loc) · 1.67 KB

File metadata and controls

42 lines (31 loc) · 1.67 KB

RealTime_SmokeSimulation3D_GPU

Jos Stam의 논문 기반으로 작성된 Real Time Smoke Simulation을 CUDA를 이용하여 3D로 구현하였다.
그리드 기반의 연기 시뮬레이션으로 각 셀에 대하여 navier stokes 지배방정식을 red black gauss seidel 법을 통해 수치적으로 풀어냈다.
기존의 OpenGL만 이용한 방식보다 그리드의 개수가 많아도 성능을 낼 수 있도록 GPU 프로그래밍을 적용하였다.

사용 API

  • OpenGL
  • GLEW
  • GLFW
  • GLM
  • CUDA 12.2

시뮬레이션 환경

  • CPU : intel i7-10 10700K
  • GPU : RTX 3070 BLACK EDITION OC D6 8GB
  • RAM : samsung DDR4-3200(8GB) x 2

참고 논문

  • "Real-time fluid dynamics for games" by jos stam
  • "Stable fluids" by jos stam

컨트롤

  • WASD : 카메라 이동
  • 마우스 : 카메라 방향 전환
  • 키보드 1번 : 연기 표시
  • 키보드 2번 : 속도 표시
  • Z : 소스항 추가 및 외력 추가

추가 사항

  • main 코드의 add_force_source 함수를 통해 외력의 방향을 수정할 수 있음
  • FragmentShaderSL.txt 파일과 메인 소스 파일의 density 관련 함수와 코드의 수정을 통해 투명도를 조절할 수 있음

결과
Image Alt Text
Image Alt Text
Image Alt Text
Image Alt Text