디자인 패턴/게임 프로그래밍 패턴

[게임 프로그래밍 패턴][3]경량 패턴

우향우@ 2024. 4. 19. 11:48

개요

경량 패턴은 여러 객체에서 같은 값으로 사용되는 데이터들을 각자 값(또는 인스턴스)를 가지는게 아닌 같은 부분을 따로 객체로 만들고 해당 객체의 포인터를 가지는 방법을 이야기한다. 기본적인 메모리 최적화 기법이라고 볼 수 있다. 공유될 데이터는 적절한 위치에서 생성하여 저장하면 되는데 객체 풀등의 기법을 적용할 수도 있다.

 

렌더링

숲을 렌더링할 때 많은 수의 나무들이 있지만 나무의 메쉬와 텍스처는 모두 동일할때가 있다. 이때 gpu는 각 나무마다 메쉬와 텍스처를 받는것이 아닌 메쉬와 텍스처는 한 데이터를 공유하고 위치등의 각 나무마다 다른 데이터들만 각자 받아 렌더링한다. 경량 패턴이 적용된 경우라 볼 수 있다. 여기서 메쉬, 텍스처 같이 공유되는 부분을 고유 상태 또는 자유 문맥 상태라 하고 각자 가지는 데이터 부분을 외부 상태라 칭한다.

 

 

 

참고서적

게임 프로그래밍 패턴