Share via


방법: 테셀레이터 단계 초기화

일반적으로 테셀레이션은 압축된 사용자 정의 패치 모델을 프로그래밍 가능한 세부 정보가 포함된 기하 도형으로 확장합니다. 기하 도형은 일반적으로 상세 표면 기하 도형을 나타내는 삼각형 집합입니다. 이 항목에서는 테셀레이터 단계를 초기화하는 방법을 보여 줍니다.

테셀레이터 단계는 표면을 테셀레이트하거나 타일화하기 위해 함께 작동하는 세 단계 중 두 번째 단계입니다. 첫 번째 단계는 헐 셰이더 단계입니다. 패치당 한 번 작동하고 다음 단계(고정 함수 테셀레이터)가 작동하는 방식을 구성합니다. 헐 셰이더는 테셀레이터를 지나 도메인 셰이더 단계인 세 번째 단계로 직접 전송되는 출력 제어 지점 및 패치 상수와 같은 사용자 정의 출력도 생성합니다. 도메인 셰이더는 테셀레이터 단계 지점당 한 번 호출되고 표면 위치를 평가합니다.

테셀레이터 단계는 고정 함수 단계이고, 생성할 셰이더가 없고, 설정할 상태가 없습니다. 헐 셰이더 단계에서 모든 설정 상태를 받습니다. 헐 셰이더 스테이지가 초기화되면 테셀레이터 단계가 자동으로 초기화됩니다.

테셀레이터 단계를 초기화하려면

  • ID3D11DeviceContext::HSSetShader를 사용하여 헐 셰이더 단계를 초기화합니다.

    void HSSetShader(
      ID3D11HullShader *pHullShader,  
      ID3D11ClassInstance *const *ppClassInstances,
      UINT NumClassInstances
    );
    

    ppClassInstancesID3D11ClassInstance 포인터 및 NumClassInstances로 표시되는 인터페이스 수로 표현되는 셰이더 인터페이스 배열에 대한 포인터입니다. 사용하지 않으면 이러한 매개 변수를 각각 NULL 및 0으로 설정할 수 있습니다.

헐 셰이더 단계가 초기화되면 도메인 셰이더 단계도 초기화해야 합니다.

Direct3D 11을 사용하는 방법

테셀레이션 개요