1 . 表示物体表面细节的一幅或几幅二维图形,也称纹理贴图(texture)当把纹理按照特定的方式映射到物体表面上的时候能使物体看上去更加真实。纹理映射是一种允许我们为三角形赋予图象数据的技术。既包括通常意义上物体表面的纹理即使物体表面呈现凹凸不平的沟纹,同时也包括在物体的光滑表面上的彩色图案。
2.Direct3D中一个纹理是通过IDirect3DTexture9接口来表现的。一个纹理是一个类似像素矩阵的表面它能够被映射到三角形上。
3. 纹理坐标
Direct3D使用一个纹理坐标系统,它是由用水平方向的u轴和竖直方向v轴构成。由u,v坐标决定纹理上的元素,它被叫做texel。注意v轴是向下的。
3.1 三角形
4.添加纹理坐标到顶点结构:
struct Vertex
{
float _x,_y,_z;//坐标
float _nx,_ny,_nz;//顶点法线
float _u,_v;//纹理坐标
static const DWORD FVF;
};
const DWORD Vertex::FVF = D3DFVF_XYZ | D3DFVF_NORMAL | D3DFVF_TEX1;
D3DFVF_TEX1//包含了一个纹理坐标, Number of texture coordinate sets for this vertex
5.创建并赋予材质
5.1 读取纹理数据
纹理数据通常是从存储在磁盘中的图片文件中读取的,且被读进IDirect3DTexture9对象中
使用函数:
HRESULT D3DXCreateTextureFromFile(
__in LPDIRECT3DDEVICE9 pDevice,//IDirect3DDevice9