흑기사 방랑일지 ahden's DevNote

아트팀 맞춤형: 최적화 가이드 - 메시 최적화 2. 마이크로 삼각형 피하기

너무 작은 삼각형은 아주 위험해

화면에 매우 작은 픽셀 영역에 그려지는 삼각형을 마이크로 삼각형이라고 합니다. 극단적일 경우, 삼각형이 단 1개의 화면 픽셀만 차지하는 경우도 있을 수 있겠죠. 보통 지나치게 하이-폴리곤으로 모델을 제작하였거나, 모델이 먼 거리에 위치하여 화면에 작게 표현됨에도 불구하고 폴리곤 단순화 처리를 안했을 경우에 이런 초미세한 삼각형이 화면에 그려질 수 있습니다.

이런 마이크로 삼각형은 성능에 안좋은 영향을 주기 때문에 최대한 피해야 합니다.

단순히 생각해도 마이크로 삼각형이 많다는 것은 폴리곤 및 버텍수 개수가 많다는 의미이고, 메모리 대역폭의 낭비와 CPU 비용 증가로 이어집니다.

하지만 이보다 더욱 심각한 것은 GPU 성능을 갉아먹는다는 점입니다. 아래의 그림을 보면, 삼각형 당 차지하는 화면 픽셀 크기가 다른 모델 간 GPU 성능 저하를 보여줍니다. 단위 삼각형이 차지하는 화면 영역이 작아질수록 픽셀 당 부하가 커지는 것이 눈에 바로 확인이 됩니다. 가장 왼쪽에 있는 모델은 삼각형 당 평균 25픽셀 크기이고, 가장 오른쪽 모델은 삼각형 당 평균 1픽셀 크기인데, 이 두 모델 간에는 거의 3-4배에 육박하는 셰이딩 연산 부하 차이가 발생합니다.

Untitled

아래 그림은 모델을 최적화하여 마이크로 삼각형을 거의 제거했을 때 GPU 셰이딩 효율이 얼마나 향상되었는지 보여줍니다.

Untitled

결론: 삼각형은 최대한 크게

모델 제작 시, 미세한 작은 삼각형 폴리곤을 사용하지 않도록 하고 삼각형은 최대한 큰 영역을 차지하도록 구성합니다. 하나의 삼각형이 차지하는 픽셀 영역은 최소 20픽셀 정도는 되어야 합니다. 물론 이것은 최소한의 한계값일 뿐이며, 어떻게 해서든 가능한 한 크게 제작해야 합니다.