游戏开发论坛

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

请教一个入门的问题

[复制链接]

2

主题

21

帖子

27

积分

注册会员

Rank: 2

积分
27
发表于 2005-4-16 08:28:00 | 显示全部楼层 |阅读模式
怎么样把一个Texture贴到一个平面的前后两面,效果就像扑克牌一样
是做4个顶点还是做8个顶点?
我这么做
pVertices[0].position = D3DXVECTOR3(-1.0f,1.0f,0.0f);
pVertices[0].tu = 0.0f;
pVertices[0].tv = 0.0f;
pVertices[1].position = D3DXVECTOR3(1.0f,1.0f,0.0f);
pVertices[1].tu = 0.5f;
pVertices[1].tv = 0.0f;
pVertices[2].position = D3DXVECTOR3(1.0f,-1.0f,0.0f);
pVertices[2].tu = 0.5f;
pVertices[2].tv = 1.0f;
pVertices[3].position = D3DXVECTOR3(-1.0f,-1.0f,0.0f);
pVertices[3].tu = 0.0f;
pVertices[3].tv = 1.0f;

pVertices[4].position = D3DXVECTOR3(-1.0f,1.0f,0.0f);
pVertices[4].tu = 0.5f;
pVertices[4].tv = 0.0f;
pVertices[5].position = D3DXVECTOR3(1.0f,1.0f,0.0f);
pVertices[5].tu = 1.0f;
pVertices[5].tv = 0.0f;
pVertices[6].position = D3DXVECTOR3(1.0f,-1.0f,0.0f);
pVertices[6].tu = 1.0f;
pVertices[6].tv = 1.0f;
pVertices[7].position = D3DXVECTOR3(-1.0f,-1.0f,0.0f);
pVertices[7].tu = 0.5f;
pVertices[7].tv = 1.0f;

设置了8个顶点,然后加载Texture,为什么背面纹理贴不上去?
SetupMatrices();

g_pd3dDevice->SetTexture(0,g_pTexture);
g_pd3dDevice->SetTextureStageState( 0, D3DTSS_COLOROP,   D3DTOP_MODULATE );
g_pd3dDevice->SetTextureStageState( 0, D3DTSS_COLORARG1, D3DTA_TEXTURE );
g_pd3dDevice->SetTextureStageState( 0, D3DTSS_COLORARG2, D3DTA_DIFFUSE );
g_pd3dDevice->SetTextureStageState( 0, D3DTSS_ALPHAOP,   D3DTOP_DISABLE );
g_pd3dDevice->SetSamplerState(0,D3DSAMP_MINFILTER,D3DTEXF_LINEAR);
g_pd3dDevice->SetSamplerState(0,D3DSAMP_MAGFILTER,D3DTEXF_LINEAR);
g_pd3dDevice->SetSamplerState(0,D3DSAMP_ADDRESSU,D3DTADDRESS_WRAP);
g_pd3dDevice->SetSamplerState(0,D3DSAMP_ADDRESSV,D3DTADDRESS_WRAP);
g_pd3dDevice->SetStreamSource(0,g_pVB,0,sizeof(CUSTOMVERTEX));
g_pd3dDevice->SetFVF(D3DFVF_CUSTOMVERTEX);
        //D3DFVF_CUSTOMEVERTEX3DFVF_XYZ|D3DFVF_TEX1
g_pd3dDevice->DrawPrimitive(D3DPT_TRIANGLEFAN,0,4);

请指点一下

69

主题

450

帖子

473

积分

中级会员

战魂缔造者

Rank: 3Rank: 3

积分
473
QQ
发表于 2005-4-16 09:17:00 | 显示全部楼层

Re:请教一个入门的问题

绘制一面,关闭CULL背面踢出即可
SetRenderState(D3DRS_CULLING,FALSE)

2

主题

21

帖子

27

积分

注册会员

Rank: 2

积分
27
 楼主| 发表于 2005-4-16 09:28:00 | 显示全部楼层

Re:请教一个入门的问题

楼上的thanks
能不能具体一点?

15

主题

248

帖子

248

积分

中级会员

Rank: 3Rank: 3

积分
248
发表于 2005-4-17 01:42:00 | 显示全部楼层

Re:请教一个入门的问题

这与 表面拣选模式 好像没关系吧……
如果帖一样的帖图,直接贴就可以了吧……
如果不同的帖图,我是把8个顶点放在不同的VertexBuffer里,然后DrawPrimitive()两次

2

主题

21

帖子

27

积分

注册会员

Rank: 2

积分
27
 楼主| 发表于 2005-4-18 11:15:00 | 显示全部楼层

Re: Re:请教一个入门的问题

Carl: Re:请教一个入门的问题

这与 表面拣选模式 好像没关系吧……
如果帖一样的帖图,直接贴就可以了吧……
如果不同的帖图,我是把8个顶点放在不同的VertexBuffer里,然后DrawPrimitive()两次

两个Buffer的顶点设置一样吗?
请试一下,两个设置完全一样的话,旋转的时候会只看到一个面,后面贴的那个面旋转的时候看不到
我把两个面的顶点z值相差了0.01f可以看到两个面,看起来像一个面,但是有点不爽
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-12-25 08:39

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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