Java 将物体放置在人上方30米处

Java 将物体放置在人上方30米处,java,android,kotlin,augmented-reality,arcore,Java,Android,Kotlin,Augmented Reality,Arcore,有没有可能把一个物体正好放在一个高出30或50米的人的上方 当我尝试放置链接到锚点的对象时,它在20米内可见,在40米内不可见 为什么会发生这种情况以及如何配置?这是ARCore中的截锥体剔除问题–不在相机截锥体可视区域内的对象将不会被渲染。通常,Android设备的视野水平方向约为60度(垂直孔径取决于纵横比)查看截头体剔除是从渲染过程中移除完全位于查看截头体之外的对象的过程,从而显著降低CPU和GPU的计算负担。不要忘记,近剪裁平面和远剪裁平面也是平截头体的一部分 要正确设置对象的可见性,只

有没有可能把一个物体正好放在一个高出30或50米的人的上方

当我尝试放置链接到锚点的对象时,它在20米内可见,在40米内不可见


为什么会发生这种情况以及如何配置?

这是ARCore中的
截锥体剔除问题–不在相机截锥体可视区域内的对象将不会被渲染。通常,Android设备的视野水平方向约为60度(垂直孔径取决于纵横比)<代码>查看截头体剔除
是从渲染过程中移除完全位于查看截头体之外的对象的过程,从而显著降低CPU和GPU的计算负担。不要忘记,近剪裁平面和远剪裁平面也是平截头体的一部分

要正确设置对象的可见性,只需使用以下建议,您可以找到并修改它们

要了解更多有关圆台剔除的信息,请阅读

要返回用于呈现内容的投影矩阵,请使用以下java方法:

public void getProjectionMatrix (float[] dest, 
                                 int offset, 
                                 float near, 
                                 float far);
我可以在
MainActivity.java
文件中这样使用它:

// Getting Projection Matrix
float[] projectionMtx = new float[16];
arSession.getProjectionMatrix(projectionMtx, 0, 0.5f, 201.0f);

// Setting Projection Matrix
arRenderer.setProjectionMatrix(projectionMtx);
// Getting Projection Matrix
private fun computeProjectionMatrix(): FloatArray {
    val projectionMtx = FloatArray(16)
    session.getProjectionMatrix(projectionMtx, 0, 0.5f, 201.0f)
    return projectionMtx
}

// Setting Projection Matrix
renderer.setProjectionMatrix(computeProjectionMatrix())
…或以这种方式在
MainActivity.kt
文件中:

// Getting Projection Matrix
float[] projectionMtx = new float[16];
arSession.getProjectionMatrix(projectionMtx, 0, 0.5f, 201.0f);

// Setting Projection Matrix
arRenderer.setProjectionMatrix(projectionMtx);
// Getting Projection Matrix
private fun computeProjectionMatrix(): FloatArray {
    val projectionMtx = FloatArray(16)
    session.getProjectionMatrix(projectionMtx, 0, 0.5f, 201.0f)
    return projectionMtx
}

// Setting Projection Matrix
renderer.setProjectionMatrix(computeProjectionMatrix())

希望这能有所帮助。

非常感谢,阿吉奥!答案真的很有用。如果我可以使用Sceneform sdk设置投影矩阵,请给出建议。Sceneform的摄影机(
arFragment.arSceneView.scene.camera
)允许仅为测试设置
projectionMatrix
。你的回答会很有帮助,因为我现在正试图解决同样的问题。嗨,奥尔加。请把它作为一个问题发表。并提供您的代码。我会试着回答。完成-。非常感谢。