다음을 통해 공유


텍스처 뷰(Direct3D 10)

Direct3D 10에서 텍스처 리소스는 메모리 내 리소스의 하드웨어 해석을 위한 메커니즘인 뷰를 사용하여 액세스됩니다. 뷰를 사용하면 특정 파이프라인 단계가 애플리케이션이 원하는 표현으로 필요한 하위 리소스에만 액세스할 수 있습니다.

뷰는 형식이 없는 리소스의 개념을 지원합니다. 형식이 없는 리소스는 특정 크기로 만든 리소스이지만 특정 데이터 형식은 만들지 않습니다. 데이터는 파이프라인에 바인딩될 때 동적으로 해석됩니다.

다음 그림은 셰이더 리소스 뷰를 생성하여 텍스처가 6개인 2D 텍스처 배열을 셰이더 리소스로 바인딩하는 예입니다. 그러면 리소스 주소가 텍스처 배열로 지정됩니다. (참고: 하위 리소스는 파이프라인에 입력 및 출력으로 동시에 바인딩할 수 없습니다)

6개의 텍스처가 있는 텍스처 배열의 그림

2D 텍스처 배열을 렌더링 대상으로 사용할 때는 Mipmap 수준(이번 예의 3번)에서 2D 텍스처 배열(이번 예의 6번)로 리소스를 볼 수 있습니다.

CreateRenderTargetView를 호출하여 렌더링 대상을 위한 뷰 객체를 생성합니다. 그런 다음 OMSetRenderTargets를 호출하여 렌더링 대상 뷰를 파이프라인으로 설정합니다. Draw를 호출한 후 RenderTargetArrayIndex를 사용하고 배열에서 적합한 텍스처를 인덱싱하여 렌더링 대상으로 렌더링합니다. 하위 리소스(Mipmap 수준, 배열 인덱스 조합)를 사용하여 모든 하위 리소스 배열로 바인딩할 수 있습니다. 따라서 두 번째 Mipmap 수준으로 바인딩한 후 원한다면 다음 그림과 같이 이 특정 Mipmap 수준만 업데이트할 수 있습니다.

텍스처 배열의 두 번째 Mipmap 수준에만 바인딩하는 그림

Direct3D 9와 Direct3D 10의 차이점:

  • Direct3D 10에서는 더 이상 리소스를 파이프라인에 직접 바인딩하지 않고 리소스 보기를 만든 다음 뷰를 파이프라인으로 설정합니다. 이렇게 하면 런타임 및 드라이버의 유효성 검사 및 매핑이 보기 생성 시 수행되어 바인딩 시간에 형식 검사를 최소화할 수 있습니다.

 

리소스(Direct3D 10)