游戏开发论坛

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

D3D索引缓冲

[复制链接]

45

主题

126

帖子

126

积分

注册会员

Rank: 2

积分
126
发表于 2008-11-12 13:46:00 | 显示全部楼层 |阅读模式
3D游戏编程大师技巧里有个加载PLG文件的例子,由于我没写书上的加载引擎就自己用固定功能管线加载,但始终加载不了。
先看一下PLG文件的格式:
# simple cube
tri 8 12  

# vertex list
5  5 5
-5  5 5
-5  5 -5
5  5 -5
5 -5 5
-5 -5 5
-5 -5 -5
5 -5 -5


# polygon list

0xd0f0 3 2 1 0
0xd0f0 3 3 2 0
0xd0f0 3 4 7 0
0xd0f0 3 7 3 0
0xd0f0 3 6 7 4
0xd0f0 3 5 6 4
0xd0f0 3 2 6 1
0xd0f0 3 6 5 1
0xd0f0 3 7 6 3
0xd0f0 3 6 2 3
0xd0f0 3 5 4 0
0xd0f0 3 1 5 0

# end plg/plx file
基于这种格式,我就想用索引缓冲来做,但在顶点缓冲中嵌套了索引缓冲即:
m_pVB->Lock(0,0,(void**)&Vertices,0);
m_pIndexVB->Lock(0,0,(void**)&Indexs,0);
m_pIndexVB->Unlock();
m_pVB->Unlock();结果出不来。
我又将他们分开后结果还出不来。我自信别的地方没错,但结果就是不出来。
我认为是索引缓冲的原因,所以想问一下大家索引缓冲和顶点缓冲创建的时候有没有先后顺序,能不能嵌套。大家有加载PLG文件的例子程序借我看一下。谢谢了!

2

主题

429

帖子

435

积分

中级会员

Rank: 3Rank: 3

积分
435
发表于 2008-11-12 21:42:00 | 显示全部楼层

Re:D3D索引缓冲

DX SDK:
When working with index buffers, you are allowed to make multiple lock calls.
When working with vertex buffers, you are allowed to make multiple lock calls.

单个可以多重嵌套,不过index和vertex交互的嵌套,没有试过,应该也行吧。

不过大部分情况都不用嵌套。因为两个缓冲在加载时通常都没有直接的联系。

45

主题

126

帖子

126

积分

注册会员

Rank: 2

积分
126
 楼主| 发表于 2008-11-12 21:54:00 | 显示全部楼层

Re:D3D索引缓冲

要先读取顶点坐标然后是顶点顺序,最后才是根据顶点索引来求颜色的嘛,怎么不用哦?

2

主题

429

帖子

435

积分

中级会员

Rank: 3Rank: 3

积分
435
发表于 2008-11-12 21:59:00 | 显示全部楼层

Re: Re:D3D索引缓冲

zyfu0000: Re3D索引缓冲

要先读取顶点坐标然后是顶点顺序,最后才是根据顶点索引来求颜色的嘛,怎么不用哦?


读取顶点索引时,不需要具体的顶点坐标。如果不是考虑文件读取的顺序,完全可以先加载顶点索引。

45

主题

126

帖子

126

积分

注册会员

Rank: 2

积分
126
 楼主| 发表于 2008-11-13 10:26:00 | 显示全部楼层

Re:D3D索引缓冲

晓得不用顶点坐标,但是坐标在文件前面,而且顶点的颜色在于索引同行了嘛,不然你怎么读文件。

5

主题

686

帖子

697

积分

高级会员

Rank: 4

积分
697
QQ
发表于 2008-11-13 20:34:00 | 显示全部楼层

Re:D3D索引缓冲

在dxcpl中打开d3d调适模式,如果lock不允许这样搞,就会有相应的出错提示

45

主题

126

帖子

126

积分

注册会员

Rank: 2

积分
126
 楼主| 发表于 2008-11-14 13:30:00 | 显示全部楼层

Re:D3D索引缓冲

是哦 ,在程序退出的时候,我加了一段代码:
if(m_pIndexVB!=NULL)
{
m_pIndexVB->Release();
m_pIndexVB=NULL;
}
但在退出的时候老提示错误,提示在文件mlock.h文件中,但在程序中我是unlock过的,怎么会出错阿?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-20 21:57

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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