我用SDL + OpenGL製作了這個小遊戲。遊戲在我的個人電腦上運行良好,但在朋友的個人電腦上,他只是得到白盒子和黑屏。其他電腦上的OpenGL白色紋理
我想這可能是一個問題,因爲我的紋理是在尺寸上的2個非權力。我無法更改紋理尺寸,因此經過一些搜索後,我發現使用GL_ARB_texture_non_power_of_two會以某種方式強制(?)npot紋理。但是,令我驚訝的是,白色的盒子和東西出現在我的電腦上,他們甚至沒有和我的朋友一起走過。我無法理解問題是什麼。任何幫助將不勝感激。
代碼:
numColors = images[i]->format->BytesPerPixel;
if (numColors == 4)
{
if (images[i]->format->Rmask == 0x000000FF)
textureFormat = GL_RGBA;
else
textureFormat = GL_BGRA;
}
else if (numColors == 3)
{
if (images[i]->format->Rmask == 0x000000FF)
textureFormat = GL_RGBA;
else
textureFormat = GL_BGRA;
}
glPixelStorei(GL_UNPACK_ALIGNMENT,4);
glGenTextures(1, &textures[i]);
glBindTexture(GL_ARB_texture_non_power_of_two, textures[i]);
glTexParameteri(GL_ARB_texture_non_power_of_two,GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_ARB_texture_non_power_of_two,GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexImage2D(GL_ARB_texture_non_power_of_two, 0, numColors, images[i]->w, images[i]->h, 0, textureFormat, GL_UNSIGNED_BYTE, images[i]->pixels);
白盒PC是否支持NPOT紋理?該擴展只是 – Macke
對不起,我沒有得到你.. – tf61
對不起,偶然發現了鍵盤。 NPOT不是你可以啓用的東西,它是GPU支持(或不支持)的東西。那麼,NPOT是否在發生故障的GPU的擴展字符串中列出? – Macke