D3D-纹理贴图
纹理贴图是将位图包裹到某些图形上,从而让物体变得丰富多彩。
使用纹理的步骤
1.构建带有纹理坐标的顶点格式
纹理其实就是一个位图,需要想法子将贴图贴到物体上。
因此,在设置灵活顶点格式时,需要设置纹理坐标,即顶点与贴图的对应比例。
#define D3DFVF_CUSTOMVERTEX ( D3DFVF_XYZ | D3DFVF_TEX1 )
struct Vertex
{
float x, y, z;
float tu, tv;
};
顶点结构体中tu,tv制订了定点的纹理坐标,值一般介于0~1.0之间。也可以大于1.0,这是纹理映射将会导致纹理重复,具体的重复方式取决于纹理寻址模式。
2.构建纹理对象
一般使用一个图形文件创建一个纹理对象。
D3DXCreateTextureFromFile(
g_pd3dDevice, //设备接口
"woodfloor.bmp", //文件路径
&g_pTexture //纹理对象接口
);
3.使用纹理
创建一个纹理以后,在绘制物体之前,使用SetTexture()将某块纹理引入渲染管道。
g_pd3dDevice->SetTexture(
0,//Sampler,纹理阶段
g_pTexture //纹理对象
);
这样,就可以绘制物体了,绘制物体的时候,物体会根据顶点中的纹理坐标将纹理贴图贴上去。