최근에 최적화 관련돼서 누군가 Streaming Mipmaps이 효과가 있을 거라는 이야기가 있어서 이 기능이 정확히 무엇을 하는지 다시 알아봤습니다.

예전 Generate Mipmaps과 도무지 무슨 기술적인 차이인지 영어원문을 보고 해석을 하는데 도무지 이해가 안 되더군요.

(해석이 잘 안 되었던 거 같습니다.) 적당한 예도 잘 찾지 못했습니다. 시간이 상당히 흘러서인지 이번에는 좀 더 명확하게 내용을 이해할 수 있었습니다.

 

Generate Mipmaps은 우리가 흔히 아는 멀리 있으면 텍스쳐를 작게 만들어, 눈에 피로도를 줄이는 역할을 합니다.

시각적인 품질을 높이는 중요한 역할을 한다고 할 수 있습니다. 그래서 원본 텍스쳐부터 작아진 텍스쳐까지 단계별로 메모리에 저장되어 있기 때문에 다소 메모리를 차지합니다. 텍스쳐 작아지면 렌더링 될 때 전체를 그리지 않기 때문에 렌더링에 잇점이 발생할 수 있습니다.

 

Streaming Mipmaps은 Generate Mipmaps과는 좀 다릅니다. 이 기능은 지역과 지역을 이동하는데 수많은 오브젝트가 있을 때 여기에 있는 텍스쳐들을 동적으로 불러오는 역할을 합니다.  즉, A 지역에서 B지역으로 이동 시에 A지역에 있던 텍스쳐는 더 이상 렌더링 되지 않기 때문에 삭제해 버리고, B지역의 텍스쳐를 실시간으로 로딩하는 겁니다. 카메라 거리에 따라 텍스처 해상도를 결정하고, 실행 중 필요 없는 해상도의 텍스처를 메모리에서 제거하기 때문에 GPU 리소스를 절약합니다.

그래서, 경우에 따라서는 메모리에 불러오는 과정에서 텍스쳐 품질 변동이나 로딩 지연이 발생 할 수 있다고 합니다.

(한마디로 적절한 프로젝트에 적절하게 써야 한다는 거죠.)

 

하여, Streaming Mipmaps은 엄청 큰 오픈월드가 아닌 경우 크게 효과를 보지 못할 수 있다는 게... 제가 내린 결론입니다.

 

저희 게임은 오픈형이 아니라 화면이 거의 고정형이라 크게 의미가 없는거 같더군요.(테스트 때도 유의미한 수치를 확인하지 못했습니다.)

추후에 큰 월드를 테스트할 기회가 있다면, 그때 직접 테스트 해봐야 얼마만큼 이득이 있는지를 알 수 있을거 같습니다.

 

 

 

 

 

 

'업무일지' 카테고리의 다른 글

업무일지 <젠킨스 svn에러>  (0) 2023.08.03
업무일지 <Vulkan>  (0) 2023.08.02
업무일지 <Hair>  (0) 2023.07.25
업무일지 <메모리누수>  (0) 2023.07.04
업무일지 <테스트공지>  (0) 2023.07.03