OpenGL图像加载64位深度
OpenGL Image loading 64 bit depth
如何加载openGL中具有64位深度颜色的PNG文件?我尝试过土壤和SDL,但他的质感是白色。对于32位的深度来说,效果很好(只有当我的png包含梯度时,它不会顺利显示,并且颜色被稍微洗了一点) ->某些东西无法正常工作。我已经在Numeroues论坛上尝试过,但似乎没有解决我的问题。这是我在土壤中使用的功能:
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文件?让我们看看:
- 土壤使用的STB_IMAGE库不支持64位PNG:http://nothings.org/stb_image.c
- SDL使用libpng,它应该支持一切。
- 确保纹理使用GL_RGBA16。
我建议尝试手动创建64位纹理,以确保您的OpenGL实现支持GL_RGBA16。例如:在内存中创建一个简单的红色梯度,然后将其作为纹理加载。然后,一旦您有工作,请尝试使用SDL加载纹理。
相关文章:
- 将应用程序从32位移植到64位时出现问题
- 64位机器上的C++内存对齐
- qmake:检测目标位宽(32 位或 64 位)
- 如何在 64 位 vb.net Windows 应用程序中引用 32 位 dll
- Qt 5.11.2 (Clang 8.0 (Apple), 64 位), 找不到 QJSEngine 文件
- 在 64 位边界上对齐C++结构数组?
- 如何为字符串生成唯一但一致的 N 位哈希(小于 64 位)?
- 在 64 位的 c++ 中运行 mstest 测试
- 在两个线程上读/写 64 位,无互斥/锁定/原子
- 浮点数为 32 位和 64 位二进制表示形式
- 是否有 64 位等效于 GetLastInputInfo / LASTINPUTINFO?
- 所有可能的链接生成器与64位密钥
- WinAPI C++如何从 64 位应用程序加载资源
- 在 c++ 中输出 64 位整数
- 使用192/256位整数求和无符号64位整数向量的点积的最快方法
- 如何在 64 位平台上计算 32 位哈希C++?
- 使用 SysNative 在 Visual Studio 中创建 64 位应用程序
- 在 64 位整数内旋转(90°)位矩阵(最多 8x8 位)
- 64 位进程中的 AnyCPU C# DLL 无法引用 64 位C++ DLL(给出错误:无法加载文件或程序集)
- OpenGL图像加载64位深度