DirectX9 (D3D) «Remap» SkinInfo после генерации прогрессивной сетки

Я застрял на несколько дней при создании прогрессивного скина с сеткой, у меня нет проблем с оптимизацией, но когда количество вершин меняется, положение тоже в vertexBuffer, и я не могу найти решение для обновления SkinInfo с новыми позициями, Я попробовал это:

D3D::Mesh m;
meshData->pMesh->CloneMesh(D3DXMESH_MANAGED, Declaration, D3D::getDevice(), &m);
LPD3DXBUFFER vRemap=0;
D3D::checkError("Failed to optimise mesh",
m->Optimize(D3DXMESH_MANAGED | D3DXMESHOPT_VERTEXCACHE | D3DXMESHOPT_ATTRSORT,
newMeshContainer->pAdjacency,newMeshContainer->pAdjacency,
0,&vRemap,&m));

if (pSkinInfo) {
D3D::checkError("Failed to remap skin info",
pSkinInfo->Remap( m->GetNumVertices(),
(DWORD*)vRemap->GetBufferPointer()));
}

D3DXCleanMesh(D3DXCLEAN_SIMPLIFICATION, m, newMeshContainer->pAdjacency, &m, newMeshContainer->pAdjacency, NULL);

D3D::ProgressiveMesh ProgMesh;
D3D::checkError("Failed to generate progressive mesh",
D3DXGeneratePMesh(m, newMeshContainer->pAdjacency, 0, 0, 0, D3DXMESHSIMP_FACE, &ProgMesh));
ProgMesh->SetNumVertices(ProgMesh->GetMaxVertices());

ProgMesh->CloneMesh(D3DXMESH_MANAGED, 0, D3D::getDevice(), &newMeshContainer->MeshData.pMesh);

Кто-нибудь знает какой-нибудь способ сделать это? Я не нашел никакой информации об этом в интернете, просто некоторые люди говорят, что это делается автоматически, но это не работает для меня …

Извините за мой плохой английский…

2

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector