gpt4 book ai didi

java - OpenGL ES 缓冲区不干净

转载 作者:行者123 更新时间:2023-12-01 15:03:36 25 4
gpt4 key购买 nike

我目前正在 Android 中开发使用 OpenGL ES 渲染的 2D 游戏。我的 Sprite 似乎渲染正确,但遗憾的是,当我不希望它们渲染时,它们仍保留在屏幕上。当我绘制缓冲区中没有任何内容的帧时,我仍然可以看到之前绘制的 Sprite 。

这是代码。

public void renderFrame()
{
gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
gl.glEnable(GL10.GL_TEXTURE_2D);

gl.glViewport(0, 0, viewPort.getWidth(), viewPort.getHeight());
gl.glMatrixMode(GL10.GL_PROJECTION);
gl.glLoadIdentity();
gl.glOrthof(position.x - frustumWidth * zoom / 2,
position.x + frustumWidth * zoom/ 2,
position.y - frustumHeight * zoom / 2,
position.y + frustumHeight * zoom/ 2,
1, -1);
gl.glMatrixMode(GL10.GL_MODELVIEW);
gl.glLoadIdentity();

gl.glEnable(GL10.GL_BLEND);
gl.glBlendFunc(GL10.GL_SRC_ALPHA, GL10.GL_ONE_MINUS_SRC_ALPHA);

gl.glBindTexture(GL10.GL_TEXTURE_2D, textureId);

/*
* Buffer filling code goes here
*/

gl.glEnableClientState(GL10.GL_VERTEX_ARRAY);
verticesIntBuffer.position(0);
gl.glVertexPointer(2, GL10.GL_FLOAT, vertexSize, vertices);

gl.glDrawElements(GL10.GL_TRIANGLES, 6, GL10.GL_UNSIGNED_SHORT,
shortBufferIndices);

gl.glDisable(GL10.GL_BLEND);
}

我认为glClear会清理缓冲区,但这里看起来并不像这样。

这个解决方案对我来说也不起作用 Clearing/releasing OpenGL ES buffers

关于如何显式清理缓冲区有什么想法吗?关于由于渲染先前的 Sprite 仍然发生而可能发生的情况的另一个想法?

非常感谢您的耐心等待。

最佳答案

您应该清除颜色和深度缓冲区:

gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);

关于java - OpenGL ES 缓冲区不干净,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13285204/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com