Index Buffer
- Vertex buffer만을 사용할 경우 중복되는 정점을 따로 저장해야 한다는 단점이 생긴다.
- 이 단점을 해결한 것이 Vertex Buffer와 Index Buffer를 같이 사용하는 방법이다.
vector<Vertex> vec(4);
vec[0].pos = Vec3(-0.5f, 0.5f, 0.5f);
vec[0].color = Vec4(1.f, 0.f, 0.f, 1.f);
vec[0].uv = Vec2(0.0f, 0.0f);
vec[1].pos = Vec3(0.5f, 0.5f, 0.5f);
vec[1].color = Vec4(0.f, 1.f, 0.f, 1.f);
vec[1].uv = Vec2(1.0f, 0.0f);
vec[2].pos = Vec3(0.5f, -0.5f, 0.5f);
vec[2].color = Vec4(0.f, 0.f, 1.f, 1.f);
vec[2].uv = Vec2(1.0f, 1.0f);
vec[3].pos = Vec3(-0.5f, -0.5f, 0.5f);
vec[3].color = Vec4(0.f, 1.f, 0.f, 1.f);
vec[3].uv = Vec2(0.0f, 1.0f);
vector<uint32> indexvec;
{
indexvec.push_back(0);
indexvec.push_back(1);
indexvec.push_back(2);
}
{
indexvec.push_back(0);
indexvec.push_back(2);
indexvec.push_back(3);
}
mesh->Init(vec, indexvec);
- 위 코드를 보면 총 4개의 정점을 사용하고 index buffer를 통해 0, 1, 2 정점이 연결관계이고, 0, 2, 3 정점이 연결관계임을 알려주는 방법으로 4개의 정점으로 사각형을 표현하고 있다.