السلام عليكم ورحمة الله وبركاته
أخواني عندي سؤال بسيط أرجوا ممن لديه خلفية عن الموضوع أن يجيب عليه .
كيف أستطيع أن أحصل على vertices ل mesh محمل من ملف لكي أستفيد من مواضع هذه ال vertices في اكتشاف التصادم بين كرة وهذا ال mesh الذي هو عبارة عن قطعة لأرض غير منتظمة ؟
وهذا الكود الذي حاولت أن أحصل منه على ال vertices :
#define FVF_VERTEX D3DFVF_XYZ|D3DFVF_NORMAL|D3DFVF_TEX1
struct _VERTEX
{
D3DXVECTOR3 pos;
D3DXVECTOR3 norm;
float tu;
float tv;
};
vector<D3DXVECTOR3> GetVertices()
{
vector<D3DXVECTOR3> vecVertices;
_VERTEX* pVerts;
ppMesh->LockVertexBuffer(0,(void**)&pVerts);
int numVerts = ppMesh->GetNumVertices();
for (int i = 0; i < numVerts; i++)
{
D3DXVECTOR3 vec3Vertice;
vec3Vertice.x = pVerts->pos.x;
vec3Vertice.y = pVerts->pos.y;
vec3Vertice.z = pVerts->pos.z;
vecVertices.push_back(vec3Vertice);
pVerts++;
}
ppMesh->UnlockVertexBuffer();
return vecVertices;
}
بعد تنفيذ البرنامج حصلت على خطا في وقت الترجمة وهو :
Access violation reading location 0x04077000.
وموقعه في هذا السطر :
vec3Vertice.x = pVerts->pos.x;