프로그래밍/Rust

[wgpu] 파이프라인 (Pipeline)

Lou Park 2024. 1. 7. 13:10

Pipeline

Pipeline은 OpenGL로치면 Shader의 강력한 버전이라고 보면 된다. Pipeline은 데이터 세트에 대해 작업을 수행할때 GPU가 해야할 모든 일을 설명한다. *Shader는 GPU가 데이터에 대해 어떤 동작을 수행할지 알려주는 작은 프로그램이다.

Shader의 종류

  • Vertex
  • Fragment
  • Compute

Vertex
Vertex는 3D혹은 2D 공간에서의 한 점이다. 2개로 선을, 3개로 삼각형을 만들 수 있다. Vertex를 조작하여 모양을 이룬다.

 

Fragment
Vertex가 모여서 Fragment를 형성한다. Fragment는 각각의 픽셀들이 어떤 색상으로 그려질지를 정의한다.

WGSL

WebGPU Shading Language의 약자로, WebGPU를 위한 Shader언어다. DX12의 HLSL, OpenGL은 GLSL, Vulkan은 SPIR-V등 그래픽 라이브러리 마다 Shader 언어가 있다. WGSL은 백엔드에 해당하는 그래픽 라이브러리의 Shader 언어로 내부적으로 변환되어서 개발자로 하여금 각 Shader 언어들의 세부사항에 대해 알아야할 필요가 없도록 해준다. wgpu의 경우에는 naga라는 라이브러리에 의해 이것이 이루어진다.