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;