以创建一个纹理四边形为例,记录一下如何对一个四边形进行纹理映射以及如何设置纹理过滤器的一般步骤,如果我们的硬件支持多级渐进纹理映射方式,程序中便可使用D3DXCreateTextureFromFile函数自动创建一个多级渐进纹理链。
大致的步骤就是下面四点:
(1)构造组成物体的顶点,并为其指定纹理坐标。
(2)用函数D3DXCreateTextureFromFile为IDirect3DTexture9接口加载一种纹理。
(3)设置缩小过滤器、放大过滤器和多级渐进纹理过滤器。
(4)绘制物体前,用函数IDirect3DDevice9::SetTexture来设定与该物体关联的纹理。
首先需要初始化几个全局变量,一个用于存储四边形顶点的顶点缓存,另一个是将要映射到该四边形的纹理。
在Setup函数中我们像之前一样定义了顶点纹理坐标的两个三角形构造了一个四边形。然后,为IDirect3DTexture9接口加载位图文件,最好是用相对地址,其加载模式我觉得和VB的LoadPicture差不多的,只是多了两个其他的参数。接下来在调用SetTexture方法启用纹理。最后我们将缩小过滤器和放大过滤器设为线性过滤模式,并将渐进纹理过滤器设为D3DTEXF_POINT。当然,过滤器的模式选择可以自由,这里主要是为了效率。
现在我们就可以在Display函数中像往常一样绘制该四边形了,并且我们可以将当前纹理映射到该四边形表面上。