【问题标题】:OpenGL ES 2 2D layered drawingOpenGL ES 2 2D 分层绘图
【发布时间】:2013-06-30 19:44:50
【问题描述】:

我正在使用 OpenGL ES2 而不是 Core Graphics 重写 iPad 绘图应用程序。 我已经编写了一个可以绘制线段的 GLKView 子类,我可以在我的故事板中拖动一个 GLKView 并将其设置为自定义类。到目前为止,绘图工作,但我也想在 Photoshop 和 GIMP 中实现图层。

我曾想过为每个图层创建多个 GLKView,并让 UIKit 处理混合和重新排序,但这不会允许混合模式并且可能没有良好的性能。

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

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

【问题讨论】:

    标签: ios opengl-es drawing opengl-es-2.0


    【解决方案1】:

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

    可能一个好方法是将各个层作为单独的纹理进行管理。通过使用帧缓冲对象 (FBO),您可以轻松地直接渲染到纹理中以便在图层内进行绘制。每个纹理将(或多或少)持久地存储单层的图像。为了组合图层,您将使用一个简单的纹理四边形混合你需要的功能。

    【讨论】:

    • 很高兴您强调了重要的关键字,例如 textureframebuffer object
    • 面对如此广泛的问题,除了将提问者委托给整体方法并提供一些第一个谷歌目标之外,别无他法。
    猜你喜欢
    • 2023-03-23
    • 1970-01-01
    • 2012-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多