정점 세이더 단계 Vertex Shader Stage
목적
1. 정점 데이터의 변환 및 처리
주요 함수
CreateVertexShader
HRESULT CreateVertexShader(
[in] const void *pShaderBytecode,
[in] SIZE_T BytecodeLength,
[in, optional] ID3D11ClassLinkage *pClassLinkage,
[out, optional] ID3D11VertexShader **ppVertexShader
);
1. const void* : 컴파일된 셰이더에 대한 포인터
2. SIZE_T : 컴파일된 꼭짓점 셰이더 크기
3. ID3D11ClassLinkage* : 클래스 연결 인터페이스에 대한 포인터
4. ID3D11VertexShader** : ID3D11VertexShader 인터페이스에 대한 포인터 주소.
사용 예시
Device->CreateVertexShader(vertexshaderCSO->GetBufferPointer(),
vertexshaderCSO->GetBufferSize(), nullptr, &SimpleVertexShader);
VSSetShader
void VSSetShader(
[in, optional] ID3D11VertexShader *pVertexShader,
[in, optional] ID3D11ClassInstance * const *ppClassInstances,
UINT NumClassInstances
);
1. ID3D11VertexShader* 꼭짓점 셰이더에 대한 포인터
2. ID3D11ClassInstance* 클래스 instance 인터페이스 배열에 대한 포인터
3. UINT : 배열의 클래스 instance 인터페이스 수
사용 예시
DeviceContext->VSSetShader(SimpleVertexShader, nullptr, 0);
VSSetConstantBuffers
void VSSetConstantBuffers(
[in] UINT StartSlot,
[in] UINT NumBuffers,
[in, optional] ID3D11Buffer * const *ppConstantBuffers
);
1. UINT : 디바이스의 0부터 시작하는 배열에 인덱싱하여 상수 버퍼를 설정
2. UINT : 설정할 버퍼 수
3. ID3D11Buffer* : 디바이스에 제공되는 상수 버퍼의 배열
사용예시
// 시작 슬롯(0부터), 바인딩 버퍼 개수(1개), 상수 버퍼 포인터
DeviceContext->VSSetConstantBuffers(0, 1, &ConstantBuffer);
VSSetShaderResources
void VSSetShaderResources(
[in] UINT StartSlot,
[in] UINT NumViews,
[in, optional] ID3D11ShaderResourceView * const *ppShaderResourceViews
);
1. UINT : 디바이스의 0부터 시작하는 배열에 인덱싱하여 셰이더 리소스를 설정합니다.
2. UINT : 설정할 셰이더 리소스 수입니다. 셰이더 리소스에 최대 128개의 슬롯을 사용이 가능
3. ID3D11ShaderResourceView* : 디바이스에 설정할 셰이더 리소스 뷰 인터페이스의 배열
사용예시
ID3D11ShaderResourceView* nullsrv[] = { nullptr, nullptr, nullptr, nullptr };
context->VSSetShaderResources(0, 4, nullsrv);
VSSetSamplers
void VSSetSamplers(
[in] UINT StartSlot,
[in] UINT NumSamplers,
[in, optional] ID3D11SamplerState * const *ppSamplers
);
1. UINT : 디바이스의 0부터 시작하는 배열에 인덱싱하여 샘플러를 설정
2. UINT : 배열의 샘플러 수. 각 파이프라인 단계에는 총 16개의 샘플러 슬롯을 사용할 수 있음.
3. ID3D11SamplerState* : 샘플러 상태 인터페이스의 배열에 대한 포인터
'DirectX 11' 카테고리의 다른 글
Direct X 11 Input Assembler Stage (0) | 2025.08.01 |
---|---|
Direct X 11 기초 개념 학습 (2) | 2025.08.01 |
Direct X 11 1일차 (0) | 2024.04.30 |