UPDATEOpenGL的:質地裝載但不能應用於
我使用glutSolidCube
停止和啓動手動應用紋理。仍然無濟於事。任何想法,如果不是的話,你能指點我一個紋理成功應用於立方體的例子嗎?
glRotatef(180, 0.0f, 1.0f, 0.0f);
glBindTexture(GL_TEXTURE_CUBE_MAP, texture);
glTranslatef(pos_x, 0, pos_z);
int size = 1;
// Begin Rending
glBegin(GL_QUADS);
// Face 1
glNormal3f(0.0f, 0.0f, 1.0f);
glTexCoord2f(0.0f, 0.0f);
glVertex3f(size, size,-size);
glTexCoord2f(1.0f, 0.0f);
glVertex3f(-size, size,-size);
glTexCoord2f(1.0f, 1.0f);
glVertex3f(-size, size, size);
glTexCoord2f(0.0f, 1.0f);
glVertex3f(size, size, size);
// Face 2
glNormal3f(0.0f, 0.0f,-1.0f);
glTexCoord2f(0.0f, 0.0f);
glVertex3f(size,-size, size);
glTexCoord2f(1.0f, 0.0f);
glVertex3f(-size,-size, size);
glTexCoord2f(1.0f, 1.0f);
glVertex3f(-size,-size,-size);
glTexCoord2f(0.0f, 1.0f);
glVertex3f(size,-size,-size);
// Face 3
glTexCoord2f(0.0f, 0.0f);
glVertex3f(size, size, size);
glTexCoord2f(1.0f, 0.0f);
glVertex3f(-size, size, size);
glTexCoord2f(1.0f, 1.0f);
glVertex3f(-size,-size, size);
glTexCoord2f(0.0f, 1.0f);
glVertex3f(size,-size, size);
// Face 4
glNormal3f(0.0f,-1.0f, 0.0f);
glTexCoord2f(0.0f, 0.0f);
glVertex3f(size,-size,-size);
glTexCoord2f(1.0f, 0.0f);
glVertex3f(-size,-size,-size);
glTexCoord2f(1.0f, 1.0f);
glVertex3f(-size, size,-size);
glTexCoord2f(0.0f, 1.0f);
glVertex3f(size, size,-size);
// Face 5
glNormal3f(1.0f, 0.0f, 0.0f);
glTexCoord2f(0.0f, 0.0f);
glVertex3f(-size, size, size);
glTexCoord2f(1.0f, 0.0f);
glVertex3f(-size, size,-size);
glTexCoord2f(1.0f, 1.0f);
glVertex3f(-size,-size,-size);
glTexCoord2f(0.0f, 1.0f);
glVertex3f(-size,-size, size);
// Face 6
glNormal3f(1.0f, 0.0f, 0.0f);
glTexCoord2f(0.0f, 0.0f);
glVertex3f(size, size,-size);
glTexCoord2f(1.0f, 0.0f);
glVertex3f(size, size, size);
glTexCoord2f(1.0f, 1.0f);
glVertex3f(size,-size, size);
glTexCoord2f(0.0f, 1.0f);
glVertex3f(size,-size,-size);
glEnd();
我正在用OpenGL +轉運蛋白一個簡單的基於體素的比賽,我在與加載紋理並將其應用到一個立方體的麻煩。紋理在這裏創造:
texture = SOIL_load_OGL_cubemap (
"block.png",
"block.png",
"block.png",
"block.png",
"block.png",
"block.png",
SOIL_LOAD_RGB,
SOIL_CREATE_NEW_ID,
SOIL_FLAG_MIPMAPS
);
而且在這裏抽籤的方法適用於:
glEnable(GL_TEXTURE_GEN_S); //enable texture coordinate generation
glEnable(GL_TEXTURE_GEN_T);
glBindTexture(GL_TEXTURE_2D, texture);
glutSolidCube(2);
glDisable(GL_TEXTURE_GEN_S); //enable texture coordinate generation
glDisable(GL_TEXTURE_GEN_T);
但是當我運行應用程序,我得到一個堅實的白色立方體依然。
我思念的東西很明顯?
你'glEnable(GL_TEXTURE_CUBE_MAP)''?爲什麼在'glBindTexture()'中使用'GL_TEXTURE_2D'目標而不是'GL_TEXTURE_CUBE_MAP'? – genpfault
嘗試用新舊解決方案,沒有運氣。 –
您是否啓用2D紋理? (glEnable(GL_TEXTURE_2D))。另外,我並不熟悉SOIL,但您可能應該只使用2D紋理,而不是立方體貼圖。因此,您對SOIL_load_OGL_cubemap的調用可能不正確。環顧四周,看看是否有SOIL函數會加載常規2D紋理。 – redsoxfantom