[Unity] 모바일 앱을 위한 파티클 시스템 최적화 요약
원문: Unity learn, Optimizing Particle Effects for Mobile Applications, https://learn.unity.com/tutorial/optimizing-particle-effects-for-mobile-applications#
요약: lunchballer
확인해 보아야 할 것들
- 파티클의 높은 밀집도
- 픽셀이 겹쳐져서 overdraw될 수 있다. 밀집이 심하지 않은지 확인할 것
- 엄청난 수의 파티클 개수
- 많은 파티클로 인해 렌더링 비용이 많이 든다. 개수 조정하고, 이미지 수정으로 비슷한 효과를 내도록 하라.
- 엄청난 수의 파티클 콜라이더 개수
- 물리 연산량이 많아져서 프레임 저하, 과열을 발생 시킨다
스모크 파티클 최적화 예시
![](https://i2.wp.com/lunchballer.com/wp-content/uploads/2023/11/bfc0f7ac-f46f-458a-ae4e-b496f1f3f1c2_image5.png.1400x0x1.png?w=1170&ssl=1)
- 1000개의 max 파티클 카운트를 35로 바꾸어도 보기에 큰 지장을 주지 않는다.
![](https://i1.wp.com/lunchballer.com/wp-content/uploads/2023/11/753a07ef-462e-4d96-8b51-24b0ba7cdd0f_image3.png.1400x0x1_2.png?w=1170&ssl=1)
- Angle 을 바꿔 두께감을 표현해준다.
![](https://i0.wp.com/lunchballer.com/wp-content/uploads/2023/11/5172cc38-0a99-4c8f-bf92-bd84cddd9f96_image4.png.1400x0x1_3.png?w=1170&ssl=1)
- 커브의 급격한 변화를 줄이고 부드러운 곡선으로 만들어 계산량을 줄인다.
![](https://i2.wp.com/lunchballer.com/wp-content/uploads/2023/11/38be5aa0-d03a-4bb3-a7b4-78506282bf2f_image2.png.1400x0x1_4.png?w=1170&ssl=1)
- Render 모듈에서 Cast Shadows를 Off로 한다.
![](https://i0.wp.com/lunchballer.com/wp-content/uploads/2023/11/018505a6-5631-4ec9-a909-0d57bd7d05f1_image1.png.1400x0x1_5.png?w=1170&ssl=1)
성능 개선 팁
- 평균적으로 한 프레임에 2ms 정도 파티클을 위한 예산으로 한다. 파티클의 표현 중요도에 따라 약간 다를 순 있다.
- 가능하면 Unlit 이펙트를 사용하라. 셰이더를 잘 선택하라.
- 동적 배칭을 사용하라. 드로우콜을 크게 줄일 수 있다.
- 텍스쳐들을 하나의 아틀라스와 메터리얼로 만들라. 프레임 애니매이션을 같은 사이즈로 만들어라.
- 화면에 보이지 않을 때 컬링하도록 하라.
- Emission을 일정하게 유지하고, 최적화된 곡선을 사용하라.
![](https://i1.wp.com/lunchballer.com/wp-content/uploads/2023/11/1307efe8-e637-474c-a2de-d666819b7d54_image6.png.1400x0x1_6.png?w=1170&ssl=1)