游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1571|回复: 4

索引缓冲的困惑?

[复制链接]

3

主题

6

帖子

12

积分

新手上路

Rank: 1

积分
12
发表于 2009-3-1 11:22:00 | 显示全部楼层 |阅读模式
使用索引缓冲区创建一个正方体, 像下面这样:
D3DVertex obj[] =
{
        { -1, -1, -1, 0xFFFFFFFF, 0, 1 },
        { 1,  -1, -1, 0xFFFFFFFF, 1, 1 },
        { 1,  1,  -1, 0xFFFFFFFF, 1, 0 },
        { -1, 1,  -1, 0xFFFFFFFF, 0, 0 },

        {  1, -1, 1, 0xFFFFFFFF, 0, 1 },
        { -1, -1, 1, 0xFFFFFFFF, 1, 1 },
        { -1, 1,  1, 0xFFFFFFFF, 1, 0 },
        {  1, 1,  1, 0xFFFFFFFF, 0, 0 },
};
WORD indices[] =
{
        // front
        0, 1, 2,
        0, 2, 3,

        // back
        4, 5, 6,
        4, 6, 7,

        // top
        3, 2, 7,
        3, 7, 6,

        // bottom
        5, 4, 1,
        5, 1, 0,

        // left
        2, 0, 3,
        2, 3, 6,

        // right
        1, 4, 7,
        1, 7, 5
};
这样创建出来的正方体,纹理是有问题的,只有前面和后面的纹理坐标是对的,这样的话纹理坐标好像也要有索引,但是该怎么指定呢,谁能告诉我个方法啊?

0

主题

769

帖子

1052

积分

金牌会员

Rank: 6Rank: 6

积分
1052
发表于 2009-3-1 11:30:00 | 显示全部楼层

Re:索引缓冲的困惑?

纹理坐标不是放在顶点序列里面的吗?

你要先定义好你的渲染的规则

比如#define D3DFVF_CUSTOMVERTEX (D3DFVF_XYZ|D3DFVF_DIFFUSE)

然后根据渲染顶点的顺序定好索引,然后才可以画出正确的图形来

这个是我的从MAX 中得到的方块索引
和对应的顶点
CUSTOMVERTEX cvVertices[] =
{
        {-25.0f,-25.0f,0.0f,D3DCOLOR_XRGB(0,0,255),},
        {25.0f,-25.0f,0.0f,D3DCOLOR_XRGB(255,0,0),},
       
        {-25.0f,25.0f,0.0f,D3DCOLOR_XRGB(255,255,0),},
        {25.0f,25.0f,0.0f,D3DCOLOR_XRGB(0,255,0),},

        {-25.0f,-25.0f,50.0f,D3DCOLOR_XRGB(255,0,0),},
        {25.0f,-25.0f,50.0f,D3DCOLOR_XRGB(0,255,0),},
       
        {-25.0f,25.0f,50.0f,D3DCOLOR_XRGB(255,0,0),},
        {25.0f,25.0f,50.0f,D3DCOLOR_XRGB(0,0,255),},

};

DWORD nvIndex[]=
{
        0,2,3,
        3,1,0,
        4,5,7,
        7,6,4,
        0,1,5,
        5,4,0,
        1,3,7,
        7,5,1,
        3,2,6,
        6,7,3,
        2,0,4,
        4,6,2,
};

3

主题

84

帖子

84

积分

注册会员

Rank: 2

积分
84
发表于 2009-3-1 14:00:00 | 显示全部楼层

Re:索引缓冲的困惑?

你想索引纹理坐标,固定管线估计是不支持的
而且这么简单的方块,每个顶点的坐标肯定一个就够了,
不过画贴图的时候也要是各个顶点一样连接的,
就像一个纸箱展开放平一样

5

主题

686

帖子

697

积分

高级会员

Rank: 4

积分
697
QQ
发表于 2009-3-1 22:42:00 | 显示全部楼层

Re:索引缓冲的困惑?

多弄几个位置相同纹理坐标不同的顶点不就完了吗?

72

主题

447

帖子

454

积分

中级会员

Rank: 3Rank: 3

积分
454
QQ
发表于 2009-3-4 16:57:00 | 显示全部楼层

Re:索引缓冲的困惑?

在纹理上下下文章,是可以实现的

画立方体的时候其中一个面先画半个,也就是一个三角形,划一圈正好画完,正好贴图能贴上。
用新构造的贴图里面浪费空间是不可避免的。没有纹理的配合,也画不出来
提示到这种程度 肯定能做出来了
--------------------------------------------------------
欢迎游戏同仁来我的窝讨论游戏开发中遇到的问题!!
http://www.dingge.com/forum/index.asp?boardid=46
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-20 05:08

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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