Mesh 파이프라인은 전통적인 그래픽스 파이프라인보다 더 유연하고 강력한 구조를 제공합니다. 특히 병렬 처리에 특화되어 있어, 대규모 지오메트리 데이터를 효율적으로 처리할 수 있습니다.
이제 Mesh 파이프라인을 살펴봅시다.
Mesh Shader 파이프라인에서도 역시 다양한 리소스들이 필요합니다. 구조화 버퍼(Structured Buffer), UAV, 상수 버퍼 등은 기존과 동일하게 활용됩니다.
그러나 Mesh Shader는 IA(Input Assembler) 단계가 비활성화되어 있어, 인덱스 버퍼 및 입력 레이아웃을 사용하지 않습니다. 따라서 모든 정점 및 프리미티브 데이터는 셰이더 내부에서 직접 생성되거나 구조화된 형태로 접근해야 합니다.
https://www.youtube.com/watch?v=G54UdY_mCJs&ab_channel=GrantKot
https://www.youtube.com/watch?v=MQv76-q2cm8&ab_channel=AMD
https://www.youtube.com/watch?v=3EMdMD1PsgY&ab_channel=DigitalDragons
Mesh Shader는 두 개의 셰이더 단계로 구성됩니다:
[numthreads(1, 1, 1)]
void ASMain(uint3 dispatchThreadID : SV_DispatchThreadID)
{
MeshPayload payload = ...;
DispatchMesh(4, 1, 1, payload);
}
SetMeshOutputCounts(vertexCount, primitiveCount)
호출 필요