代码之家  ›  专栏  ›  技术社区  ›  AdyAdy

OpenGL-我可以在查询到PBO的数据后使用纹理吗?

  •  0
  • AdyAdy  · 技术社区  · 6 年前

    我通过FBO渲染成纹理。我想把纹理数据复制到一个PBO中,这样我就可以使用 glGetTexImage glMapBuffer 但只在下一帧(或更高)中,因此不应导致暂停。

    但是,我可以使用纹理后立即

    1 回复  |  直到 6 年前
        1
  •  2
  •   datenwolf    6 年前

    但是,我可以在glGetTexImage调用之后立即使用纹理而不引起暂停吗?

    这是依赖于实现的行为。它可能会也可能不会导致暂停,这取决于实现如何进行实际数据传输。

    我可以将它绑定到一个纹理单元并从中渲染吗?

    对。

    对。然而,这可能会或不会导致暂停,这取决于实现如何在内部处理数据一致性需求。即,在修改数据之前,纹理数据必须完全传输到PBO中,或者如果实现可以检测到整个内容将被更改(例如,通过发出与纹理附件匹配的glClear调用),它可能只是孤立内部数据结构并从一个新的内存区域开始,避开那个摊位。

    这是一个几乎不可能预测的极端情况。你得把演出情况介绍一下,自己看看。避免停顿的绝对方法是使用一个新的纹理对象。

    推荐文章