방법: 헐 셰이더 만들기
헐 셰이더는 테 셀레이션을 구현하기 위해 함께 작동하는 세 단계 중 첫 번째 단계입니다. 헐 셰이더 출력은 테셀레이터 단계와 도메인 셰이더 단계를 구동합니다. 이 항목에서는 헐 셰이더를 만드는 방법을 보여줍니다.
헐 셰이더는 꼭짓점 셰이더의 입력 제어점 집합을 출력 제어점 집합으로 변환합니다. 입력 및 출력 지점의 수는 변환에 따라 내용 및 수에 따라 달라질 수 있습니다(일반적인 변환은 기본 변환임).
헐 셰이더는 도메인 셰이더 및 테셀레이터에 대한 테셀레이션 요소와 같은 패치 상수 정보도 출력합니다. 고정 함수 테셀레이터 단계는 테셀레이션 요소뿐만 아니라 헐 셰이더에 선언된 다른 상태를 사용하여 테셀레이션할 양을 결정합니다.
헐 셰이더를 만들려면
헐 셰이더를 디자인합니다. 방법: 헐 셰이더 설계를 참조하세요.
셰이더 코드 컴파일
ID3D11Device::CreateHullShader를 사용하여 헐 셰이더 개체를 만듭니다.
HRESULT CreateHullShader( const void *pShaderBytecode, SIZE_T BytecodeLength, ID3D11ClassLinkage *pClassLinkage, ID3D11HullShader **ppHullShader );
ID3D11DeviceContext::HSSetShader를 사용하여 파이프라인 단계를 초기화합니다.
void HSSetShader( ID3D11HullShader *pHullShader, ID3D11ClassInstance *const *ppClassInstances, UINT NumClassInstances );
헐 셰이더가 바인딩된 경우 도메인 셰이더를 파이프라인에 바인딩해야 합니다. 특히 기하 도형 셰이더를 사용하여 헐 셰이더 제어점을 직접 스트리밍하는 것은 유효하지 않습니다.
관련 항목