游戏开发论坛

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

DX中如何渲染多个纹理?

[复制链接]

13

主题

46

帖子

46

积分

注册会员

Rank: 2

积分
46
发表于 2007-12-19 10:43:00 | 显示全部楼层 |阅读模式
在OPENGL中,是先设置纹理,再设置纹理过滤,像下面这样

C/C++ code

    //路面 //glTranslatef(0,0,0); SelectTextureRepeat(oTexture[5]); glBegin(GL_QUADS); glTexCoord2f(0,0); glVertex3f(-MX/2,0,-MZ/2); glTexCoord2f(10,0); glVertex3f( MX/2,0,-MZ/2); glTexCoord2f(10,10); glVertex3f( MX/2,0, MZ/2); glTexCoord2f(0,10); glVertex3f(-MX/2,0, MZ/2); glEnd(); //地面 glTranslatef(0,-0.1,0); SelectTextureRepeat(oTexture[6]); glBegin(GL_QUADS); glTexCoord2f(0,0); glVertex3f(-MX/16,0,-MZ/2); glTexCoord2f(2,0); glVertex3f( MX/16,0,-MZ/2); glTexCoord2f(2,20); glVertex3f( MX/16,0, MZ/2); glTexCoord2f(0,20); glVertex3f(-MX/16,0, MZ/2); glEnd();



但是在DX中,不知道怎么弄了,它的代码如下

C/C++ code

    // Render the scene if( SUCCEEDED( pd3dDevice->BeginScene() ) ) { //在后台缓冲区绘制图形 pd3dDevice->SetTexture(0,g_pTexture); //设置过滤模式 pd3dDevice->SetSamplerState(0,D3DSAMP_MAGFILTER,D3DTEXF_LINEAR);//D3DTEXF_POINT,D3DTEXF_LINEAR,D3DTEXF_ANISOTROPIC pd3dDevice->SetSamplerState(0,D3DSAMP_MINFILTER,D3DTEXF_LINEAR);//最近点采样,线性纹理过滤,各项异性纹理过滤 //重叠纹理寻址模式 pd3dDevice->SetSamplerState(0,D3DSAMP_ADDRESSU,D3DTADDRESS_WRAP); pd3dDevice->SetSamplerState(0,D3DSAMP_ADDRESSV,D3DTADDRESS_WRAP); pd3dDevice->SetStreamSource(0,g_pVB,0,sizeof(CUSTOMVERTEX)); pd3dDevice->SetFVF(D3DFVF_CUSTOMVERTEX); pd3dDevice->DrawPrimitive(D3DPT_TRIANGLESTRIP,0,2); V( pd3dDevice->EndScene() ); }



我如何可以,先平铺一个地面,再平铺一条路面呢?

5

主题

54

帖子

54

积分

注册会员

Rank: 2

积分
54
发表于 2007-12-20 09:04:00 | 显示全部楼层

Re:DX中如何渲染多个纹理?

貌似下面一段代码不大像DX的编程风格;DX里面,你可以做多设置8个纹理,你把地面纹理设置为纹理0,路面设置为纹理1,先画纹理0,然后用纹理1与当前纹理进行运算,比如说或运算、加法运算、位与运算等,覆盖到当前纹理上,就可以完成多纹理了
你的问题应该就是少了一个纹理运算而已,那个应该是在SetRenderState里面,你找找看

13

主题

46

帖子

46

积分

注册会员

Rank: 2

积分
46
 楼主| 发表于 2007-12-20 11:20:00 | 显示全部楼层

Re:DX中如何渲染多个纹理?


不是要纹理叠加,而是两个纹理,单独渲染两个面,用不着那个8层纹理

5

主题

755

帖子

757

积分

高级会员

Rank: 4

积分
757
发表于 2007-12-20 13:42:00 | 显示全部楼层

Re:DX中如何渲染多个纹理?

你画另一个面的时候 setTexture另一个纹理不久可以了

1

主题

4

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2007-12-20 17:21:00 | 显示全部楼层

Re:DX中如何渲染多个纹理?

代码太乱了!不便于阅读。希望能够有比较好的编程风格
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-12-19 07:47

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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