在没有glclearcolor的情况下更改libgdx中的初始背景色?

vyswwuz2  于 2021-06-30  发布在  Java
关注(0)|答案(1)|浏览(346)

是否可以更改libgdx中的默认背景色。我想把背景颜色从黑色改成我想要的任何颜色,而不是清除屏幕。我正在使用shaperender创建一个被填充的矩形。然后我让这个矩形在屏幕上移动,我想保留之前渲染的矩形。
使用gdx.gl.glclearcolor()和gdx.gl.glclear()显然会重新渲染上一个矩形上方的背景色,从而清除先前渲染的矩形。
如果我不使用gdx.gl.glclearcolor()和gdx.gl.glclear(),那么背景是黑色的,矩形的渲染和移动是我想要的,除了默认的背景颜色是黑色之外。女巫不是我想要的样子。

new9mtju

new9mtju1#

帧缓冲区没有背景和非背景的概念。如果只使用屏幕的帧缓冲区,更改颜色的唯一方法是清除屏幕并重新绘制所有内容。因此,在您的情况下,您需要存储用于第一次渲染所有内容的步骤,并在清除屏幕后重放这些步骤。
更简单的方法是为场景的所有内容使用单独的帧缓冲区,并在背景上绘制。这将需要一个带有alpha组件的帧缓冲区,并且您需要使用 blendFuncSeparate 渲染时,alpha会保留在此帧缓冲区中,以便可以在背景上绘制。您可以在帧缓冲区中使用透明的透明颜色,也可以在主帧缓冲区中使用您想要的任何颜色。
libgdx帧缓冲区是一个很大的主题,这里要解释的太多了。你应该从文档开始,如果你开始实现它并且有问题,你可以创建一个新的问题。

相关问题