그래픽 파이프라인

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

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

Microsoft Direct3D 11용 그래픽 파이프라인은 Direct3D 10 그래픽 파이프라인과 동일한 단계를 지원하며 고급 기능을 지원하는 추가 스테이지가 있습니다.

Direct3D 11API를 사용하여 모든 단계를 구성할 수 있습니다. 공통 셰이더 코어(모서리가 둥근 사각형 블록)를 사용하는 단계는 HLSL 프로그래밍 언어를 사용하여 프로그래밍할 수 있습니다. 여기서 볼 수 있듯이 파이프라인을 매우 유연하고 적응할 수 있습니다.

섹션 내용

항목 설명
입력 어셈블러 단계
Direct3D 10 이상 API는 파이프라인의 기능 영역을 단계로 구분합니다. 파이프라인의 첫 번째 단계는 IA(입력 어셈블러) 단계입니다.
꼭짓점 셰이더 단계
VS(꼭짓점 셰이더) 단계는 입력 어셈블러의 꼭짓점을 처리하여 변환, 스키닝, 모핑 및 꼭짓점별 조명과 같은 꼭짓점별 작업을 수행합니다. 꼭짓점 셰이더는 항상 단일 입력 꼭짓점에서 작동하여 단일 출력 꼭짓점을 생성합니다. 파이프라인이 실행되도록 꼭짓점 셰이더 단계는 항상 활성 상태여야 합니다. 꼭짓점 수정이나 변환이 필요하지 않은 경우 통과 꼭짓점 셰이더를 작성하고 파이프라인으로 설정해야 합니다.
테셀레이션 단계
Direct3D 11 런타임은 GPU에서 저 세부도 분할 표면을 상위 세부도 원형으로 변환하는 테셀레이션을 구현하는 새로운 세 단계를 지원합니다. 공간 분할은 상위 표면을 렌더링에 적합한 구조로 타일링(또는 분할)합니다.
기하 도형 셰이더 단계
GS(geometry-shader) 단계는 꼭짓점을 입력으로 사용하고 출력에서 꼭짓점을 생성하는 기능을 사용하여 애플리케이션에서 지정한 셰이더 코드를 실행합니다.
스트림 출력 단계
스트림 출력 단계의 목적은 기하 도형 셰이더 단계(또는 geometry-shader 단계가 비활성 상태인 경우 꼭짓점 셰이더 단계)에서 메모리의 하나 이상의 버퍼로 꼭짓점 데이터를 지속적으로 출력(또는 스트림)하는 것입니다(스트림 출력 단계의 시작 참조).
래스터라이저 단계
래스터화 단계는 실시간 3D 그래픽을 표시하기 위해 벡터 정보(형태 또는 기본 요소로 구성)를 래스터 이미지(픽셀로 구성)로 변환합니다.
픽셀 셰이더 단계
PS(픽셀 셰이더 단계)를 사용하면 픽셀별 조명 및 후처리와 같은 풍부한 음영 기술을 사용할 수 있습니다. 픽셀 셰이더는 상수, 텍스처 데이터, 보간된 꼭짓점별 값 및 기타 데이터를 조합하여 픽셀별 출력을 산출하는 프로그램입니다. 래스터라이저 단계는 기본형으로 적용되는 각 픽셀에 대해 픽셀 셰이더를 한 번 호출합니다. 그러나 셰이더를 실행하지 않도록 NULL 셰이더를 지정할 수 있습니다.
출력 병합기 단계
OM(출력 병합기) 단계는 파이프라인 상태, 픽셀 셰이더에서 생성된 픽셀 데이터, 렌더링 대상의 내용 및 깊이/스텐실 버퍼의 내용을 조합하여 최종 렌더링된 픽셀 색을 생성합니다. OM 단계는 표시되는 픽셀(깊이 스텐실 테스트 포함)을 결정하고 최종 픽셀 색을 혼합하기 위한 마지막 단계입니다.