방법: 도메인 셰이더 만들기
도메인 셰이더는 테 셀레이션을 구현하기 위해 함께 작동하는 세 단계 중 세 번째 단계입니다. 도메인 셰이더 단계에 대한 입력은 헐 셰이더에서 가져옵니다. 이 항목에서는 도메인 셰이더를 만드는 방법을 보여줍니다.
도메인 셰이더는 헐 셰이더 출력 제어 지점, 헐 셰이더 출력 패치 상수 데이터 및 단일 테셀레이터 uv 좌표 집합을 사용하여 표면 기하 도형(고정 함수 테셀레이터 단계에서 생성됨)을 변환합니다.
도메인 셰이더를 만들려면
도메인 셰이더를 디자인합니다. 방법: 도메인 셰이더 디자인을 참조하세요.
셰이더 코드를 컴파일합니다.
ID3D11Device::CreateDomainShader를 사용하여 도메인 셰이더 개체를 만듭니다.
HRESULT CreateDomainShader( const void *pShaderBytecode, // SIZE_T BytecodeLength, // ID3D11ClassLinkage *pClassLinkage, // ID3D11DomainShader **ppDomainShader );
ID3D11DeviceContext::D SSetShader를 사용하여 파이프라인 단계를 초기화합니다.
void DSSetShader( ID3D11DomainShader *pDomainShader, // ID3D11ClassInstance *const *ppClassInstances, UINT NumClassInstances );
헐 셰이더가 바인딩된 경우 도메인 셰이더를 파이프라인에 바인딩해야 합니다. 특히 기하 도형 셰이더를 사용하여 헐 셰이더 제어점을 직접 스트리밍하는 것은 유효하지 않습니다.
관련 항목