struct Vertex
{
float x,y,z;
};
IDirect3DVertexBuffer9* vb1 = 0;
Mesh->GetVertexBuffer(&vb1);
Vertex* vertices;
vb1->Lock(0, 0,(void**)&vertices, 0); // заблокировать весь буфер
vertices[0] = Vertex(-1.0f, 0.0f, 2.0f); пишет что не может преобразовать из float в Vertex.
vertices[1] = Vertex( 0.0f, 1.0f, 2.0f); --//--
vertices[2] = Vertex( 1.0f, 0.0f, 2.0f); --//--
vb1->Unlock(); //разблокировать буфер
Сделал как ты говорил. Не получается. Возможно я где-то со структурой вершин намудрил. Не пойму.
Нашел другой способ изменения координат вершин:
vb1->Lock(0, 0,(void**)&vertices, 0); // заблокировать весь буфер
vertices[0].x=10;vertices[0].y=20;vertices[0].z=-5;
vertices[1].x=15;vertices[1].y=30;vertices[1].z=-10;
vertices[2].x=20;vertices[2].y=40;vertices[2].z=-15;
vb1->Unlock(); //разблокировать буфер
Но есть пару замечаний:
1) Как можно считать информацию о вершинах?
2) Как я заметил каждая вершина имеет свою сист. координат. Почему. Как это исправить?