游戏开发论坛

 找回密码
 立即注册
搜索
查看: 5788|回复: 6

[讨论] 关于FVF的问题

[复制链接]

16

主题

72

帖子

72

积分

注册会员

Rank: 2

积分
72
发表于 2004-1-14 16:48:00 | 显示全部楼层 |阅读模式
微软FVF实现的时候,在内存是如何控制FVF结构的
如:CreateVertexBuffer(3*sizeof(CUSTOMVERTEX),
                    0, D3DFVF_CUSTOMVERTEX,
                    D3DPOOL_DEFAULT, &g_pVB, 0))) {
.....
}

第一参数是分配的内存大小,只知道内存大小是怎么确定定义了多少个vertex呢?

35

主题

105

帖子

119

积分

注册会员

Rank: 2

积分
119
发表于 2004-1-14 17:18:00 | 显示全部楼层

Re: 关于FVF的问题

这个函数只不过创建了顶点内存大小,并没有帮你把顶点数据填入

16

主题

72

帖子

72

积分

注册会员

Rank: 2

积分
72
 楼主| 发表于 2004-1-14 17:36:00 | 显示全部楼层

Re:关于FVF的问题

填数据是通过自定义的CUSTOMvertex 数据结果
如:
struct CUSTOMVERTEX
{
    FLOAT x, y, z;
    DWORD colour;
   float u, v;
};

我想问一下,dx是怎么把内存大小安这个结构分开定点的?

23

主题

53

帖子

53

积分

注册会员

Rank: 2

积分
53
发表于 2004-1-14 20:10:00 | 显示全部楼层

Re: 关于FVF的问题

好像自定义的顶点结构中各数据项是要按一定顺序的。

2

主题

17

帖子

17

积分

新手上路

Rank: 1

积分
17
发表于 2004-1-15 11:19:00 | 显示全部楼层

Re:关于FVF的问题

可以通过调用方法IDirect3DDevice9::SetFVF或者IDirect3DDevice9::SetSetVertexDeclaration
这些方法把顶点数据流的格式告诉系统
比如说自定义一种顶点格式 : #define CUSTOM_FVF (D3DFVF_XYZ | D3DFVF_NORMAL)
这样通知系统 :   pd3dDevice->SetFVF(CUSTOM_FVF)

16

主题

72

帖子

72

积分

注册会员

Rank: 2

积分
72
 楼主| 发表于 2004-1-15 16:36:00 | 显示全部楼层

Re:关于FVF的问题

如果#define CUSTOM_FVF (D3DFVF_XYZB3| D3DFVF_NORMAL|D3DFVF_TEX1)
那么
struct BLENDVERTEX
{
    D3DXVECTOR3 v;      
    FLOAT       blend1;  
    FLOAT       blend2;  
    FLOAT       blend3;
   D3DXVECTOR3 n;      
   FLOAT       tu, tv;
};必须定义成这样吗?能不能只定一个blend?
如果#define D3DFVF_BLENDVERTEX (D3DFVF_XYZB4 | D3DFVF_LASTBETA_UBYTE4 |D3DFVF_NORMAL|D3DFVF_TEX1)

哪D3DFVF_LASTBETA_UBYTE4 具体什么功能?

2

主题

17

帖子

17

积分

新手上路

Rank: 1

积分
17
发表于 2004-1-15 18:08:00 | 显示全部楼层

Re:关于FVF的问题

The first question : of course not

The second question : To use indexed vertex blending, the D3DFVF_LASTBETA_UBYTE4 flag should appear at the end of the FVF declaration. The presence of this flag indicates that the fifth blending weight will be treated as a DWORD instead of float.
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-2-19 19:14

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表