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

ARCore –渲染距离相机200m的物体

龚俊捷
2023-03-14
问题内容

我正在使用ARCore和Sceneform进行Android AR项目。我需要把html" target="_blank">对象 从30米200米远 从用户的摄像头和面临的 视锥剔除
在ARCORE问题,说明这里。

我正在尝试使用此方法设置 投影矩阵 以增加far参数

public void getProjectionMatrix (float[] dest, 
                                 int offset, 
                                 float near, 
                                 float far);

但是我找不到设置渲染投影矩阵的可能性。

这是我的代码:

arFragment.arSceneView.apply {
    scene.addOnUpdateListener {
        // Some code to return from this callback if arFrame is not initialised yet
        if (!objectsAdded) {
            placeObject(Pose.makeTranslation(0f, 100f, 100f), this)
            objectsAdded = true
            scene.camera.projectionMatrix = Matrix(computeProjectionMatrix(frame.camera))
            // P.S. frame.camera is ArCore's camera, scene.camera is Sceneform's one.
            // So, I'm not sure that using them in such way is consistent  
        }
    }
}

setProjectionMatrix方法包含注释VisibleForTesting。因此,我不确定是否应该使用它,并且可以保证它会起作用。

请提出建议,我是否可以通过其他方式做到这一点?如果不是,那么对用户可见的放置远处对象的最佳方法是什么?

先感谢您。


问题答案:

经过深入调查,我发现目前(2019年3月)无法设置ARCamera的far clipping planenear clipping plane

让我们稍等片刻,直到Google允许ARCore开发人员使用它



 类似资料:
  • 我正在使用ARCore和SceneForm进行Android AR项目。我需要放置的对象从30米到200米远的用户的相机和面临的截头剔除问题在ArCore,这里描述。 但我找不到设置渲染投影矩阵的可能性。 下面是我的代码: 方法包含注释。所以,我不确定我是否应该使用它和有一个保证它将工作。 如果我能用别的方法做这件事,请给我个建议?如果没有,最好的方法是做远放置的对象可见的用户? 提前谢谢你。

  • 我知道关于这个话题已经有了一些答案,但我不太清楚如何测量相机和物体之间的距离。 我的目标是: 我用OpenCV通过颜色检测成功地追踪了一个红色的球。现在我试着在红球的中间点一个激光。当红球移动时,激光器应始终跟随红球。我用一个小伺服电机来转动激光。 我在想,如果我能测量物体和相机之间的距离,我就能计算出伺服需要转动的角度。。。 我试图跟踪卡梅伦·洛厄尔·帕尔默的帖子。 我所做的: 我校准了我的Pi

  • 因为屏幕渲染可在位图中获取浏览器窗口内容,所以它可以呈现在任何地方,例如3D场景中的纹理。 Electron中的屏幕渲染的使用方法与 Chromium Embedded Framework项目类似,都可以使用两种渲染模式,并且只有脏区域在 'paint' 事件中传递才能更有效率。可以停止或继续渲染,还可以设置帧速率。指定的帧速率是上限值,当网页上没有发生任何事情时,不会生成任何帧。最大帧速率为60

  • 离线渲染允许您在位图中获取浏览器窗口的内容,因此可以在任何地方渲染,例如在3D场景中的纹理。 Electron中的离屏渲染使用与 Chromium Embedded Framework 项目类似的方法。 可以使用两种渲染模式,并且只有脏区通过 'paint' 事件才能更高效。 渲染可以停止、继续,并且可以设置帧速率。 指定的帧速率是上限值,当网页上没有发生任何事件时,不会生成任何帧。 最大帧速率是

  • 概览 离屏渲染允许你以位图的方式来获取 BrowserWindow 中的内容,所以它可以在任何地方被渲染,例如在3D场景中的纹理。 Electron中的离屏渲染使用与 Chromium Embedded Framework 项目类似的方法。 注意: 有两种渲染模式可以使用(见下),只有未渲染区域传递到 绘图 事件才能提高效率。 您可以停止/继续渲染并设置帧速率。 最高帧速率为 240,因为更高的值

  • 问题内容: 是否可以计算两个`HitResult``s 之间的距离? 或者我们如何使用ARCore计算真实距离(例如米)? 问题答案: 在Java ARCore中,世界单位是米(我只是意识到我们可能不会对此进行记录… aaa,看起来像不行。 糟糕 ,提交了错误)。通过减去两个s 的平移分量,可以得到它们之间的距离。您的代码如下所示: 首次命中为: 第二击为: 假设这些命中结果不在同一帧上发生,那么