OpenGL创建纹理步聚
以下步聚都是在glEnable(GL_TEXTURE_2D); 的状态下进行 1.创建纹理数组和存放位图的变量 GLuint texture[3]; Image texImage=load("E://image.bmp"); 2.生成纹理存放的空间 glGenTextures(3, texture); //有三个纹理 3. 绑定纹理,将纹理绑定在某个纹理数组里面 glBindTexture(GL_TEXTURE_2D, texture[0]); 4设定滤波 glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_NEAREST); //当贴图比实际尺寸大时用的滤波方式 glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_NEAREST); //当贴图比实际尺寸小时用的滤波方式 5.由位图生成贴图 glTexImage2D(GL_TEXTURE_2D, 0, 3, texImage.width(), texImage.height(), 0, GL_RGB, GL_UNSIGNED_BYTE, texImage.bit()); 用这种方法做的贴图长宽要为2的N次方。 ----------------------------------------------- 如果用滤波为 Mipmapping的话: glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR_MIPMAP_NEAREST); gluBuild2DMipmaps(GL_TEXTURE_2D, 3, texImage.width(), texImage.heigth(), GL_RGB, GL_UNSIGNED_BYTE,texImage.bit()); 可以不用理会贴的大小,它会由OpenGL自动生成一个合适大小的贴图 |