Opengl es 不调用glclear会导致奇怪的工件

Opengl es 不调用glclear会导致奇怪的工件,opengl-es,opengl-es-3.0,Opengl Es,Opengl Es 3.0,我不想为深度或颜色位调用glClear,因为我希望能够看到以前渲染的所有帧。除了在x轴和y轴上重复模型外,它确实起作用,而且还会导致一些奇怪的灰色块状线。有没有办法做到这一点?我在android上使用opengl es 3。谢谢你的帮助 帧开始处的默认帧缓冲区的内容未定义,尤其是在基于平铺的渲染器上,大多数移动GPU都是这样。您在X轴和Y轴上的“重复”很可能只是显示特定GPU上的磁贴有多大(例如,它只是转储GPU本地磁贴RAM中的任何内容,重复N次以完全覆盖屏幕) 如果要在上一帧上进行渲染,则需

我不想为深度或颜色位调用glClear,因为我希望能够看到以前渲染的所有帧。除了在x轴和y轴上重复模型外,它确实起作用,而且还会导致一些奇怪的灰色块状线。有没有办法做到这一点?我在android上使用opengl es 3。谢谢你的帮助


帧开始处的默认帧缓冲区的内容未定义,尤其是在基于平铺的渲染器上,大多数移动GPU都是这样。您在X轴和Y轴上的“重复”很可能只是显示特定GPU上的磁贴有多大(例如,它只是转储GPU本地磁贴RAM中的任何内容,重复N次以完全覆盖屏幕)

如果要在上一帧上进行渲染,则需要将渲染上下文配置配置为使用
EGL\u BUFFER\u PRESERVED
(默认值为
EGL\u BUFFER\u destromed
)。例如:

注1:这将产生一些开销(曲面被有效地复制回平铺本地内存),而从曲面丢弃、失效或清除开始通常是免费的


注2:这将仅保留颜色数据;没有办法为默认帧缓冲区保留跨帧的深度或模具。

所以您不想清除前一帧,但却抱怨看到了前一帧?你也许应该决定你想要一个还是另一个我希望它能像我期望的那样工作,不要疯了。我从一条直线的一个端点旋转画了一个圆,我想保留框架以查看整个圆的绘制。你第一次忘记清除它了吗?在开始绘图之前,仍应清除一次。但是,在执行此操作之前,请确保场景已加载、视口已设置且缓冲区已绑定…@MaticOblak这是一个好主意。我应该自己考虑的。但不幸的是,它并没有解决这个问题。不过还是要谢谢你,这是个奇怪的问题。你能至少提供一些图像或视频,让我们看看发生了什么。无论如何,这应该正常工作,没有理由清除缓冲区和渐进式绘图应该工作。许多应用程序都是这样使用它的。这是一个可以在执行期间打开和关闭的设置吗?是的,尽管通常在创建上下文时这样做(您通常会更改用于利用保留或销毁状态的渲染算法,因此它并不总是一个可以轻松打开或关闭的设置)1.你知道我是怎么得到电子文本的吗?这是第一行崩溃,使用egl api 10修复了崩溃,但api没有eglSurfaceAttrib
eglSurfaceAttrib(m_display, m_surface, EGL_SWAP_BEHAVIOR, EGL_BUFFER_PRESERVED);