URL: http://gameprogrammingpatterns.com/flyweight.html#forest-for-the-trees





[게임 프로그래밍 패턴] 1.1 디자인패턴을 다시보자 - Flyweight 패턴


안개가 걷히고, 웅장한 성장림이 그 모습을 드러내었다. 머리위로 드높이 솟아오른 수많은 고대의 솔송나무가 마치 푸른 대성당과 같다. 나뭇잎으로 이루어진 스테인드 글라스 덮개들은 햇살을 조각내어 안개속에 금빛을 흩뿌린다. 거대한 나무 사이로 뻗어있는 거대한 나무를 볼 수 있을 것이다. 



이것이 게임 개발자로써 꿈꾸는 초현실적인 설정이고, 이러한 씬은 보통 더는 겸손할 수 없는 이름을 가진 pattern인 Flyweight에 의해 가능해진다. 




숲을 위한 나무 (Forest for the trees)


울창한 숲을 묘사하는 것은 단지 몇개의 문장이면 충분하지만, 이것을 실시간 게임으로 구현하는 것은 전혀 다른 얘기다. 화면을 채우는 수많은 각 나무들로 모든 숲을 보는 것은 GPU에서 매초에 60번씩 수백만개의 폴리곤을 그리는 것이다. 수천개의 나무를 보면, 각각은 수천개의 폴리곤을 포함하는 굉장히 자세한 geometry 이다. 이를 렌더링 하기 위해서는 메모리문제 뿐 아니라, CPU와 GPU 사이의 bus를 이들 데이터가 모두 지나쳐야 하는 문제가 존재한다. 

Posted by Cat.IanKang
,