libgdx 中的 FrameBuffer 大小

Posted

技术标签:

【中文标题】libgdx 中的 FrameBuffer 大小【英文标题】:FrameBuffer size in libgdx 【发布时间】:2014-02-04 08:36:03 【问题描述】:

我想在我的小 libgdx 游戏中使用Framebuffers。

游戏使用scene2d,我修改Stages 相机以使用50 宽和31 高的视口。然后我将SpriteBatch的投影矩阵设置为camera.combined。这样做我有一个独立于分辨率的游戏,我可以使用我自己的“WorldUnit”而不是使用像素。

但是现在,如果我创建一个FrameBuffer,我必须给它一个大小。我必须给它相机视口的大小或屏幕的像素大小吗?

而且,当我向 FrameBuffer 渲染东西时,我可以在 WorldUnits 渲染它们吗,这意味着在 P(25,16) 渲染几乎在游戏窗口的中间?

谢谢

【问题讨论】:

所以我使用与正常渲染相同的值?谢谢 【参考方案1】:

它应该被抛光的框架的heightwidth。所以它应该是视口的高度和宽度,如果你不做一些有趣的事情的话。 (以舞台为例)

请注意不要忘记将FBOsetSize 添加到Scene2D 的resize 方法中。

【讨论】:

所以我使用(伪代码)framebuffer = new FrameBuffer(pixmapFormat, camera.viewPort.width, camera.viewPort.height, hasDepth);?然后我可以再次使用相同的 spritebatch 还是必须使用另一个 spritebatch 进行帧缓冲区渲染? 是的。但正如我所说,看一下shadertutorial中的示例。你需要知道的一切都在那里。在调整大小时:fbo = new FrameBuffer(Format.RGBA8888, width, height, false); 也许不要一直使用 new 但它是一个例子.. 我已经看过那个教程,我也想做同样的事情(光照贴图没有 box2d 灯),但他们也使用着色器,我想在没有着色器的情况下做到这一点。谢谢

以上是关于libgdx 中的 FrameBuffer 大小的主要内容,如果未能解决你的问题,请参考以下文章

以世界单位设置Libgdx FrameBuffer大小

以世界单位设置 Libgdx FrameBuffer 大小

如何在 libgdx 中正确设置 FrameBuffer 的宽度和高度?

Libgdx/Java ShadowMap 和 Framebuffer 使用相机更新

LibGDX - 无法从 FrameBuffer 获取纹理

LibGDX - 绘制到 FrameBuffer 不起作用