게임에서 사용하는 대부분의 기하구조의 경우 정적이다. (나무, 건물, 지형, 등)
- 즉, 매 프레임마다 변경되는 자원이 아니기 때문에 HEAP_TYPE_DEFAULT로 생성한다.
- 하지만, DEFAULT로 만들면 CPU쪽에서는 GPU default heap에 접근할 수 없으므로 메모리에 실제 정점버퍼를 채워 넣을수가 없다.
- 이것을 해결하기 위해 데이터를 채워넣기 위한 목적의 리소스를 HEAP_TYPE_UPLOAD로 생성하고, 값을 채운뒤 다시 HEAP_TYPE_DEFAULT로 만든 리소스에 값을 복사해 주어야 한다.
- UpdateSubResources 함수를 통해서 리소스간의 데이터를 복사할 수 있다.
- 이후 사용이 완료된 업로드용 리소스는 해제한다.
- 여기서, 실제 복사 작업은 GPU에서 수행되므로 해당 Command가 완료된뒤에 삭제해야한다.