游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1651|回复: 3

请问如何访问Vertex Buffer ?

[复制链接]

36

主题

197

帖子

197

积分

注册会员

Rank: 2

积分
197
发表于 2006-1-19 14:17:00 | 显示全部楼层 |阅读模式
我在做shadow volume中,需要访问mesh的所有顶点,用lock后,得到一块内存,可是,我如何访问他?

就是说,我虽然可以通过getfvf得到顶点格式,可是如何使用?我怎么知道第一个字节是颜色还是法线,还是xyz,还是贴图之类的? [em7] [em4]

132

主题

1341

帖子

1341

积分

金牌会员

Rank: 6Rank: 6

积分
1341
发表于 2006-1-19 15:22:00 | 显示全部楼层

Re:请问如何访问Vertex Buffer ?

例如:struct vertex {d3dxvector3 p,n;DWORD color;float u,v;};
那么你要设置fvf=d3dfvf_xyz|d3dfvf_normal|d3dfvf_diffuse|d3dfvf_tex1;
详细看看我的blog里面的一篇文章

13

主题

245

帖子

245

积分

中级会员

Rank: 3Rank: 3

积分
245
发表于 2006-1-20 15:54:00 | 显示全部楼层

Re:请问如何访问Vertex Buffer ?

要访问LOCK的缓存,方法如下:
    CUSTOMVERTEX* pVertices;

    if( FAILED( g_pVB->Lock( 0, 0, (void**)&pVertices, 0 ) ) )
        return E_FAIL;

    for( DWORD i=0; i<50; i++ )
    {
     pVertices.position = ...
     }
看到了吗,pVertices就是你要访问的其中一个。。。

另外,GetFVF能得到灵活顶点格式,至于你不能判断哪种格式,那是你没有去看没种格式的定义(每种相互冲突的格式定义是在同一个字段BIT位置上的)

13

主题

245

帖子

245

积分

中级会员

Rank: 3Rank: 3

积分
245
发表于 2006-1-20 15:56:00 | 显示全部楼层

Re:请问如何访问Vertex Buffer ?

好好看看DX9 SDK,里面应该有你需要的东西,呵呵
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-23 06:51

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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