【发布时间】:2011-07-19 09:19:41
【问题描述】:
我正在绘制非纹理三角形,其 alpha 在像素着色器中被显式设置为 0.5 以进行测试。我的应用程序基于 Xcode 提供的 Opengl ES 预制件。我还没有碰过我的 EAGLView 课程。
我打电话
glEnable(GL_ALPHA)
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SC_ALPHA)
glDrawArrays(...)
我的 clearColor 是 0,0,0,1,CAEAGLayer 的格式是 RGBA8。
我看到的结果是没有发生任何类型的混合,绘制的像素只是替换了下面的内容。我也尝试过使用 GL_ONE,GL_ONE。
我尝试将我的 CAEAGLayer 的 opaque 属性设置为 false。结果似乎是,无论混合模式如何,绘制像素的颜色都会根据 alpha 值与白色混合。所以 1,0,0,1 的 gl_FragColor 输出为 1,0,0,1 但 1,0,0,0 输出为 1,1,1,?
此行为在设备和模拟器上是一致的。这里有什么问题?
【问题讨论】: