흑기사 방랑일지 ahden's DevNote

아트팀 맞춤형: 최적화 가이드 - 메시 최적화 3. 길고 가느다란 삼각형 피하기

메시 제작 시, 길고 얇은 형태의 삼각형은 피하도록 합니다.

앞서 화면에서 매우 작은 삼각형으로 만들어진 모델이 성능 면에서 아주 안좋은 영향을 미치는 것을 확인했습니다. 길고 가느다란 형태의 삼각형 역시 성능 부하를 가져오므로 피해야 합니다. 부연 설명을 하자면, 성능에 영향을 주는 요소 중 하나는 바로 삼각형의 모서리(에지) 부분 때문입니다. 모서리를 포함한 주변 픽셀 영역에서는 픽셀 셰이딩 부하가 더 크기 때문에 그리기 효율이 떨어집니다. 이 성능 부하는 삼각형 단위마다 적용되기 때문에, 삼각형 개수가 많고 에지가 길고 많을수록 증가합니다. 그러므로 성능 효율을 향상시키려면, 삼각형의 모서리 영역이 차지하는 픽셀 영역을 최소화해야 합니다.

예를 들어, 둥근 모서리나 곡선을 렌더링하기 위해 다음과 같이 삼각형 팬 형태로 제작할 수 있지만, 이렇게 하면 여러 개의 길고 가느다란 대각선이 발생하고 각 모서리는 추가적인 오버헤드가 발생합니다. 심지어 사이즈까지 커지면 오버헤드가 더 빠르게 늘어날 수 있습니다.

Untitled

둥근 모서리에 대한 더 나은 솔루션은 삼각형 모양을 재귀적으로 세분화해가는 것입니다. 이로써 가장자리 길이를 감소시키고 같은 크기 영역에서의 모서리 비율을 최소화합니다.

Untitled

아래 그림은 어떻게 제작하느냐에 따른 성능 차이를 보여줍니다:

Untitled

Untitled

x축은 삼각형 개수를, y축은 FPS(frames per second)를 나타냅니다. 앞의 두 가지 경우엔 삼각형 개수가 늘어남에 따라 fps가 현저하게 떨어집니다. 반면, 마지막 경우는 삼각형이 증가해도 fps가 거의 유지되는 것을 볼 수 있습니다. 이처럼 어떻게 제작하느냐는 성능에 치명적인 영향을 미칠 수 있으므로 이 점을 염두하고 제작하여야 합니다.