Version: Unity 6.0 (6000.0)
언어 : 한국어
텍스처 및 메시 데이터 비동기식 로드
메시가 비동기식 업로드 파이프라인을 사용하는지 확인

텍스처 및 메시 로드

Unity는 디스크에서 텍스처와 메시 데이터를 로드하여 동기식 또는 비동기식의 두 가지 방법으로 GPU에 업로드할 수 있습니다. 이 두 프로세스를 동기식 업로드 파이프라인과 비동기식 업로드 파이프라인이라고 합니다.

Unity가 동기식 업로드 파이프라인을 사용하는 경우 데이터를 로드하고 업로드하는 동안 다른 작업을 수행할 수 없습니다. 이로 인해 애플리케이션에서 일시 정지가 발생할 수 있습니다. Unity가 비동기식 업로드 파이프라인을 사용하는 경우 백그라운드에서 데이터를 로드하고 업로드하는 동안 다른 작업을 수행할 수 있습니다.

텍스처나 메시가 비동기식 업로드 파이프라인에 적합하면 Unity는 자동으로 비동기식 업로드 파이프라인을 사용합니다. 텍스처나 메시가 비동기식 업로드 파이프라인에 적합하지 않으면 Unity는 동기식 업로드 파이프라인을 자동으로 사용합니다.

작동 방식

동기식 업로드 파이프라인과 비동기식 업로드 파이프라인의 가장 큰 차이점은 Unity가 빌드 시점에 데이터를 저장하는 방식이며, 이는 Unity가 런타임 시점에 데이터를 로드하는 방식에도 영향을 줍니다.

동기식 업로드 파이프라인에서 Unity는 텍스처 또는 메시의 메타데이터(헤더 데이터)와 텍셀 또는 버텍스 데이터(바이너리 데이터)를 모두 단일 프레임에 로드해야 합니다. 비동기식 업로드 파이프라인에서 Unity는 단일 프레임에서 헤더 데이터만 로드해야 하며, 이후 프레임에서 바이너리 데이터를 GPU로 스트리밍할 수 있습니다.

동기식 업로드 파이프라인에서 Unity는 다음을 수행합니다.

  • 빌드 시점에 Unity는 메시 또는 텍스처의 헤더 데이터와 바이너리 데이터를 동일한 .res 파일에 기록합니다.
  • 런타임 시 애플리케이션에 텍스처 또는 메시가 필요한 경우 Unity는 해당 텍스처 또는 메시에 대한 헤더 데이터와 바이너리 데이터를 모두 .res 파일에서 메모리에 로드합니다. 모든 데이터가 메모리에 있으면 Unity는 바이너리 데이터를 메모리에서 GPU로 업로드합니다. 로드 및 업로드 작업은 주로 단일 프레임의 메인 스레드에서 수행됩니다.

비동기식 업로드 파이프라인에서 Unity는 다음을 수행합니다.

  • 빌드 시점에 Unity는 헤더 데이터를 .res 파일에 기록하고 바이너리 데이터를 별도 .resS 파일에 기록합니다.
  • 런타임 시 애플리케이션에 텍스처나 메시가 필요한 경우 Unity는 .res 파일의 헤더를 메모리에 로드합니다. 헤더가 메모리에 있으면 Unity는 고정 크기의 링 버퍼를 사용하여 .resS 파일에서 GPU로 바이너리 데이터를 스트리밍합니다. Unity는 여러 프레임 동안 여러 스레드를 사용하여 바이너리 데이터를 스트리밍합니다. Unity가 이미 GPU 하드웨어를 알고 있는 일부 콘솔 플랫폼에서는 Unity가 링 버퍼를 건너뛰고 GPU 메모리에 바로 로드합니다.

추가 리소스

텍스처 및 메시 데이터 비동기식 로드
메시가 비동기식 업로드 파이프라인을 사용하는지 확인