我已经将EAGLContext绘图转换为CAEAGLLayer (通过iPhone软件开发工具包中的标准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 );就在渲染球体之前。
它只会使球体变成白色,而不会显示底层的花朵。我对此并不感到太惊讶。
有没有人知道怎么做面具呢?
谢谢你的帮助。
发布于 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视图没有标记为不透明。
发布于 2009-04-07 03:45:46
我也做过类似的事情,只用了"EAGLayer“或者其他什么名字。只需先绘制背景,然后在顶部绘制更多的东西。这之所以有效,是因为底部“层”的点击功能要么为无,要么为最小。当我想要在底部的“层”中点击功能时,我只是寻找靠近某些xy坐标的点击(而不是像你在真正的层中那样拖拽按钮。)
这真的取决于你想要对底层做什么。如果你想要的只是花的照片,那么我的方法是有效的。如果你想拖放更复杂的UI控件,那么我的方法是行不通的。
https://stackoverflow.com/questions/714678
复制相似问题