|
|
在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() ); }
我如何可以,先平铺一个地面,再平铺一条路面呢? |
|