if SUCCEEDED(g_pMesh->LockVertexBuffer(D3DLOCK_NOSYSLOCK,(void**)&buffer))
{
for(DWORD loop = 0; loop < NumVertices; loop++)
{
MAX.x=( ((D3DXVECTOR3*)(buffer+loop*SizeVert))->x > MAX.x)?(((D3DXVECTOR3*)(buffer+loop*SizeVert))->x):MAX.x;
MIN.x=( ((D3DXVECTOR3*)(buffer+loop*SizeVert))->x < MIN.x)?(((D3DXVECTOR3*)(buffer+loop*SizeVert))->x):MIN.x;
MAX.y=( ((D3DXVECTOR3*)(buffer+loop*SizeVert))->y > MAX.y)?(((D3DXVECTOR3*)(buffer+loop*SizeVert))->y):MAX.y;
MIN.y=( ((D3DXVECTOR3*)(buffer+loop*SizeVert))->y < MIN.y)?(((D3DXVECTOR3*)(buffer+loop*SizeVert))->y):MIN.y;
MAX.z=( ((D3DXVECTOR3*)(buffer+loop*SizeVert))->z > MAX.z)?(((D3DXVECTOR3*)(buffer+loop*SizeVert))->z):MAX.z;
MIN.z=( ((D3DXVECTOR3*)(buffer+loop*SizeVert))->z < MIN.z)?(((D3DXVECTOR3*)(buffer+loop*SizeVert))->z):MIN.z;
}//Цикл по вершинам
g_pMesh->UnlockVertexBuffer();
}//Если удалось заблокировать буфер вершин
Bounding Box
Как получить координаты вершин Bounding Box-а из Mesh(ID3DXMesh)?
Цитата:
Originally posted by a.k.a Throne
Как получить координаты вершин Bounding Box-а из Mesh(ID3DXMesh)?
Как получить координаты вершин Bounding Box-а из Mesh(ID3DXMesh)?
Дано: g_pMesh - твой меш,
MAX и MIN - точки бокса
NumVertices - число вершин в меше (можно определить из
ID3DXMesh).
Примечание: не годится делать так каждый кадр, надо сделать на этапе инициализации / загрузки меша. А то локить буфер для таких пустяков - несколько расточительно.
Код:
Нельзя на паскалеЯ? А то С++ не понимаю
Цитата:
Originally posted by a.k.a Throne
Нельзя на паскалеЯ? А то С++ не понимаю
Нельзя на паскалеЯ? А то С++ не понимаю
Какая разница, Pascal, С...
Смысл такой:
-блокируешь буфер вершин своего меша
-по всем вершинам ищешь MAX и MIN координаты для x,y и z.
Это и будут границы бокса.
Вообщето мне уже не нужен bounding box, мне надо получить координаты вершин и размер структуры. Как получить второе?
Цитата:
Originally posted by a.k.a Throne
Вообщето мне уже не нужен bounding box, мне надо получить координаты вершин и размер структуры. Как получить второе?
Вообщето мне уже не нужен bounding box, мне надо получить координаты вершин и размер структуры. Как получить второе?
Методы интерфейса ID3DXMesh (оба без параметров):
GetNumBytesPerVertex.
Возвращает размер структуры под каждую вершину.
GetNumVertices - возвращает количество вершин.