gpt4 book ai didi

c++ - 获取 LPDIRECT3DVERTEXBUFFER9 上的顶点内容

转载 作者:行者123 更新时间:2023-11-28 03:15:11 25 4
gpt4 key购买 nike

如何正确获取 LPDIRECT3DVERTEXBUFFER9 上的顶点内容?当我启动它以便稍后渲染时,我知道使用了哪些顶点和它的大小,但如果我不知道,是否可以可能稍后将它们变成一个指针?

LPDIRECT3DVERTEXBUFFER9 Stream_Data;
if(p1->GetStreamSource(0, &Stream_Data, &Offset, &XStride) == D3D_OK)
{
void* pVoid;
Stream_Data->Lock(0, 0, (void**)&pVoid, 0);
memcpy( ??????, pVoid, sizeof( ?????? ) );
Stream_Data->Unlock();

Stream_Data->Release();
}

最佳答案

顶点格式是用户定义的,尽管有一些方法可以检索它:

D3DVERTEXBUFFER_DESC desc;
Stream_Data->GetDesc(&desc);

现在,desc.FVF 字段将包含灵活的顶点格式掩码,它告诉您顶点中使用了哪些字段(如所列 here 所示)。描述顶点格式的另一种方法是使用顶点声明,尽管 this article 更具描述性。描述了如何从 FVF 获取它们。

例如,您可能会得到以下 FVF:D3DFVF_XYZ | D3DFVF_正常 | D3DFVF_扩散 | D3DFVF_TEX1。这将对应于以下顶点结构:

struct Vertex
{
D3DXVECTOR3 position;
D3DXVECTOR3 normal;
D3DCOLOR diffuse;
float tu, tv;
};

关于c++ - 获取 LPDIRECT3DVERTEXBUFFER9 上的顶点内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17126759/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com