06/06/24 03:03:15 m69O2sj/
すみません、質問なんですが
DirectXのD3DXIntersect関数を使い
当たったメッシュの頂点座標を取得したいのですが
色々触って見ても変な座標しか取れません
変な所があれば教えていただけないでしょうか
//レイを取得
D3DXIntersect(pThing->pMesh,&vecStart,&vecDirection,&boHit,&index,NULL,NULL, pfDistance,&pAllHits,NULL);
// 三角形の頂点バッファを取得する
if( pAllHits != NULL )
{
pHit = (LPD3DXINTERSECTINFO)pAllHits->GetBufferPointer();
index = pHit[0].FaceIndex;
pAllHits->Release();
}
D3DXVECTOR3 vertex[3];
DWORD fvf = pMesh->GetFVF();
DWORD versize = D3DXGetFVFVertexSize(fvf);
PBYTE pvertexBuffer;
pMesh->LockVertexBuffer(D3DLOCK_READONLY,(LPVOID*)&pvertexBuffer);
pvertexBuffer += versize*(index - 1);
for( DWORD i=0; i<3; i++)
{
vertex[i] = *(D3DXVECTOR3*)pvertexBuffer;
pvertexBuffer += versize;
}