TECHARTNOMAD | TECHARTFLOWIO.COM

(출간예정) 모두의 셰이더 프로그래밍

9장. 핵심정리 중 멀티패스와 버텍스

jplee 2025. 3. 15. 23:10

9.9 핵심 정리

셀 셰이딩 학습 과정을 잘 마무리 한 것을 축하드린다. 이제 전체 과정을 명료하게 복기 하면서 핵심정리 하는 시간이다.

9.9.1 멀티패스와 Vertex 그리고 Vertex buffer object

아웃라인 렌더링을 위해 멀티머티리얼과 멀티패스 모두 활용해 봤다.

자 그럼 멀티패스를 활용하거나 멀티머티리얼을 활용했을 때 버텍스 수량은 어떻게 증가하고 버텍스 버퍼 오브젝트는 어떤 식으로 증가하는지도 알고 넘어가자.

패스 수량 버텍스 증가량 VBO 사용 방식 GPU 부하
단일 패스 (No Outline) 1배 (기본 버텍스 수) 1개 VBO 낮음
멀티패스 (기본 + 버텍스 오프셋 방식) 2배 동일한 VBO 재사용 보통

멀티패스 렌더링을 사용할 경우 패스 수만큼 버텍스 수량이 증가하지만, 일반적으로 동일한 VBO를 여러 번 바인딩하여 사용하므로 VBO 개수 자체는 증가하지 않으며, 다만 별도의 실루엣을 위한 VBO를 추가할 경우 GPU 메모리 사용량이 증가할 수 있다. 최근에는 대안으로 Screen-Space Outline 방식(포스트 프로세싱)이 활용되는 추세이기도 하다. 

모바일 게임의 경우 iOS 또는 AOS 에서 버텍스 수량 증가를 보수적으로 처리하고 포스트프로세싱 아웃라인을 사용하는 경우가 더 이득인 경우도 있으니 다 방면으로 생각 해 봐야겠다. 물론 최적화 측면까지 생각 할 경우에는 그 게임의 플레이 형식, 아트 스타일, 레벨 구성이나 이벤트성 장면 구성과 특성, 카메라의 시야 범위, 도시 거점 설계 등등 많은 부분을 복합적으로 검토하고 결정해야 하는 부분이기 때문에 무엇을 더 선호하거나 추천한다고 말하기에는 좀 난해한 부분이다.