펄어비스 테크 인턴십 기간 동안 유체의 물리적 거동을 실시간으로 구현하는 Smoothed Particle Hydrodynamics(SPH) 기반 시뮬레이션 엔진 개발 프로젝트를 수행하였습니다. 이 프로젝트는 단순한 구현을 넘어, 수학과 물리의 기초 개념들이 어떻게 연결되어 하나의 거대한 물리 시스템으로 확장되는지 깊이 있게 이해할 수 있었던 소중한 시간이었습니다.
개발 과정에서는 대규모 입자 연산을 효율적으로 처리하기 위해 병렬 컴퓨팅 환경에서의 성능 최적화에 집중하였습니다. 특히 이웃 찾기(Neighbor Search) 알고리즘에서 사용되는 병렬 정렬 알고리즘과 물리 법칙을 계산하는 커널 함수가 주요 성능 병목 구간임을 파악하고, 이를 개선하기 위해 BitonicSort, RadixSort 등의 기법을 리서치하며 최적의 연산 구조를 설계하는 데 주력하였습니다.
다만, 프로젝트 수행 당시 실시간 성능 확보라는 압박 속에서 Weakly compressible SPH (WCSPH)기법의 Iteration을 1회로 제한하는 설계를 선택하였습니다. 결과적으로 이는 유체 거동의 안정성을 저해하는 요인이 되었고, 강성 파라미터에 대한 의존도를 지나치게 높여 작은 수치 변화에도 시스템이 민감하게 반응하는 한계를 낳았습니다. 기술적 판단에 있어 성능과 안정성 사이의 트레이드오프를 더 냉철하게 분석해야 함을 뼈저리게 느낀 계기가 되었습니다.
비록 인턴십 기간 내에 모든 수정을 완료하지는 못했으나, 사후 연구를 통해 실시간 환경에서는 Position Based Fluids(PBF) 방식이나 충분한 Iteration 확보가 거동의 안정성을 비약적으로 높일 수 있다는 결론을 도출하였습니다. 이러한 경험을 통해 문제의 근본 원인을 정밀하게 분석하고, 실패를 바탕으로 더 나은 기술적 대안을 찾아내는 엔지니어링 프로세스를 확립할 수 있었습니다.
顯示更多