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这个是怎么转化的啊?怎么理解?
关于其中内存格式的关系不太明白,望大虾赐教啊。
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
看你的fvf怎么定义的了。
而D3DXComputeBoundingBox只需要坐标来计算坐标。
这个函数已经帮你处理了对齐的问题,只需要强制类型转换下就ok了.
vb不理解里面装的东西的格式。所以他返回void*。
而实际上里面的东西装的一般都是
struct vetex{
float pos[3];
...
};
这样的。
float[3]就是vector3f
作者: Kevin_qing 发布时间: 2011-12-05
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28