【发布时间】:2012-05-25 21:30:03
【问题描述】:
是否可以在 UIViewController 对象中放置一个 EAGLView 对象,并使 EAGLView 的背景透明以便查看背后的内容?
谢谢。
-更新----
我已经尝试过出现在this 帖子中。但是 EAGLView 的图层仍然看起来像一个黑色方块。 :(
知道为什么这对我不起作用吗?
【问题讨论】:
标签: ios transparent eaglview
是否可以在 UIViewController 对象中放置一个 EAGLView 对象,并使 EAGLView 的背景透明以便查看背后的内容?
谢谢。
-更新----
我已经尝试过出现在this 帖子中。但是 EAGLView 的图层仍然看起来像一个黑色方块。 :(
知道为什么这对我不起作用吗?
【问题讨论】:
标签: ios transparent eaglview
openGLView.opaque = NO
还要注意 OpenGL 帧缓冲区的 Alpha 通道中的正确不透明度。 并注意 Tark 关于性能下降的回答。
【讨论】:
没有EAGLView 这样的东西,但绝对有可能在UIKit 内容之上有一个带有透明背景的CAEAGLLayer。但是,从文档中不建议这样做:
因为 OpenGL ES 渲染表面是使用 Core Animation 呈现给用户的,所以您应用到该层的任何效果和动画都会影响您渲染的 3D 内容。但是,为了获得最佳性能,请执行以下操作:
- 将图层的 opaque 属性设置为 TRUE。
- 设置图层边界以匹配显示器的尺寸。
- 确保图层未变形。
- 避免在 CAEAGLLayer 对象之上绘制其他图层。如果您必须绘制其他非 OpenGL 内容,您可能会发现如果将透明 2D 内容放在 GL 内容之上并确保 OpenGL 内容不透明且未转换,则性能成本是可以接受的。
- 在纵向显示器上绘制横向内容时,您应该自己旋转内容,而不是使用 CAEAGLLayer 变换来旋转它。
【讨论】: