gpt4 book ai didi

ios - 为什么 glBlendFunc() 在我的 OpenGL ES 2.0 应用程序中没有执行任何操作?

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:20:49 25 4
gpt4 key购买 nike

我正在绘制非纹理三角形,其 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 的不透明属性设置为 false。结果似乎是无论混合模式如何,绘制像素的颜色都会根据 alpha 值与白色混合。所以 1,0,0,1 的 gl_FragColor 结果是 1,0,0,1 但 1,0,0,0 是 1,1,1,?

此行为在设备和模拟器上是一致的。这里可能出了什么问题?

最佳答案

您必须启用 GL_BLEND 而不是 GL_ALPHAGL_ALPHA 常量具有完全不同的用途(作为颜色 channel 标识符)。因此,您的 glEnable 调用实际上会导致 GL_INVALID_ENUM 错误或类似的错误。

关于ios - 为什么 glBlendFunc() 在我的 OpenGL ES 2.0 应用程序中没有执行任何操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6744911/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com