Direct3D支持的图像文件格式有:
■ 联合图像专家组(.jpg)
■ Windows位图(.bmp)
■ 光栅图像文件存储格式(.tga)
■ 可移植的网络图像文件格式(.png)
■ 直接绘图表面格式(.dds)
■ 可移植的像素映射格式(.ppm)
■ Windows设备无关位图格式(.dib)
■ 高动态范围格式(.hdr)
■ 联合图像专家组(.jpg)
■ Windows位图(.bmp)
■ 光栅图像文件存储格式(.tga)
■ 可移植的网络图像文件格式(.png)
■ 直接绘图表面格式(.dds)
■ 可移植的像素映射格式(.ppm)
■ Windows设备无关位图格式(.dib)
■ 高动态范围格式(.hdr)
■ 可移植的浮点映射格式(.pfm)
创建和使用纹理
在Direct3D中加载图像时要用到一个名为LPDIRECT3DTEXTURE9的结构。LPDIRECT3DTEXTURE9结构是Direct3D中的纹理对象,在加载1D或2D纹理图像时要用到该结构。无论何时创建LPDIRECT3DTEXTURE9纹理对象,都要调用对象的Release()函数对其进行释放。创建纹理时,可以选择手动将图像数据加载到对象上,或使用Direct3D的函数将文件中的图像数据加载到对象上。本书将从文件加载图像数据入手,虽然读者可以从Direct3D支持的任何图像文件格式加载图像文件,但这里主要涉及他图像文件格式是.bmp和.tga这两种图像文件格式。
为了创建空的纹理图像,读者可以使用D3DXCreateTexture()函数手动将数据添加到纹理中。一旦成功创建纹理对象,D3DXCreateTexture()函数就返回一个D3D_OK值(如果出现错误就会返回其他值)。如果函数返回且纹理对象为NULL(空),那么纹理创建就存在问题。程序清单4.1列举了D3DXCreateTexture()喊俗话的原型。
程序清单D3DXCreateTexture()函数的原型
HRESULT WINAPI D3DXCreateTexture(
LPDIRECT3DDEVICE9 pDevice, // Direct3D9的设备对象
UINT Width, // 图像宽度
UINT Height, // 图像高度
UINT MipLevels, // 图片的图层,一般用D3DX_DEFAULT,与图像质量有关
DWORD Usage, //设定这个纹理的使用方法
D3DFORMAT Format, // 每个颜色成分使用的位数
D3DPOOL Pool, // 纹理对象驻留的内存类别
LPDIRECT3DTEXTURE9 * ppTexture // 指向新创建的纹理对象
);