Mesh 파이프라인은 전통적인 그래픽스 파이프라인보다 더 유연하고 강력한 구조를 제공합니다. 특히 병렬 처리에 특화되어 있어, 대규모 지오메트리 데이터를 효율적으로 처리할 수 있습니다.

이제 Mesh 파이프라인을 살펴봅시다.

Resources

Mesh Shader 파이프라인에서도 역시 다양한 리소스들이 필요합니다. 구조화 버퍼(Structured Buffer), UAV, 상수 버퍼 등은 기존과 동일하게 활용됩니다.

그러나 Mesh Shader는 IA(Input Assembler) 단계가 비활성화되어 있어, 인덱스 버퍼 및 입력 레이아웃을 사용하지 않습니다. 따라서 모든 정점 및 프리미티브 데이터는 셰이더 내부에서 직접 생성되거나 구조화된 형태로 접근해야 합니다.

Amplification Shader / Mesh Shader Structure

image.png

3dmark-mesh-shader-feature-test-interactive-mode-visualizer-1024x512.gif

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

Tutorial20_Animation_Large.gif

Mesh Shader는 두 개의 셰이더 단계로 구성됩니다:

1. Amplification Shader (AS)

[numthreads(1, 1, 1)]
void ASMain(uint3 dispatchThreadID : SV_DispatchThreadID)
{
    MeshPayload payload = ...;
    DispatchMesh(4, 1, 1, payload);
}

2. Mesh Shader (MS)

🧾 입력