CPU(ms)
Circle | 6.5 ~ 8.2 |
Box | 6.8 ~ 8.2 |
Capsule | 6.9 ~ 8.2 |
FPS(높을수록 빠름)
Circle | 114 ~ 160 |
Box | 117 ~ 150 |
Capsule | 114 ~ 150 |
각 콜라이더는 100개를 기준으로 테스트 해봤다.
100개라 그런지 눈에 띄게 차이가 나지 않는다.
300개 기준 FPS(높을수록 빠름)
Circle | 110 ~ 126 |
Box | 94 ~ 112 |
Capsule | 95 ~ 110 |
GPT한테 충돌 연산량 비교 질문한 답변 결과▼
유니티에서 Circle, Box, Capsule Collider의 충돌 연산량을 비교하는 것은 게임 성능 최적화에 중요한 요소입니다. 각 Collider는 다양한 형상의 충돌을 처리하며, 각각의 연산량과 성능에 미치는 영향을 비교하는 것은 매우 유용합니다.
비교 기준
- 충돌 계산 복잡도
- 메모리 사용량
- 물리 엔진 최적화
Circle Collider
- 장점: 가장 단순한 형태의 콜라이더로, 원형의 충돌 계산이 매우 단순합니다.
- 단점: 정확한 충돌이 필요할 때는 부적합할 수 있습니다.
- 충돌 계산: 두 원 사이의 거리 계산을 기반으로 하며, O(1) 복잡도를 가집니다.
Box Collider
- 장점: 직사각형 형태의 충돌 계산이 상대적으로 단순하며, 여러 방향으로의 충돌을 처리할 수 있습니다.
- 단점: 원형 또는 복잡한 형태의 오브젝트에 비해 비효율적일 수 있습니다.
- 충돌 계산: AABB(축 정렬 경계 상자) 충돌 검사로, 상대적으로 빠른 편이며 O(1) 복잡도를 가집니다.
Capsule Collider
- 장점: 인체와 같은 길쭉한 형태의 오브젝트에 적합하며, 복합적인 충돌 처리가 가능합니다.
- 단점: 연산량이 다소 높을 수 있으며, 다른 콜라이더에 비해 메모리 사용량이 많을 수 있습니다.
- 충돌 계산: 원형과 직선 부분의 조합으로, 충돌 계산이 Circle 및 Box Collider보다 복잡할 수 있습니다. 복잡도는 일반적으로 O(n)입니다.
연산량 비교 실험
다양한 상황에서 이 세 가지 콜라이더의 충돌 연산량을 비교하기 위해, 다음과 같은 실험을 수행할 수 있습니다.
- 동일한 수의 Collider 배치: 동일한 수의 Circle, Box, Capsule Collider를 게임 월드에 배치합니다.
- 충돌 횟수 기록: 일정 시간 동안 발생한 충돌 횟수를 기록합니다.
- 프레임 속도 측정: 각 콜라이더 조합에 대해 프레임 속도를 측정합니다.
이러한 실험을 통해 얻은 데이터를 기반으로 각 콜라이더의 성능을 비교할 수 있습니다. 예를 들어, Circle Collider가 가장 간단한 충돌 계산을 가지고 있어 가장 높은 프레임 속도를 유지할 가능성이 높습니다. 반면 Capsule Collider는 복잡한 형태로 인해 상대적으로 낮은 성능을 보일 수 있습니다.
실험 결과는 다음과 같은 표로 정리할 수 있습니다.
Collider TypeAverage Collision Checks per SecondAverage Frame Rate (FPS)Circle Collider | 1000 | 60 |
Box Collider | 800 | 55 |
Capsule Collider | 600 | 50 |
위 표는 가상의 데이터 예시이며, 실제 실험 결과는 다를 수 있습니다.
유니티에서 각 Collider의 충돌 연산량을 직접 비교해보는 실험을 수행하면, 최적화할 때 어떤 콜라이더를 선택해야 할지에 대한 중요한 인사이트를 얻을 수 있습니다.
실험결과대로 Circle Collider가 충돌했을 때 연산이 빠른 것 같다.
논문을 쓸건 아니라서 실험은 100개, 300개에서 그쳤지만, 좀 더 최적화하고 싶은 마음에 실험을 해봤다.
결론은 Circle > Box > Capsule 순으로 빠르다.
하지만 언제나 Circle이 빠르다는 생각은 안하는게 좋을 것 같다. 상황마다 다를 것이니...
'스파르타 게임개발종합반(Unity) > TIL - 본캠프 매일 공부 기록' 카테고리의 다른 글
2024.07.04 TIL - 유니티 시네머신 개요 (0) | 2024.07.04 |
---|---|
2024.07.03 TIL - 캐릭터 컨트롤러 VS Rigidbody (0) | 2024.07.03 |
2024.07.01 TIL - 유한 상태 기계(Finite State Machine, FSM), 유한 상태 머신 (0) | 2024.07.01 |
2024.06.28 TIL - 유니티 렌더링 파이프라인(URP - Unity Rendering Pipeline) (0) | 2024.06.28 |
2024.06.26 TIL - 아이템 오브젝트가 SetActive(false)일 때 코루틴 사용 (0) | 2024.06.27 |
댓글