有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java渲染为半大小的帧缓冲区,然后将其放大以实现像素化外观

我将要用libGdx创建一个2D桌面小游戏,我希望它具有复古的像素化外观,就像“Flappy Bird”这样的游戏。为了达到这个效果,我想到了以下几点:

  1. 创建游戏窗口(例如640x480)
  2. 创建一半大小的帧缓冲区(即320x200)
  3. 将所有内容渲染到帧缓冲区
  4. 从帧缓冲区获取纹理
  5. 使用SpriteBatch将纹理绘制到屏幕上,放大2倍并使用TextureFilter。最近的

我知道我可以用SpriteBatch单独缩放每个雪碧。draw()但我认为,以原始分辨率渲染所有内容并放大最终构图可能更容易

那么,上述技术是获得像素化外观的合适方法吗


共 (1) 个答案

  1. # 1 楼答案

    你的想法听起来像是一个完美的方法。缺点是它确实需要额外的数据拷贝,但另一方面,原始渲染只需要1/4的像素,这为您节省了相当多的渲染开销

    在纯OpenGL中,您可以在步骤5中使用glBlitFramebuffer()。这需要OpenGL 3.0或更高版本。它本质上与绘制纹理四边形的操作相同,但这只是一个调用,底层实现可能更高效