- 210 名前:sage [2006/06/24(土) 03:03:15 ID: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; }
|

|