【发布时间】:2011-08-03 09:31:12
【问题描述】:
我正在使用以下方式加载 PNG:
theImage = [NSBitmapImageRep imageRepWithContentsOfFile:imagePath];
从中我可以成功创建 gl 纹理并正确渲染而没有任何透明度。但是,当我打开混合使用时:
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE);
纹理以正确的透明背景渲染,但图像颜色不正确。
我尝试了混合功能中的几个选项,GL_SRC_ALPHA、GL_ONE_MINUS_SRC_ALPHA、GL_ONE、GL_DST_ALPHA等。
我被教导也许我需要重新排序图像数据中的位,也许通道已经混淆了,但在这种情况下,当混合关闭时,我不希望它能够正确渲染。
或者,我想我可以使用 libPNG,但如果可能的话,我想尝试使用 NSBitmapImageRep。
【问题讨论】:
标签: opengl transparency alpha nsbitmapimagerep glblendfunc