opengl - LibGDX 中的清屏

标签 opengl libgdx

为什么我们需要使用 来清除每一帧的屏幕

@Override
public void render() {

    Gdx.graphics.getGL20().glClearColor( 1, 0, 0, 1 );
    Gdx.graphics.getGL20().glClear( GL20.GL_COLOR_BUFFER_BIT |  GL20.GL_DEPTH_BUFFER_BIT );

    // scene render code...

}

仅仅重新绘制背景然后在上面绘制其他元素还不够吗?

最佳答案

告诉 OpenGL 清除屏幕可以让它知道不需要保留最后一帧的图像。 OpenGL ES 设计为每一帧从头开始重绘屏幕,因此如果您不清除屏幕,它会假设您想要保留最后一帧的所有数据,并且必须浪费时间将旧图像复制到新帧.

您不必每帧都调用glClearColor。它只是更改清除颜色缓冲区时将使用的颜色设置。

关于opengl - LibGDX 中的清屏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28362927/

相关文章:

opengl - 使用 OpenGL 4.3 创建形状

android - 如何使用Libgdx绘制网格并处理每个方 block 的点击事件

libgdx - 在 libgdx 项目中启动 android 时出现 AndroidStudio 异常

opengl - GLSL、Shader 有一些数组限制吗?

python - 如何平滑或 'relax' 由 delaunay 三角剖分产生的二维网格?

opengl - 找不到 glXCreateContextAttribsARB

c - 在 C 项目中使用 OpenGL 4.3

java - OpenGL 顶点着色器精度问题

fonts - 带有 AssetManager 的 Libgdx FreeTypeFontGenerator

java - 我怎样才能让 AspectJ 负载编织在 Gradle 上工作(特别是 libgdx 构建)