+ -
当前位置:首页 → 问答吧 → LockVertexBuffer的问题

LockVertexBuffer的问题

时间:2011-12-04

来源:互联网

BYTE* v = 0;
mesh->LockVertexBuffer(0, (void**)&v);
hr = D3DXComputeBoundingBox(
(D3DXVECTOR3*)v,
mesh->GetNumVertices(),
D3DXGetFVFVertexSize(mesh->GetFVF()),
&box->_min,
&box->_max);
以上是关于边界盒的代码,我想问一下,BYTE指针,然后作为LockVertexBuffer的第二个参数,不是一般这个参数指的顶点格式的内存么?还有BYTE转化为了D3DXVECTOR3这个是怎么转化的啊?怎么理解?
关于其中内存格式的关系不太明白,望大虾赐教啊。

作者: chengkai1853   发布时间: 2011-12-04

vb里面不止顶点坐标啊,一般包括pos/normal/tex0,也许还有color之类的东西。
看你的fvf怎么定义的了。

而D3DXComputeBoundingBox只需要坐标来计算坐标。
这个函数已经帮你处理了对齐的问题,只需要强制类型转换下就ok了.

vb不理解里面装的东西的格式。所以他返回void*。

而实际上里面的东西装的一般都是
struct vetex{
float pos[3];
...
};
这样的。

float[3]就是vector3f

作者: Kevin_qing   发布时间: 2011-12-05

热门下载

更多