А на сколько рационально делать так
IDirect3DVertexBuffer9 * vb;
IDirect3DIndexBuffer9 * ib;
vector<Vertex> vertices;
vector<unsigned short> indices;
По факту получается удобнее держать копию вершин и индексов в легкодоступной форме( в std::vector ), но с другой стороны это двойной расход памяти. А если читать всё из буферов директа, то падает производительность. Как делают профи?