Libgdx查看frustum剔除actor.draw()

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

你自己不需要这样做。 如果您正在使用具有相机的舞台,它会自动绘制视图内的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;