游戏开发论坛

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

关于纹理索引.请赐教.

[复制链接]

30

主题

126

帖子

126

积分

注册会员

Rank: 2

积分
126
发表于 2007-2-3 15:50:00 | 显示全部楼层 |阅读模式
g_pd3dDevice->SetTextureStageState( 0, D3DTSS_TEXCOORDINDEX, 0 );/// 0号纹理:使用0号纹理索引
g_pd3dDevice->SetTextureStageState( 1, D3DTSS_TEXCOORDINDEX, 0 );/// 1号纹理:使用0号纹理索引
关于这两行代码的意义很不理解,在一个简单程序中,我试着将两行代码注释掉,程序运行结果一样,请赐教.

106

主题

743

帖子

745

积分

高级会员

Rank: 4

积分
745
QQ
发表于 2007-2-4 10:15:00 | 显示全部楼层

Re:关于纹理索引.请赐教.

设置未被清除,不妨设置为使用1号纹理索引,然后再注释掉看看。

30

主题

126

帖子

126

积分

注册会员

Rank: 2

积分
126
 楼主| 发表于 2007-2-5 17:56:00 | 显示全部楼层

Re:关于纹理索引.请赐教.

我的理解对吗?请赐教:

30

主题

126

帖子

126

积分

注册会员

Rank: 2

积分
126
 楼主| 发表于 2007-2-5 17:56:00 | 显示全部楼层

Re:关于纹理索引.请赐教.

使用纹理功能时,你必需告诉DX如何将纹理贴到几何图元上,可以通过为每个顶点指定一个纹理坐标来实现。
下面的顶点结构中为每个顶点定义了两套纹理坐标:
#define D3DFVF_CUSTOMVERTEX (D3DFVF_XYZ| D3DFVF_DIFFUSE| D3DFVF_TEX2)
struct CUSTOMVERTEX
...{   FLOAT x, y, z;                    //未经过坐标转换的顶点坐标
       DWORD color;               //顶点漫反射颜色值
       FLOAT u,v ;                        //顶点纹理坐标
       FLOAT u1,v1 ;                     //顶点纹理坐标
};

你可以通过SetTextureStageState()函数来指定哪一层纹理使用哪一套坐标,例如:
g_pd3dDevice->SetTextureStageState( 0, D3DTSS_TEXCOORDINDEX, 1 ); // 0号纹理:使用0号纹理索引
g_pd3dDevice->SetTextureStageState( 1, D3DTSS_TEXCOORDINDEX, 0 ); // 1号纹理:使用0号纹理索引

在下面的顶点结构中只为每个顶点定义了一套纹理坐标:
#define D3DFVF_CUSTOMVERTEX (D3DFVF_XYZ| D3DFVF_DIFFUSE| D3DFVF_TEX2)
struct CUSTOMVERTEX
...{   FLOAT x, y, z;                    //未经过坐标转换的顶点坐标
       DWORD color;               //顶点漫反射颜色值
       FLOAT u,v ;                        //顶点纹理坐标
};

但并不意味着不能使用多层纹理,只不过每个顶点只有一套纹理坐标纹理坐标供选用,例如:
g_pd3dDevice->SetTextureStageState( 0, D3DTSS_TEXCOORDINDEX, 0 ); /**//// 0号纹理:使用0号纹理索引
g_pd3dDevice->SetTextureStageState( 1, D3DTSS_TEXCOORDINDEX, 0 ); /**//// 1号纹理:使用0号纹理索引

106

主题

743

帖子

745

积分

高级会员

Rank: 4

积分
745
QQ
发表于 2007-2-6 10:47:00 | 显示全部楼层

Re:关于纹理索引.请赐教.

完全正确。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-26 10:41

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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