2
我有一个应该显示图像,但永远不会出现图像的代码。使用OpenGL显示图像使用SOIL
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'调用会影响固定管道中的纹理渲染,你知道吗? – 2013-02-21 11:29:30
看起来有问题。当像'C:\\ Images \\ Imagename.tga'这样的完整路径给出这当然不总是可能的时候,它会显示imgae,所以我想知道应该使用哪个相对路径作为图像文件?我正在使用** Code :: Blocks ** 10.05作为我的IDE – 2013-02-22 18:47:57
你在问m e如何为文件构建相对路径? * Srsly?*'..'是“上一个目录”。因此,如果你的代码位于'/ whatever/bin /'和'/ whatever/images /'中,则路径将是'../ images/imagename.tga'。 – 2013-02-22 18:58:27