OpenGL纹理要求:1.长宽大小均为2的幂;2.长宽最小64,最大256像素(文中提到最大值不超过256是为兼容性考虑)
注:对于第一点,似乎新版本OpenGL已经可以支持为2的幂的纹理了;对于第二点,未找到明确的解释。
教程中使用glaux函数库读取BMP文件,也提供了替代代码,使用Win32API读取BMP文件。
glGenTextures 创建OpenGL纹理对象名(GLuint);
glBindTexture 把前面创建的或一个早已存在的纹理对象名绑定到一个纹理目标(可以是一维纹理、二维纹理、三维纹理等);
glTexImage2D 创建实际的纹理对象,此时会指定纹理对象的大小、像素格式、数据来源等;(这时为纹理对象分配存储空间?是内存还是显存?)(此时内存中的BMP图片已经可以被释放了)
glTexParameteri 指定纹理采样模式(包括线性、最近点等模式);
glEnable(GL_TEXTURE_2D) 启用二维纹理映射功能;
每次绘图时都需要使用glBindTexture 把需要的纹理绑定到对应的纹理目标;
在顶点属性中通过glTexCoord2f 指定顶点纹理坐标。