如何在openGL中加载64位深度颜色的PNG文件?我尝试过SOIL和SDL但是它的纹理显示它是白色的。对于32位深度工作完美(仅当我的PNG包含渐变时,它不能平滑地显示并且颜色稍微褪色) - >有些东西不能正常工作。我已尝试过numeroues论坛,但似乎没有什么能解决我的问题。这是我与SOIL一起使用的功能:
bool LoadGLTextures()
{
texture = SOIL_load_OGL_texture
(
"mountain.png",
SOIL_LOAD_AUTO,
SOIL_CREATE_NEW_ID,
SOIL_FLAG_MIPMAPS | SOIL_FLAG_INVERT_Y | SOIL_FLAG_NTSC_SAFE_RGB | SOIL_FLAG_COMPRESS_TO_DXT
);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
return true;
}
当我绘制我使用的纹理时:
glBindTexture(GL_TEXTURE_2D, texture);
glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
//Code for drawing quad with texture (glTexCoord and glVertex)
我的项目目录中有我的png文件。
答案 0 :(得分:2)
有64位PNG文件吗?我们来看看:
我建议尝试手动创建64位纹理,以确保您的OpenGL实现支持GL_RGBA16。例如:在内存中创建一个简单的红色渐变,然后将其作为纹理加载。然后,一旦你有了工作,尝试使用SDL加载纹理。