Java Libgdx视图在actor.draw()内剔除截头体

Java Libgdx视图在actor.draw()内剔除截头体,java,camera,libgdx,culling,scene2d,Java,Camera,Libgdx,Culling,Scene2d,我正在用libgdx开发一个小游戏。这是一个2d自上而下的游戏,上面有一些大地图和许多物体。所以我只想在我的视锥中渲染东西。我已经看到了摄影机.平截头体。***infraustum(parameter…p)。但是我使用的是scene2d,我在阶段设置了摄像头,将SpriteBatch的投影矩阵设置为摄像头。组合和我的演员在覆盖的绘制(SpriteBatch批处理)方法中绘制自己。如何访问摄像机或那里的视锥台?有没有办法把它从spritebatch中去掉?或者有没有其他方法来实现五个截锥剔除?你不

我正在用libgdx开发一个小游戏。这是一个2d自上而下的游戏,上面有一些大地图和许多物体。所以我只想在我的视锥中渲染东西。我已经看到了
摄影机.平截头体。***infraustum(parameter…p)
。但是我使用的是scene2d,我在
阶段设置了摄像头,将
SpriteBatch
的投影矩阵设置为
摄像头。组合
和我的
演员
在覆盖的
绘制(SpriteBatch批处理)
方法中绘制自己。如何访问
摄像机
或那里的视锥台?有没有办法把它从spritebatch中去掉?或者有没有其他方法来实现五个截锥剔除?

你不需要自己去做。如果您使用带有摄影机的舞台,它会自动绘制视图内部的演员

如果你想从舞台上取下相机,只需从舞台上取下即可<代码>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;

我知道我是如何把它放在舞台里面的,因为我必须编辑舞台摄影机来调整它的视口(参见我的其他问题)。我想进入演员内部的摄像机,但是如果视锥剔除是自动完成的,我就不再需要了:P非常感谢!我见过你编辑。再次感谢。我不再需要它了,但将来我可能需要它。看看
阶段。绘制
方法。它会在绘制之前检查演员的边界。检查一下这是否适合你。但应该是beYea我看到你的答案后就看了。在根组上调用阶段内绘制。在根组中执行剔除。再次感谢。