纠结的贴图问题终于搞的差不多明白了。Nehe的教程虽然容易上手,深究起来挺费事的还是。
glGenTextures(1, &texture[0]);
glBindTexture(GL_TEXTURE_2D, texture[0]);
glTexImage2D(GL_TEXTURE_2D, 0, 3, TextureImage[0]->sizeX, TextureImage[0]->sizeY, 0, GL_RGB, GL_UNSIGNED_BYTE, TextureImage[0]->data);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
解释:
glGenTextures负责告诉OpenGL需要建立几个贴图素材(1),texture[]是素材花名册,内容是各个素材编号;
glBindTexture负责规定编号素材的种类,例中是2D贴图;
glTexImage2D顺着来,对上述素材进行编辑,TextureImage[]是之前读取硬盘上位图的结构体,TextureImage[0]->sizeX、TextureImage[0]->sizeY,TextureImage[0]->data分别是位图长、宽以及内存位置指针;
glTexParameteri同样也是编辑素材,作用是设置当贴图被放大或者缩小时候采用的滤波方式,这个可以查文档;
以上工作可以在初始化的时候做,使用贴图时只需bind贴图编号就可以了:
glBindTexture(GL_TEXTURE_2D, texture[0]);