libgdx 中的 FrameBuffer 大小
Posted
技术标签:
【中文标题】libgdx 中的 FrameBuffer 大小【英文标题】:FrameBuffer size in libgdx 【发布时间】:2014-02-04 08:36:03 【问题描述】:我想在我的小 libgdx 游戏中使用Framebuffer
s。
游戏使用scene2d
,我修改Stage
s 相机以使用50 宽和31 高的视口。然后我将SpriteBatch
的投影矩阵设置为camera.combined
。这样做我有一个独立于分辨率的游戏,我可以使用我自己的“WorldUnit”而不是使用像素。
但是现在,如果我创建一个FrameBuffer
,我必须给它一个大小。我必须给它相机视口的大小或屏幕的像素大小吗?
而且,当我向 FrameBuffer
渲染东西时,我可以在 WorldUnits
渲染它们吗,这意味着在 P(25,16)
渲染几乎在游戏窗口的中间?
谢谢
【问题讨论】:
所以我使用与正常渲染相同的值?谢谢 【参考方案1】:它应该被抛光的框架的height
和width
。所以它应该是视口的高度和宽度,如果你不做一些有趣的事情的话。 (以舞台为例)
请注意不要忘记将FBO
的setSize
添加到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 的宽度和高度?