繁体   English   中英

OpenGL纹理颜色问题

[英]OpenGL texture color issue

我正在加载原始纹理(使用alpha通道)并在openGL中显示它一切都很好并且纹理显示,但颜色比原始颜色稍暗。 我已经尝试过照明,混合和抖动,但这没有帮助。

我正在使用mac osx。

样本图片

样本图片 http://postimage.org/image/2wi1x5jic/

这是openGL纹理加载源代码:

glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);

glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA , width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, &bytes[0]);

编辑:

这很奇怪,我用http://forums.tigsource.com/index.php?topic=9560.0上的例子并收到同样的故障......所以问题不是我的代码,也许是驱动程序选项? 嗯......

解:

谢谢@datenwolf,图像用sRrgb颜色配置文件保存。 一旦我删除并转换为RGB,问题就解决了。

也许您将GL_MODULATE设置为纹理环境,并且顶点颜色不是白色。 尝试将纹理环境设置为GL_REPLACE。

glBindTexture(GL_TEXTURE_2D, your_texture);
glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);

编辑

另一个问题可能是嵌入图像中的颜色配置文件。 图像查看器可以使用此颜色配置文件来实现颜色管理,调整显示器颜色配置文件的颜色。 OpenGL as-it-is不进行色彩管理; 有一个扩展,帧缓冲和纹理是sRGB,这是颜色管理的最小共同点。 但是,您仍然需要将输入图像传输到sRGB色彩空间。

我准备了一篇冗长的文章,深入解释如何使用OpenGL进行色彩管理。 但它还远未完成。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM