首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在OpenGL中将场景渲染为遮罩?

如何在OpenGL中将场景渲染为遮罩?
EN

Stack Overflow用户
提问于 2009-04-03 16:24:50
回答 2查看 1.3K关注 0票数 1

我已经将EAGLContext绘图转换为CAEAGLLayer (通过iPhone软件开发工具包中的标准GLGravityView示例)。

我试图做的是将我的视图放在另一个视图的顶部,并使用我在OpenGL中呈现的内容来掩蔽底层视图。

假设底部视图是一朵花的图片,我将OpenGL视图放在顶部,将OpenGL的透明颜色设置为不透明的黑色,然后渲染我的球体。我想让球体穿过黑色,只露出花朵图片的一个圆形部分。更好的方法是同时显示球体(半透明)和花朵,穿过黑色。

我已经打电话给你了

代码语言:javascript
复制
glView.backgroundColor = [UIColor clearColor];
glClearColor(0.0, 0.0, 0.0, 1.0);

当我设置视图时,调用

代码语言:javascript
复制
glColor4f( 1.0, 1.0, 1.0, 0.5 );

就在渲染球体之前。

它只会使球体变成白色,而不会显示底层的花朵。我对此并不感到太惊讶。

有没有人知道怎么做面具呢?

谢谢你的帮助。

EN

回答 2

Stack Overflow用户

发布于 2009-06-24 20:50:45

你现在可能已经放弃了,但以防万一...

我认为您的glClearColor(0.0,0.0,0.0,1.0)应该是glClearColor(0.0,0.0,0.0,0.0),因为您希望使用Alpha=0将视图清除为“透明黑色”,而不是使用Alpha =1的“不透明黑色”。

您还应该确保您的OpenGL视图没有标记为不透明。

票数 1
EN

Stack Overflow用户

发布于 2009-04-07 03:45:46

我也做过类似的事情,只用了"EAGLayer“或者其他什么名字。只需先绘制背景,然后在顶部绘制更多的东西。这之所以有效,是因为底部“层”的点击功能要么为无,要么为最小。当我想要在底部的“层”中点击功能时,我只是寻找靠近某些xy坐标的点击(而不是像你在真正的层中那样拖拽按钮。)

这真的取决于你想要对底层做什么。如果你想要的只是花的照片,那么我的方法是有效的。如果你想拖放更复杂的UI控件,那么我的方法是行不通的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/714678

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档