2012-09-26 119 views
0

我正在研究一个简单的绘图应用程序。我的线是使用多边形构建的,而且目前看起来很不错。我想添加一个透明度功能,因此我使用了glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);。但是,因为我的多边形有时会重叠,所以我得到了图片中显示的丑陋结果(多层透明)。我想得到的是左边的数字(没有重叠,因为没有透明度),并具有整体透明度。在opengl es中绘制透明度2

我想我可以通过保持聚合物的重叠来做到这一点,但这对我认为的这项任务来说太过矫枉过正。在绘图时应该有一种方法来控制它们,但作为OpenGL的初学者并没有什么帮助。

enter image description here

回答

1

我很抱歉,但透明的工作方式不会让你做你想要的东西,而无需手动保持多边形重叠。透明度的工作方式是,它采用其下方曲面的颜色,并使用您指定的混合函数来计算像素的最终颜色。

在你的程序中,你正在绘制多个带有alpha的多边形。这意味着他们的颜色加起来,给你看到的结果。

我从来没有写过一个绘图应用程序,但你也许可以看看三角形带来画线。它们允许您逐点扩展直线,并确保几何图形不会与自身重叠。