- 하드코딩 방식으로 Vertex Shader에 데이터를 입력하는 것은 복잡한 3D 모델을 다룰 때 비효율적이다.
Vertex Buffers 란?
- Vertex Buffer는 Vertex Shader로 전달되는 메모리 블록
- 데이터를 저장하고 그래픽 파이프라인에 구조를 알려줌
- 데이터를 Vertex Attribute로 나눠서 그룹화
Vertex Attribute 란?
- 각 Vertex에 대해 지정되는 입력 변수
- 예: 2D Position (x, y 좌표), RGB Color (r, g, b).
- Position Attribute만 있을 경우:
- Buffer 구조: [x1, y1, x2, y2, x3, y3, ...]
- Color Attribute가 추가될 경우:
- Buffer 구조: [x1, y1, r1, g1, b1, x2, y2, r2, g2, b2, ...]

Vertex Attribute Description
- Vertex Attribute를 제공하기 위해 네 가지 정보가 필요
- Binding Index: Vertex Buffer가 위치한 Binding Index.
- Location: Vertex Shader의 입력 변수와 연결되는 위치 값.
- Offset: Vertex 데이터 시작점에서의 바이트 오프셋.
- VkFormat: 데이터 타입 (예:
VK_FORMAT_R32G32B32_SFLOAT는 32비트 부동 소수점 3개).
메모리 관리
- Vulkan에서는 Buffer와 메모리가 별도 객체로 관리됨.