RuntimeBakedPhysics
연구, 2022-1
복잡한 물리 장면의 성능 향상을 위한 방법 탐구
개인 참여
Github
https://github.com/lumeriith/UE5-RuntimeBakedPhysics
Youtube (Overview)
https://youtu.be/Wwjn05zgbg8
Youtube (SoD Stress Test)
https://youtu.be/i0U_fU-rdSs

Creating Complex & Performant Physics Scene by Runtime Physics Baking, Simuating on Demand, and Physics LOD

펄어비스x경희대 소프트웨어융합학과 인재양성 프로그램 2차

프로젝트 동기

  • 게임 속 물리 연산은 비용이 크다.
  • 물리 연산을 한정적으로 사용하거나 Baked Physics Animation 등을 이용한다.
  • Animation을 실시간 물리 연산을 대신하여 사용하는 것은 제한 사항이 많다.
  • 이러한 제한 사항을 극복하고 물리 장면의 부담을 줄여 복잡하고 화려한 연출의 Artistic Freedom을 주고자 하였다.

사용 기술

Runtime Physics Baking

게임 진행 중에 복잡한 물리 장면을 미리 연산하여 저장/재생하여 폭발 장면에서의 성능을 향상합니다.

  • Unreal Engine 5에 PhysX 3.4 연동
  • Collision Aggregate/Mesh Generation
  • Physics Event System, Scene Controller

Simulate on Demand

재생 중인 물체들 중 플레이어 등의 동적 물체들과 충돌할 가능성이 있는 것들을 선택적으로 실시간 시뮬레이션으로 대치하여 부자연스럽지 않게 처리합니다.

  • Spatial Hashing
  • AABB Collision Check

Physics LoD

멀리 있어 눈에 잘 띄지 않는 장면들에 대해 Physics Scene을 분리하고 정확도와 프레임레이트를 낮추고 계산하여 성능을 향상합니다.

Automated Tests & Metrics

테스트를 자동으로 수행하고 평균 프레임, 소요시간 등의 성능 지표를 수집하는 도구를 구현하여 개발과 테스트에 소요되는 시간을 단축하였습니다.