- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在扩展我非常有限的 ARCore 知识。
我的问题与 this question 相似(但不同)
我想知道我的设备相机节点是否与我的其他节点相交/重叠,但到目前为止我还没有任何运气
我正在尝试这样的事情(相机是另一个节点):
scene.setOnUpdateListener(frameTime -> {
Node x = scene.overlapTest(scene.getCamera());
if (x != null) {
Log.i(TAG, "setUpArComponents: CAMERA HIT DETECTED at: " + x.getName());
logNodeStatus(x);
}
});
首先,这有意义吗?
我可以使用以下方法检测场景中的所有节点碰撞:
for (Node node : nodes) {
...
ArrayList<Node> results = scene.overlapTestAll(node);
...
}
假设 Camera 节点没有可渲染对象(因此没有默认碰撞形状),我尝试设置自己的碰撞形状,但这实际上捕获了我尝试执行的所有点击事件,所以我想我一定做错了。
我正在考虑诸如修复摄像头前停用的节点之类的事情。
我可能对 ARCore 的要求太多了,但是有没有人找到一种方法来检测“用户”(即相机节点)和另一个节点之间的碰撞?或者我应该通过室内定位来进行这种“碰撞检测”吗?
提前致谢:)
更新:它真的很笨拙而且性能很重,但你实际上可以在节点内的 onUpdate
中比较相机和节点的世界空间位置,你可能需要管理一些公差和其他平滑交互的事情。
最佳答案
做同样事情的一个想法是使用光线转换来击中物体,如果它们很近就做点什么。你可以在 onUpdateListener 中使用这样的东西:
Camera camera = arSceneView.getScene().getCamera();
Ray ray = new Ray(camera.getWorldPosition(), camera.getForward());
HitTestResult result = arSceneView.getScene().hitTest(ray);
if (result.getNode() != null && result.getDistance() <= SOME_THRESHOLD) {
// Hit something
doSomething (result.getNode());
}
关于android - Sceneform 与相机的碰撞,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51324954/
我正在扩展我非常有限的 ARCore 知识。 我的问题与 this question 相似(但不同) 我想知道我的设备相机节点是否与我的其他节点相交/重叠,但到目前为止我还没有任何运气 我正在尝试这样
我已经使用 SceneView 加载 3D 模型将近一年了,但我一直不明白是什么导致了这种泄漏。我会实现 LeakCanary,但只有这一次泄漏,因为我不知道如何解决这个问题。 但现在我想弄清问题的根
我想更新与每帧更新的 anchor 相关的数据。如何从 ArSceneView 获取每一帧的帧? 最佳答案 ArSceneView 在绘制场景之前更新 ARCore Frame 对象。您可以通过从使用
我使用了 SceneForm SDK 的示例,但是在这个示例中,当我们将对象放在检测到的地板上时,我们不能在墙上移动。如何解决? arFragment.setOnTapArPlaneListener(
private AnchorNode anchorNode; private void removeAnchorNode(Node nodeRemove) { //Remove an
关闭。这个问题需要更多 focused .它目前不接受答案。 想改进这个问题?更新问题,使其仅关注一个问题 editing this post . 2年前关闭。 Improve this questi
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提出有关书籍、工具、软件库等建议的问题。您可以编辑问题,以便可以用事实和引用来回答它。 9 个月
默认情况下,Arcore/Sceneform 使用房间作为 HDR 环境图像。我该如何更换它? Default HDR Room 最佳答案 目前无法设置自己的环境贴图。如果您想跟踪开发,请跟踪此功能请
基于 ARcore 开发指南 ( Lighting Estimation developer guide for Android ),我正在尝试禁用 Scenceform 中的灯光。但什么也没发生。
我在我的应用程序中使用 AR Core 作为 3D 查看器。我没有将 Sceneform 用于 AR 渲染,而是用于渲染 3D 模型。我面临的问题是如何使用滑动手势或触摸事件对模型进行 360 度旋转
我正在构建一个使用 AR 的 Android 应用程序,我正在为此使用 sceneform 包。我显示一个 3D 模型,其 ModelRenderable 是通过从外部 URI 下载相应的 .sfb
我知道 ARCore 尚不支持步行等 3D 动画,但我如何为节点的旋转设置动画? 我知道我可以设置 LocalRotation 或 WorldRotation,但如何以流畅的方式连续制作此动画? 最佳
我添加了一项基于 Google 的 Codelabs 教程 ( https://codelabs.developers.google.com/codelabs/sceneform-intro/inde
ARCore sceneform 示例项目“hellosceneform”很酷并且运行良好。 问题是需要四处移动手机以获得放置 anchor 的表面。太慢了。 我的应用程序不需要任何东西显示在垂直平面
如果我有两个单独的 Sceneform 可变换节点,它们有自己的 AnchorNodes 和 Anchors,我如何将它们“链接”在一起,以便用户的手势(捏合和拖动)对它们产生相同的效果?如果我将它们
我想通过它的置信度值对 PointCloud 进行着色。 首先,我创建了三个 FloatBuffer,我在其中放置基于阈值的单个点。 private FloatBuffer makeFLoatBuff
我一直在努力将垂直放置的 3d 模型 GLB 格式正确放置在垂直表面上。 Just to be clear, I am not referring to the difficulty of ident
我有一种在 AR 环境中构建和生成 3D Assets 的方法。 3D 资源是存储在元数据文件夹中的 .sfb 文件。我的元数据文件夹中有多个 3D 资源,我希望在调用此函数时随机选择一个资源。这是我
我的理解是有几种环境支持 ARCore,Unity 和 Sceneform SDK 是其中的一些选项。 我想知道除了一个在 Java 中,另一个在 C# 中之外,它们之间有什么不同?除了语言偏好之外,
我正在尝试开发一款 AR 应用程序,以帮助视障人士改善他们使用计算机的条件。 我正在研究 AR 如何帮助 HCI 解决视觉障碍问题,因此,该应用程序使用 WebRTC 来使用 Sceneform 在
我是一名优秀的程序员,十分优秀!