다음을 통해 공유


래스터라이저 순서 보기

ROV(래스터라이저 순서 보기)를 사용하면 픽셀 셰이더 코드가 UAV(순서가 지정되지 않은 액세스 뷰) 바인딩을 UAV에 대한 그래픽 파이프라인 결과의 순서에 대한 일반적인 요구 사항을 변경하는 선언으로 표시할 수 있습니다. 이렇게 하면 OIT(순서 독립적 투명도) 알고리즘이 작동하여 여러 투명 개체가 보기에서 서로 일치하는 경우 훨씬 더 나은 렌더링 결과를 얻을 수 있습니다.

개요

표준 그래픽 파이프라인은 투명도를 포함하는 여러 텍스처를 올바르게 구성하는 데 문제가 있을 수 있습니다. 철사 울타리, 연기, 화재, 식물, 유색 유리와 같은 개체는 원하는 효과를 얻기 위해 투명도를 사용합니다. 투명도가 포함된 여러 텍스처가 서로 일치하는 경우 문제가 발생합니다(예를 들어 식물이 들어 있는 유리 건물 앞의 울타리 앞에서 연기). ROV(래스터라이저 순서 보기)를 사용하면 기본 OIT 알고리즘이 하드웨어의 기능을 사용하여 투명도 순서를 올바르게 확인할 수 있습니다. 투명도는 픽셀 셰이더에서 처리됩니다.

ROV(래스터라이저 순서 뷰)를 사용하면 픽셀 셰이더 코드가 UAV 바인딩을 UAV에 대한 그래픽 파이프라인 결과의 순서에 대한 일반적인 요구 사항을 변경하는 선언으로 표시할 수 있습니다.

ROV는 겹치는 픽셀 셰이더 호출 쌍에 대한 UAV 액세스 순서를 보장합니다. 이 경우 "겹침"은 호출이 동일한 그리기 호출에 의해 생성되고 픽셀 빈도 실행 모드에서 동일한 픽셀 좌표를 공유하고 샘플 빈도 모드에서 동일한 픽셀 및 샘플 좌표를 공유한다는 것을 의미합니다.

픽셀 셰이더 호출의 겹치는 ROV 액세스가 실행되는 순서는 기하 도형이 제출되는 순서와 동일합니다. 즉, 겹치는 픽셀 셰이더 호출의 경우 픽셀 셰이더 호출에서 수행하는 ROV 쓰기를 후속 호출에서 읽을 수 있어야 하며 이전 호출의 읽기에는 영향을 미치지 않아야 합니다. 픽셀 셰이더 호출에서 수행하는 ROV 읽기는 이전 호출의 쓰기를 반영해야 하며 후속 호출에 의한 쓰기를 반영해서는 안 됩니다. UAV는 그래픽 파이프라인 결과의 고정 순서에 의해 일반적으로 설정되는 출력 고정 보장에서 명시적으로 생략되므로 UAV에 중요합니다.

구현 세부 정보

ROV(래스터라이저 순서 뷰)는 다음과 같은 새로운 HLSL(High Level Shader Language) 개체로 선언되며 픽셀 셰이더에서만 사용할 수 있습니다.

  • RasterizerOrderedBuffer
  • RasterizerOrderedByteAddressBuffer
  • RasterizerOrderedStructuredBuffer
  • RasterizerOrderedTexture1D
  • RasterizerOrderedTexture1DArray
  • RasterizerOrderedTexture2D
  • RasterizerOrderedTexture2DArray
  • RasterizerOrderedTexture3D

이러한 개체는 다른 UAV 개체(예: RWBuffer 등)와 동일한 방식으로 사용합니다.

API 요약

ROV는 UAV에 다양한 동작 의미 체계를 적용하는 HLSL 전용 구문입니다. UAV와 관련된 모든 API도 ROV와 관련이 있습니다. 다음 메서드, 구조체 및 도우미 클래스는 래스터라이저를 참조합니다.