텍스처 뷰(Direct3D 10)
Direct3D 10에서는 메모리의 리소스를 하드웨어로 해석하기 위한 메커니즘인 뷰를 사용하여 텍스처 리소스에 액세스합니다. 뷰를 사용하면 특정 파이프라인 단계에서 애플리케이션에서 원하는 표현으로 필요한 하위 리소스에만 액세스할 수 있습니다.
뷰는 형식이 없는 리소스의 개념을 지원합니다. 형식이 없는 리소스는 특정 크기로 만든 리소스이지만 특정 데이터 형식은 생성되지 않습니다. 데이터는 파이프라인에 바인딩될 때 동적으로 해석됩니다.
다음 그림에서는 셰이더 리소스 뷰를 만들어 6개의 텍스처로 2D 텍스처 배열을 셰이더 리소스로 바인딩하는 예제를 보여 줍니다. 그런 다음 리소스가 텍스처 배열로 처리됩니다. (참고: 하위 리소스는 파이프라인에 대한 입력 및 출력으로 동시에 바인딩할 수 없습니다.)
6개의 텍스처가그림
2D 텍스처 배열을 렌더링 대상으로 사용하는 경우 리소스를 mipmap 수준(이 예제에서는 3)이 있는 2D 텍스처 배열(이 예제에서는 6)으로 볼 수 있습니다.
CreateRenderTargetView를 호출하여 렌더링 대상에 대한 뷰 개체를 만듭니다. 그런 다음, OMSetRenderTargets를 호출하여 렌더링 대상 뷰를 파이프라인으로 설정합니다. Draw를 호출하고 RenderTargetArrayIndex를 사용하여 배열의 적절한 질감으로 인덱싱하여 렌더링 대상으로 렌더링합니다. 하위 리소스(mipmap 수준, 배열 인덱스 조합)를 사용하여 하위 리소스의 배열에 바인딩할 수 있습니다. 따라서 다음 그림과 같이 두 번째 Mipmap 수준에 바인딩하고 원하는 경우에만 이 특정 Mipmap 수준을 업데이트할 수 있습니다.
Direct3D 9와 Direct3D 10의 차이점:
- Direct3D 10에서는 더 이상 리소스를 파이프라인에 직접 바인딩하지 않고 리소스 보기를 만든 다음 뷰를 파이프라인으로 설정합니다. 이렇게 하면 런타임 및 드라이버의 유효성 검사 및 매핑이 뷰 생성 시 수행되어 바인딩 시 형식 검사를 최소화할 수 있습니다.
관련 항목