[Unity] 모바일 앱을 위한 파티클 시스템 최적화 요약
원문: Unity learn, Optimizing Particle Effects for Mobile Applications, https://learn.unity.com/tutorial/optimizing-particle-effects-for-mobile-applications#
요약: lunchballer
확인해 보아야 할 것들
- 파티클의 높은 밀집도
- 픽셀이 겹쳐져서 overdraw될 수 있다. 밀집이 심하지 않은지 확인할 것
- 엄청난 수의 파티클 개수
- 많은 파티클로 인해 렌더링 비용이 많이 든다. 개수 조정하고, 이미지 수정으로 비슷한 효과를 내도록 하라.
- 엄청난 수의 파티클 콜라이더 개수
- 물리 연산량이 많아져서 프레임 저하, 과열을 발생 시킨다
스모크 파티클 최적화 예시
- 1000개의 max 파티클 카운트를 35로 바꾸어도 보기에 큰 지장을 주지 않는다.
- Angle 을 바꿔 두께감을 표현해준다.
- 커브의 급격한 변화를 줄이고 부드러운 곡선으로 만들어 계산량을 줄인다.
- Render 모듈에서 Cast Shadows를 Off로 한다.
성능 개선 팁
- 평균적으로 한 프레임에 2ms 정도 파티클을 위한 예산으로 한다. 파티클의 표현 중요도에 따라 약간 다를 순 있다.
- 가능하면 Unlit 이펙트를 사용하라. 셰이더를 잘 선택하라.
- 동적 배칭을 사용하라. 드로우콜을 크게 줄일 수 있다.
- 텍스쳐들을 하나의 아틀라스와 메터리얼로 만들라. 프레임 애니매이션을 같은 사이즈로 만들어라.
- 화면에 보이지 않을 때 컬링하도록 하라.
- Emission을 일정하게 유지하고, 최적화된 곡선을 사용하라.