Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/43.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 如何在OpenGL中将场景渲染为遮罩?_Iphone_Opengl Es - Fatal编程技术网

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

Iphone 如何在OpenGL中将场景渲染为遮罩?,iphone,opengl-es,Iphone,Opengl Es,我在CAEAGLLayer中绘制了一个EagleContext(通过iPhone SDK中的标准GLGravityView示例) 我试图做的是将我的视图放在另一个视图的顶部,并使用我在OpenGL中渲染的内容来屏蔽底层视图 假设底部视图是一幅花的图片,我将我的OpenGL视图放在顶部,我将OpenGL的“透明颜色”设置为“不透明黑色”,然后渲染球体。我想让球体穿过黑色,只露出花朵图片的圆形部分。更好的办法是同时显示球体(半透明)和花朵,将黑色部分切掉 我打过电话 glView.backgroun

我在CAEAGLLayer中绘制了一个EagleContext(通过iPhone SDK中的标准GLGravityView示例)

我试图做的是将我的视图放在另一个视图的顶部,并使用我在OpenGL中渲染的内容来屏蔽底层视图

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

我打过电话

glView.backgroundColor = [UIColor clearColor];
glClearColor(0.0, 0.0, 0.0, 1.0);
当我设置视图并调用

glColor4f( 1.0, 1.0, 1.0, 0.5 );
在渲染球体之前

它只是使球体变成白色,而不显示下面的花。我对此并不感到惊讶

有人知道如何制作面具吗


谢谢你的帮助。

我只用“EAGLayer”或其他名称做了类似的事情。先画背景,然后在上面画更多的东西。这是因为底部“层”的攻丝功能要么没有,要么最小。当我想要在底部“层”中点击功能时,我只是在某些xy坐标附近寻找点击(而不是像在真实层中那样拖放按钮)


这实际上取决于你想对底层做什么。如果你想要的只是花的图片,那么我的方法就行了。如果您想拖放更复杂的UI控件,那么我的方法将不起作用。

我只使用了“EAGLayer”或其他类似的名称。先画背景,然后在上面画更多的东西。这是因为底部“层”的攻丝功能要么没有,要么最小。当我想要在底部“层”中点击功能时,我只是在某些xy坐标附近寻找点击(而不是像在真实层中那样拖放按钮)


这实际上取决于你想对底层做什么。如果你想要的只是花的图片,那么我的方法就行了。如果您想拖放更复杂的UI控件,那么我的方法将不起作用。

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

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


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

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

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


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

Yep-这是meYep的解决方案-这是我的解决方案