小编arm*_*git的帖子

纹理在opengl中显示为白色

我无法加载BMP texture并在立方体的面上显示它.
我正在研究.Windows 7我的编译器是Visual Studio 2010 Express.I FreeImage用来加载bmp.My图像位深度是24.我的图像大小是256*256.I我SDL用来创建窗口并处理事件.
当我编译并运行程序时,我的立方体仍然是白色的,它的脸上没有显示任何东西.我正在将纹理加载到GLuint变量中.当我打印该变量时,它只打印"1".我的一个朋友告诉我,我的显卡与这个版本的版本不兼容OpenGL.因此,我Ubuntu在虚拟机上编译并运行程序,它工作正常.立方体已成功纹理化.你可以帮我运行它我的Windows呀?
如果你需要我的显卡是NVIDIA GT240 DDR5.

编辑

这是我的initgl函数:

//OpenGL initialization.
int initGL(void)
{
    glEnable(GL_TEXTURE_2D); //Enable texture mapping.
    if(!loadGLTextures("bmp_24.bmp"))
        return false;

    glShadeModel(GL_SMOOTH);
    glClearColor(0.0f , 0.0f , 0.0f , 0.5f);
    glClearDepth(1.0f);
    glEnable(GL_DEPTH_TEST);
    glDepthFunc(GL_LEQUAL);
    //Nice perspective.
    glHint(GL_PERSPECTIVE_CORRECTION_HINT , GL_NICEST);
    return true;
}
Run Code Online (Sandbox Code Playgroud)

这是加载图像的函数.GLuint纹理[1]之前已定义:

//This function will load a bitmap image.
bool loadGLTextures(const char* file)
{
    FREE_IMAGE_FORMAT fif = …
Run Code Online (Sandbox Code Playgroud)

c++ opengl sdl-opengl

3
推荐指数
1
解决办法
4442
查看次数

标签 统计

c++ ×1

opengl ×1

sdl-opengl ×1