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