Как загрузить PNG файл с 64-битным цветом глубины в openGL? Я попробовал SOIL и SDL, но текстура, которую она отображает, является белой. Для 32-битной глубины работает отлично (только если мой PNG содержит градиент, он не отображается плавно, а цвета немного размываются) → что-то не работает должным образом. Я пробовал на форумах numoues, но ничего не исправляет мою проблему. Вот функция, которую я использую с 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 в моем каталоге проектов.
Есть 64-битные PNG файлы? Давайте посмотрим:
Я предлагаю попробовать вручную создать 64-битную текстуру, чтобы убедиться, что ваша реализация OpenGL поддерживает GL_RGBA16. Пример. Создайте простой градиент красного цвета в памяти, затем загрузите его как текстуру. Затем, как только вы начнете работать, попробуйте загрузить текстуру с помощью SDL.