다음을 통해 공유


렌더링 파이프라인

Direct3D 버전 10을 지원하는 그래픽 하드웨어는 공유 프로그래밍 가능한 셰이더 코어를 사용하여 설계할 수 있습니다. GPU(그래픽 처리 장치)는 렌더링 파이프라인을 구성하는 기능 블록에서 예약할 수 있는 셰이더 코어를 프로그래밍할 수 있습니다. 이 부하 분산은 하드웨어 개발자가 모든 셰이더 형식을 사용할 필요는 없지만 렌더링을 수행하는 데 필요한 셰이더 형식만 사용할 필요가 없음을 의미합니다. 이 부하 분산은 활성 상태인 셰이더 형식에 대한 리소스를 해제할 수 있습니다. 다음 그림에서는 렌더링 파이프라인의 기능 블록을 보여 줍니다. 그림 뒤에 나오는 섹션에서는 블록을 자세히 설명합니다.

Direct3D 렌더링 파이프라인의 기능 블록을 보여 주는 다이어그램

  • 입력 어셈블러

    입력 어셈블러 단계에서는 고정 함수 작업을 사용하여 메모리 부족의 꼭짓점을 읽습니다. 그런 다음 입력 어셈블러는 기하 도형 기본 형식을 형성하고 파이프라인 작업 항목을 만듭니다. 자동 생성된 꼭짓점 식별자, instance 식별자(꼭짓점 셰이더에서 사용 가능) 및 기본 식별자(기하 도형 셰이더 또는 픽셀 셰이더에서 사용 가능)는 식별자별 처리를 사용하도록 설정합니다. 그림의 점선은 식별자별 처리 흐름을 보여줍니다.

  • 꼭짓점 셰이더

    꼭짓점 셰이더 단계는 하나의 꼭짓점을 입력으로 사용하고 하나의 꼭짓점을 출력합니다.

  • 기하 도형 셰이더

    기하 도형 셰이더 단계는 하나의 기본 형식을 입력으로 사용하고 0, 1 또는 여러 기본 형식을 출력합니다. 출력 기본 형식은 기하 도형 셰이더 없이 가능한 것보다 더 많은 데이터를 포함할 수 있습니다. 작업당 출력 데이터의 총 크기는 (꼭짓점 크기 x 꼭짓점 수)입니다.

  • 스트림 출력

    스트림 출력 단계는 기하 도형 셰이더의 출력에 도달하는 기본 형식을 출력 버퍼에 연결(스트림 아웃)합니다. 스트림 출력은 기하 도형 셰이더와 연결되며 둘 다 함께 프로그래밍됩니다.

  • 래스터 라이저

    래스터라이저 단계 클립(사용자 지정 클립 경계 포함)은 기본 형식에 대한 원근 분할을 수행하고, 뷰포트 및 가위 선택을 구현하고, 렌더링 대상 선택을 수행하고, 기본 설정을 수행합니다.

  • 픽셀 셰이더

    픽셀 셰이더 단계는 입력으로 1픽셀을 사용하고 동일한 위치 또는 픽셀 없이 1픽셀을 출력합니다. 픽셀 셰이더는 현재 렌더링 대상을 읽을 수 없습니다.

  • 출력 병합기

    출력 병합기 단계에서는 고정 함수 렌더링 대상 혼합, 깊이 및 스텐실 작업을 수행합니다.