繁体   English   中英

OpenGL ES 2 2D分层图

[英]OpenGL ES 2 2D layered drawing

我正在用OpenGL ES2而不是Core Graphics重写iPad绘图应用程序。 我已经编写了GLKView的子类,可以绘制线段,并且可以将GLKView拖动到情节提要中并将其设置为自定义类。 到目前为止,工程图是可行的,但是我也想实现像Photoshop和GIMP这样的图层。

我想为每个图层创建多个GLKViews,并让UIKit处理混合和重新排序,但这将不允许混合模式,并且可能无法获得良好的性能。

到目前为止,我认为在一台GLKView中完成所有操作都是最好的解决方案。 我想我将不得不使用某种关闭缓冲区作为一层。 我的应用程序还应该能够处理撤消/重做,因此也许我将不得不使用纹理来存储以前的数据。

但是,我是openGL的新手,所以我的问题是:应该如何实现图层?

由于问题非常广泛,因此这里有一个广泛而笼统的答案,应该为您进行更详细的研究提供一些起点。

一种可能的好方法是将各个图层作为单独的纹理进行管理。 通过使用帧缓冲对象(FBO),您可以轻松地直接渲染到纹理中以在图层内部进行绘制。 每个纹理将(或多或少)持久存储单个图层的图像。 为了合并图层,您可以使用简单的纹理四边形和所需的混合功能,将每个图层纹理相互渲染(以适当的顺序 ,无论是哪种顺序 )。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM