Libgdx查看frustum剔除actor.draw()

时间:2014-02-04 08:29:06

标签: java camera libgdx culling scene2d

我正在使用libgdx开发一个小游戏。这是一款自上而下的2D游戏,上面有一些大地图和许多物体。所以我只想在我的视角中渲染事物。我见过camera.frustum.***inFrustum(Paramter... p)。但是我使用的是scene2d,我在Stage中设置了相机,将SpriteBatch的投影矩阵设置为camera.combined,我的Actor s在被覆盖的draw(SpriteBatch batch)中绘制自己1}}方法。我如何访问那里的camera或视锥体?有没有办法从spritebatch中获得它?还是有另一种方法来实现fiew frustum剔除?

1 个答案:

答案 0 :(得分:1)

您自己不需要这样做。如果您正在使用带有相机的舞台,它会自动绘制视图内的actor。

如果您想从舞台上访问相机,只需从舞台上获取。 stage.getCamera()

以下是如何从舞台内的相机获得视锥体:

Camera cam = this.stage.getCamera();
Frustum f = cam.frustum;
float h = cam.viewportHeight;
float w = cam.viewportWidth;
Matrix4 m = cam.combined; //combind projection matrix
Matrix4 m2= cam.projection; 
... 
...

从相机中,您可以获得所需的每个投影矩阵......

在演员的内心,您可以获得舞台和舞台,您可以获得上面显示的所有内容。

actor.getStage().getCamera().frustum;