Показать сообщение отдельно
Старый 20.12.2011, 22:46   #6
pozitiffcat
Мастер
 
Аватар для pozitiffcat
 
Регистрация: 09.05.2010
Адрес: Самара
Сообщений: 1,083
Написано 254 полезных сообщений
(для 533 пользователей)
Ответ: DirectX 9 доступ к вершинам объекта

IDirect3DVertexBuffer9* vb = 0;
Mesh->GetVertexBuffer(&vb);
потом делать буферу lock, тебе нужно будет вытаскивать в структуру FVF, ее тоже из D3DXMESH можно получить
IDirect3DIndexBuffer9* ib = 0;
Mesh->GetIndexBuffer(&ib);
и изменяй вершины и получай данные
пример
Vertex* vertices;
_vb->Lock(0, 0, (void**)&vertices, 0);    // заблокировать весь буфер

vertices[0] = Vertex(-1.0f, 0.0f, 2.0f);  // записать данные вершин
vertices[1] = Vertex( 0.0f, 1.0f, 2.0f);  // в буфер
vertices[2] = Vertex( 1.0f, 0.0f, 2.0f);

_vb->Unlock();                            // разблокировать буфер, когда
                                          // мы закончили работать с ним
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Mind (20.12.2011)