首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OpenGL透明效果在Meego上表现得相当糟糕

OpenGL透明效果在Meego上表现得相当糟糕
EN

Stack Overflow用户
提问于 2011-07-21 23:52:37
回答 2查看 671关注 0票数 5

我们已经在OpenGL的一个场景中创建了几个半透明的3D立方体,它在Windows7和Fedora15上显示得非常好,但在Meego系统上变得相当糟糕。

这是它在我的Fedora 15系统上的样子:

这就是在Meego上的样子。线条的颜色已经被我们改变了,否则你看到的立方体会更可悲:

只需使用普通的glColor4f函数即可实现效果,并且只需设置alpha的值即可使其变得透明。怎么会这样呢?

freeglut和openglut都曾在Meego系统上试用过,但都未能显示出更好的效果。

我甚至尝试使用irrlicht这样的引擎来实现这一点,但是当beginScene方法的zBuffer参数设置为false时,屏幕上将只显示黑色(如果为true,则为正常,但这不是我们想要的)。

这应该不是显卡或驱动程序的问题,因为我们已经看到了一个3D游戏,其中包含一个透明的球,涉及非常相同的上网本和系统。

我们这里找不到原因。有人能帮我解释一下为什么会发生这种情况吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-07-22 00:32:13

听起来您可能依赖于默认设置(或行为),这在不同的平台上可能是不同的。

您是否显式地设置了OpenGL的任何混合属性,例如glBlendFunc?如果你是这样做的,那么发布相关的代码可能会有所帮助。

其中一条评论提到了对透明对象进行排序。如果你不是,这是你可能想要考虑的东西,以获得更准确的结果。在任何一种情况下,这种行为在不同平台上都应该是相同的,所以我猜这不是你的问题。

编辑:

另一个想法。您正在设置glCullFace吗?可能是因为你的vertex winding,你的透明脸被剔除了。

票数 6
EN

Stack Overflow用户

发布于 2011-07-22 16:00:01

在Meego系统上尝试过freeglut和openglut,但都没有显示出更好的效果。

这些只是简单的窗口框架,对OpenGL的执行没有任何影响。

在你的混合代码中的某个地方,你搞砸了。从正确渲染的外观来看,我会说你的混合函数是glBlendFunc(GL_ONE, GL_ONE),而在Meego上,它有点像glBlendFunc(GL_SRC_ALPHA, GL_ONE)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6778978

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档