【问题标题】:OpenGL API glClearColor alpha channel does nothingOpenGL API glClearColor alpha 通道什么都不做
【发布时间】:2016-10-14 07:53:59
【问题描述】:

我在我的应用程序中使用 kivy 并尝试创建一个透明的背景窗口。我这样做:

Window.clearcolor = (1,1,1,0)
Window.clear()

这会产生一个白色的窗口 - 不透明。 Kivy 直接从 OpenGL 4 API (https://www.khronos.org/opengl/) 调用glClearColor
docs 说,最后一个参数是 alpha 通道,所以我希望我的窗口是透明的。

我的想法有错误还是这是一个错误?

【问题讨论】:

  • 你检查GL管道状态了吗? BLENDING 是否实际上由您使用的框架启用?毫无疑问glClearColor 是什么,但正如 pleluron 所提到的,如果不启用混合,这将无效。

标签: opengl kivy


【解决方案1】:

默认像素格式通常是 RGB,因此 alpha 值仅用于混合操作。您需要正确的像素格式才能使您的表面透明,请参阅this answer

【讨论】:

  • mh 好的 - 我必须调整我的问题,因为 iam 在桌面上而不是在 android 上......无论如何都是 ty
  • 我假设 kivy 是建立在 OpenGL ES 之上的——但是没有跨平台的解决方案。 Kivy 应该自己实现这一点,但要回答您的问题,glClearColor() 按预期工作。
  • Kivy 在可用时使用系统中的 open gl 版本。就我而言,这是 opengl 4。谢谢您的澄清!
猜你喜欢
  • 2014-01-18
  • 2011-10-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-27
  • 2021-10-02
  • 1970-01-01
  • 2011-07-03
相关资源
最近更新 更多