텍스처 스트리밍 개요

어떤 텍스처를 언제 어느 시점에서 스트림 인 시킬지 계산하는 데 사용되는 시스템에 대한 기초입니다.

Choose your operating system:

Windows

macOS

Linux

텍스처 스트리밍 시스템, 다른 말로 스트리머는 각 텍스처의 해상도 증가 및 감소를 담당하는 엔진의 일부분입니다. 이를 통해 사용할 수 있는 메모리를 효율적으로 관리하면서도 시각적인 퀄리티를 좋게 유지할 수 있습니다. 이는 부분적으로 Mips (밉), 다른 말로 Mipmap (밉맵)으로 이루어지는데, 텍스처 해상도에 대해 미리 계산된 이미지 시퀀스입니다. 텍스처의 LOD 라 보시면 됩니다. 밉 관련 상세 정보는 텍스처 지원 및 설정 문서를 참고하세요.

스트리머에는 자체적인 월드 뷰가 있고, 그 업데이트 사이클은 다음과 같이 구성됩니다:

  1. 월드 뷰 업데이트

  2. 각 텍스처에 이상적인 해상도 계산

  3. 스트리밍 풀 크기에 따라 실제로 가능한 해상도 선택

  4. 업데이트할 텍스처 선택

  5. 로드 / 언로드 요청 생성

위의 작업 완수를 위해 스트리머는 비동기 워커 스레드를 사용하여 게임 스레드의 작업 부하를 감소시키고, 게임 업데이트 루프에서는 위의 작업 중 처음과 마지막만 해도 됩니다. 월드 뷰는 각 프리미티브 컴포넌트에 사용되는 모든 텍스처 목록, 그리고 각각에 대한 월드 바운드와 텍셀 월드 사이즈로 구성됩니다. 그 정보와 주어진 시점에서, 괜찮은 픽셀 별 텍셀 비율을 내는 데 필요한 해상도를 계산하는 것이 가능합니다. 그런 다음 이 컴포넌트가 화면상에 실제로 보이는지 아닌지와 같은 부가 정보를 고려합니다. 그렇게 해서 각 텍스처의 이상적인 해상도를 결정합니다. 그 후 스트리머는 그 해상도가 들어갈 만큼 스트리밍 풀이 충분히 큰지 계산합니다. 그렇지 않으면, 스트리머는 예산에 맞는 해상도가 나올 때까지 선택된 텍스처에 계획된 퀄리티를 한 번에 밉 하나씩 낮춥니다.

밉을 낮출 때 텍스처가 처리되는 순서는 유지(retention) 우선권으로 정의되며, 다음과 같은 규칙을 순서대로 따릅니다:

  1. 랜드스케이프 텍스처, 강제 로드 텍스처, 이미 해상도가 없는 텍스처는 유지합니다.

  2. 화면상에 보이는 밉은 유지합니다.

  3. 메모리를 많이 차지하지 않는 텍스처와 캐릭터 텍스처는 유지합니다.

  4. 보이지 않는 것의 밉을, 최근에 마지막으로 보였던 것부터 낮춥니다.

스트리머가 각 텍스처에 대해 로드할 해상도를 결정했으면, 로드 순서 우선권에 따라 먼저 업데이트할 텍스처를 계산합니다. 그 우선권은 여러가지 범주별로 계산되는데, 순서는 다음과 같습니다:

  1. 보이는 밉을 먼저 로드합니다.

  2. 강제 로드 텍스처, 랜드스케이프 텍스처, 캐릭터 텍스처를 먼저 로드합니다.

  3. 목표 해상도와 가장 멀리 떨어진 텍스처를 먼저 로드합니다.

  4. 보이지 않는 것의 경우, 가장 최근에 보였던 것부터 로드합니다.

최종 단계는 업데이트 요청 일괄처리를 생성하는 것으로, 각 단계마다 현재 텍스처 해상도를 높이거나 낮춥니다. 하나의 일괄 처리에 업데이트되는 메모리 양은 임시 풀 크기의 제한을 받는데, 현재 진행중인 요청의 수를 낮게 유지하기 위해서입니다.

4.15 개선사항

텍스처 스트리밍 시스템이 최적화되어 CPU 와 메모리 사용량 및 로드 시간이 줄어든 반면 저해상도 부작용이 사라졌고, 여러 플랫폼의 다양한 메모리 예산 관련 제약을 자동으로 처리해 줍니다.

  • 텍스처 메모리 사용량이 개선되었습니다.

  • 텍스처 로드 시간이 개선되었습니다.

  • CPU 시간이 감소되었습니다:

    • 게임 스레드 업데이트 시간이 50% 감소되었습니다.

    • 스트리밍 레벨의 텍스처 처리 버벅임 시간이 최대 98% 감소되었습니다.

  • 저해상도 부작용이 감소되었습니다.

  • 메모리 예산을 자동 처리합니다.

  • 텍스처 스트리밍 디버깅 시각화 뷰모드가 생겼습니다.

    • 프리미티브 거리 정확도

    • 메시 UV 밀도 정확도

    • 머티리얼 텍스처 스케일 정확도

    • 필수 텍스처 해상도

이 부분에 관련된 최신 개선사항 및 게임 디버깅 방법 관련 상세 정보는 텍스처 스트리밍 데이터 빌드 텍스처 스트리밍 지표 보고 문서를 참고하세요.

태그
언리얼 엔진 문서의 미래를 함께 만들어주세요! 더 나은 서비스를 제공할 수 있도록 문서 사용에 대한 피드백을 주세요.
설문조사에 참여해 주세요
취소