D3D-纹理贴图

Published: 24 Feb 2014 Category: 游戏研发

纹理贴图是将位图包裹到某些图形上,从而让物体变得丰富多彩。

使用纹理的步骤

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 //纹理对象 ); 这样,就可以绘制物体了,绘制物体的时候,物体会根据顶点中的纹理坐标将纹理贴图贴上去。