当前位置: 首页 > 面试题库 >

libgdx视图在actor.draw()内部截锥体

广亮
2023-03-14
问题内容

我正在使用libgdx开发一个小游戏。这是一款二维自上而下的游戏,上面有一些大地图,上面有很多物体。所以我只想在我的视锥中渲染事物。我看过了camera.frustum.***inFrustum(Paramter... p)。但是我正在使用scene2d,并且在中设置了相机Stage,将SpriteBatchs的投影矩阵设置为,camera.combined而我的Actors用覆盖draw(SpriteBatch batch)方法绘制了它们自己。我如何访问camera那里的视锥台?有没有办法让它脱离精灵?还是有另一种方法来实现平截头截锥体的淘汰?


问题答案:

您无需自己执行此操作。如果您将舞台与摄像机配合使用,它将自动绘制视图内部的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;


 类似资料:
  • Frustums 用于确定相机视野内的东西。 它有助于加速渲染过程——位于摄像机视锥体外的物体可以安全地排除在渲染之外。 该类主要用于渲染器内部计算 camera 或 shadowCamera的视锥体。 构造器(Constructor) Frustum(p0 : Plane, p1 : Plane, p2 : Plane, p3 : Plane, p4 : Plane, p5 : Plane) p

  • 我计划写一个3D游戏,将使用VBOs渲染。例如,假设地形是一组平铺,它们的顶点都在同一个VBO中。玩家应该能够滚动浏览瓷砖,并且在任何时候都只能看到瓷砖的一部分。 我想在这些瓷砖上执行截锥剔除。我已经在截头体剔除的数学部分找到了一些来源,但我不确定如何用VBO实现这一点-人们是在顶点着色器中以某种方式实现的,还是仅仅调用渲染函数来绘制VBO的子集。

  • 视锥体的参数,orientation设置初始值0,为什么出现倾斜?

  • 英文原文:http://emberjs.com/guides/views/built-in-views/ Ember中定义了一套用于构建一些非常基础的控件的视图,比如文本输入框、勾选框和选择列表。 这些视图有: Ember.Checkbox 1 2 3 4 <label> {{view Ember.Checkbox checked=model.isDone}} {{model.title

  • 我正在使用两个MjpegView(扩展表面视图的自定义视图)构建一个应用程序。问题是有时我看不到第一个摄像机视图后面的第二个摄像机视图。流媒体工作没有任何问题,我试图改变布局内摄像机视图的位置,但没有任何成功,也试图带到前面(第二个摄像机)。 这是它自己的布局的代码, 谢谢

  • 在其他回收器视图中有一个回收器视图。两者都需要垂直滚动。外部回收器视图滚动正常,但内部回收器视图滚动不正常。 这是代码: ViewAdapter如下: 我尝试了以下两种回收商观点,但都无法解决问题 也尝试了这个: