red*_*arl 5 java augmented-reality kotlin arcore
两者都返回当前已知的所有可跟踪对象吗?
为什么我们都需要?
什么时候应该叫哪个?
Session.getAllAnchors
和的问题相同Frame.getUpdatedAnchors
。
Global返回所有已知可追踪项Session.getAllTrackables
的列表。如果启用平面检测,则此列表包括,以及作为调用或的副作用而创建。Planes
Points
hitTest(float, float)
createAnchor(Pose)
例子:
planeRenderer.drawPlanes(session.getAllTrackables(Plane.class),
camera.getDisplayOrientedPose(),
projmtx);
Run Code Online (Sandbox Code Playgroud)
正如您在这里所看到的,planeRenderer
该类用于绘制平面。它使用一种.drawPlanes()
方法来渲染 ARCore 会话使用视图和投影矩阵识别的任何已识别平面。它通过调用 来传递所有飞机getAllTrackables(Plane.class)
。
但 localFrame.getUpdatedTrackables
返回特定类型的可追踪对象,这些可追踪对象已被update()
返回 this 的更改Frame
。要检索所有更改的可追踪项,filterType可以是Trackable.class
或Point.class
或Plane.class
。每当屏幕框架更新时,都会触发此方法。
例子:
private void onUpdateFrame(FrameTime frameTime) {
Frame frame = arSceneView.getArFrame();
Collection updatedAugmentedImages = frame.getUpdatedTrackables(AugmentedImage.class);
}
Run Code Online (Sandbox Code Playgroud)
还有几句话update()
:
public Frame update()
Run Code Online (Sandbox Code Playgroud)
更新 ARCore 系统的状态。这包括:接收新的相机帧、更新设备的位置、更新跟踪锚点的位置、更新检测到的平面等。此调用可能会导致离屏 OpenGL 活动。因此,为了避免不必要的帧缓冲区刷新和重新加载,不应在渲染帧或离屏缓冲区的过程中进行此调用。此调用可能会更新所有创建的锚点和检测到的平面的姿态。更新后的对象集可通过 访问
getUpdatedTrackables(Class)
。
归档时间: |
|
查看次数: |
643 次 |
最近记录: |