파이프라인 단계(Direct3D 10)

Direct3D 10 프로그래밍 가능 파이프라인은 실시간 게임 애플리케이션용 그래픽을 생성하도록 설계되었습니다. 다음 다이어그램은 각 프로그래밍 가능한 단계를 통해 입력에서 출력으로의 데이터 흐름을 보여줍니다.

direct3d 10 프로그래밍 가능한 파이프라인의 데이터 흐름 다이어그램

모든 단계는 API를 사용하여 구성할 수 있습니다. 일반적인 셰이더 코어(둥근 사각형 블록)가 포함된 단계는 HLSL 프로그래밍 언어를 사용하여 프로그래밍할 수 있습니다. 여기서 볼 수 있듯이 파이프라인을 매우 유연하고 적응할 수 있습니다. 각 단계의 목적은 아래에 나열되어 있습니다.

  • 입력 어셈블러 단계 - 입력 어셈블러 단계는 파이프라인에 데이터(삼각형, 선 및 점)를 제공하는 역할을 합니다.
  • 꼭짓점 셰이더 단계 - 꼭짓점 셰이더 단계에서는 꼭짓점을 처리하며, 일반적으로 변환, 스킨 지정 및 조명과 같은 작업을 수행합니다. 꼭짓점 셰이더는 항상 단일 입력 꼭짓점을 사용하여 단일 출력 꼭짓점을 생성합니다.
  • 기하 도형 셰이더 단계 - 기하 도형 셰이더 단계는 전체 기본 형식을 처리합니다. 해당 입력은 전체 기본 형식입니다(삼각형의 경우 3개의 꼭짓점, 선의 경우 두 개의 꼭짓점 또는 점의 단일 꼭짓점). 또한 각 기본 형식은 에지 인접 기본 형식에 대한 꼭짓점 데이터를 포함할 수도 있습니다. 여기에는 삼각형에 대해 최대 3개의 꼭짓점이 추가되거나 줄에 대한 두 개의 꼭짓점이 추가로 포함될 수 있습니다. 기하 도형 셰이더는 제한된 기하 도형 확장 및 축소도 지원합니다. 입력 기본 요소가 지정되면, 기하 도형 셰이더는 기본 요소를 삭제하거나 하나 이상의 새 기본 요소를 추가할 수 있습니다.
  • 스트림 출력 단계 - 스트림 출력 단계는 래스터라이저로 가는 길에 파이프라인에서 메모리로 기본 데이터를 스트리밍하도록 설계되었습니다. 데이터를 스트림 출력하거나 래스터라이저로 전달할 수 있습니다. 메모리로 스트림 출력된 데이터는 입력 데이터 또는 CPU에서 다시 읽기로 파이프라인으로 다시 재순환될 수 있습니다.
  • 래스터라이저 단계 - 래스터라이저는 기본 형식을 클리핑하고, 픽셀 셰이더에 대한 기본 형식을 준비하고, 픽셀 셰이더를 호출하는 방법을 결정합니다.
  • 픽셀 셰이더 단계 - 픽셀 셰이더 단계는 기본 요소에 대한 보간된 데이터를 받아 픽셀별 데이터(예: 색)를 생성합니다.
  • 출력 병합기 단계 - 출력 병합기 단계는 다양한 유형의 출력 데이터(픽셀 셰이더 값, 깊이 및 스텐실 정보)와 렌더링 대상의 내용 및 깊이/스텐실 버퍼를 결합하여 최종 파이프라인 결과를 생성합니다.

Direct3D 10 프로그래밍 가이드