【发布时间】:2013-02-06 13:10:48
【问题描述】:
我有以下代码应该显示图像但图像从未出现。
GLuint tex_2d = SOIL_load_OGL_texture (
"ImageName.tga",
SOIL_LOAD_AUTO,
SOIL_CREATE_NEW_ID,
SOIL_FLAG_MIPMAPS | SOIL_FLAG_INVERT_Y | SOIL_FLAG_NTSC_SAFE_RGB | SOIL_FLAG_COMPRESS_TO_DXT
);
glColor3f(0.0f,1.0f,.50f);
glBindTexture(GL_TEXTURE_2D, tex_2d);
glEnable(GL_TEXTURE_2D);
glBegin(GL_QUADS);
glTexCoord2d(0,0); glVertex3f(factor*BOARD_BREADTH/2,-factor*BOARD_LENGTH/2,0);
glTexCoord2d(0,1); glVertex3f(factor*BOARD_BREADTH/2,factor*BOARD_LENGTH/2,0);
glTexCoord2d(1,1); glVertex3f(-factor*BOARD_BREADTH/2,factor*BOARD_LENGTH/2,0);
glTexCoord2d(1,0); glVertex3f(-factor*BOARD_BREADTH/2,-factor*BOARD_LENGTH/2,0);
glEnd();
但我只得到一个绿色矩形作为输出。没有编译错误。
【问题讨论】:
-
你检查
tex_2d是否真的不是0(即如果图像加载失败)?还有,glColor调用会影响固定管线中的纹理渲染,你知道吗? -
好像有问题。当给出像
C:\\Images\\Imagename.tga这样的完整路径时,它会显示imgae,这当然并不总是可能的。所以我想知道我应该为图像文件使用哪个相对路径?我使用 Code::Blocks 10.05 作为我的 IDE -
你问我如何构造文件的相对路径? Srsly?
..是“上一个目录”。所以如果你的代码在/whatever/bin/,图片在/whatever/images/,那么路径就是../images/imagename.tga。
标签: image opengl textures soil