Version: 2020.1
언어: 한국어
3D 텍스처
큐브맵

텍스처 배열

텍스처 배열은 GPU에 단일 오브젝트처럼 보이는 같은 크기/형식/플래그 2D 텍스처의 컬렉션이며 텍스처 요소 인덱스를 사용하여 셰이더에서 샘플링할 수 있습니다. 텍스처 배열은 커스텀 터레인 렌더링 시스템 또는 기타 크기와 형식이 같은 많은 텍스트처에 효율적으로 액세스하는 방법이 필요한 특수 이펙트를 구현하는 데 유용합니다. 2D 텍스처 배열의 요소는 슬라이스 또는 레이어라고도 합니다.

플랫폼 지원

텍스처 배열은 기본 그래픽스 API 및 GPU의 지원을 받아야 하며, 다음에서 사용할 수 있습니다.

  • Direct3D 11/12(Windows, Xbox One)
  • OpenGL Core(Mac OS X, Linux)
  • Metal(iOS, Mac OS X)
  • OpenGL ES 3.0(Android, WebGL 2.0)
  • PlayStation 4

다른 플랫폼(OpenGL ES 2.0 or WebGL 1.0)은 텍스처 배열을 지원하지 않습니다. 런타임 시점에 텍스처 배열 지원 여부를 확인하려면 SystemInfo.supports2DArrayTextures를 사용해야 합니다.

텍스처 배열 생성 및 조작

텍스처 배열을 위한 텍스처 임포트 파이프라인이 없으므로 스크립트상 만들어야 합니다. 텍스처 배열을 만들고 조작하려면 Texture2DArray 클래스를 사용해야 합니다. 텍스처 배열은 에셋으로 직렬화할 수 있으므로 에디터 스크립트에서 만들고 데이터를 채울 수 있습니다.

일반적으로 텍스처 배열은 GPU 메모리 내에서만 사용되지만 Graphics.CopyTexture, Texture2DArray.GetPixelsTexture2DArray.SetPixels를 사용하여 시스템 메모리와의 사이에 픽셀을 이동할 수 있습니다.

텍스처 배열을 렌터 타겟으로 사용

텍스처 배열 요소는 렌더 타겟으로 사용할 수도 있습니다. 렌더 타겟이 2D 텍스처 배열이 될지 여부를 미리 지정하려면 RenderTexture.dimension을 사용해야 합니다. Graphics.SetRenderTargetdepthSlice 인수는 렌더링할 밉맵 레벨 또는 큐브 맵 면을 지정합니다. “레이어드 렌더링”(즉 지오메트리 셰이더)을 지원하는 플랫폼에서 depthSlice 인수를 –1로 설정하여 전체 텍스처 배열을 렌더 타겟으로 설정할 수 있습니다. 지오메트리 셰이더를 사용하여 개별 요소로 렌더링할 수도 있습니다.

셰이더에서 텍스처 배열 사용

셰이더에서 텍스처 배열 사용을 참조하십시오.

3D 텍스처
큐브맵