|

楼主 |
发表于 2007-12-19 16:55:00
|
显示全部楼层
Re:问难的没人搭理,问个简单的,渲染两个平面需要几个缓
在OPENGL中,是先设置纹理,再设置纹理过滤,就可以使用多个纹理,像下面这样(使用两个)
//路面
//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中,不知道怎么弄了,因为它的代码如下
//在后台缓冲区绘制图形
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() );
可我想用两个纹理怎么做呀?像OGL哪样, |
|