检测到平面后,ArFragment 会在表面上渲染白点,您可以点击并放置 3d 对象。从 PlaneRenderer 类中,我们可以隐藏默认纹理。
ArFragment arFragment = (ArFragment) getSupportFragmentManager().findFragmentById(R.id.ux_fragment);
arFragment.getArSceneView().getPlaneRenderer().setVisible(false);
Run Code Online (Sandbox Code Playgroud)
但不是隐藏,我想添加我的自定义纹理。我找不到任何用于设置此属性的文档。
我想知道我是否可以使用 Unity 和 Apple 的 ARKit 为 Android 构建应用程序,因为 Unity 支持多个平台,并且 ARKit 为 Unity 提供 SDK,但我似乎还找不到决定性的答案。
我知道我可以将 Google 的 ARCore 用于 Android、Unity 和 iOS,但出于某些原因我想使用 ARKit。
我有一个 AR 屏幕,我在其中放置了一些 3D 对象。我正在使用 google AR Core 和 android SDK。
我需要通过单击清除按钮从场景中删除这些对象。
我能够删除最后放置的物体。但其他物体并没有被移除。
这是我正在使用的代码。
if (newAnchor != null) {
arFragment.getArSceneView().getScene().removeChild(newAnchor);
newAnchor.getAnchor().detach();
Run Code Online (Sandbox Code Playgroud) 从文档https://developers.google.com/ar/reference/java/arcore/reference/com/google/ar/core/Pose 我看到 Pose 意味着有一个不可变的锚点。但我不太确定它在以下代码中是如何工作的,其中在两点之间绘制一条线:
Pose point1;
// draw first cube
Pose point0 = getPose(anchors.get(0));
drawObj(point0, cube, viewmtx, projmtx, lightIntensity);
checkIfHit(cube, 0);
// draw the rest cube
for(int i = 1; i < anchors.size(); i++){
point1 = getPose(anchors.get(i));
log("onDrawFrame()", "before drawObj()");
drawObj(point1, cube, viewmtx, projmtx, lightIntensity);
checkIfHit(cube, i);
log("onDrawFrame()", "before drawLine()");
float distanceCm = ((int)(getDistance(point0, point1) * 1000))/10.0f;
drawLine(point0, point1, viewmtx, projmtx);
Run Code Online (Sandbox Code Playgroud)
任何人都可以解释更多关于姿势的文档,因为文档让我更加困惑吗?
我正在 iOS 上创建一个 AR 应用程序,它可以定义一些带有一些注释的锚点并将它们保存在云中。后来我想使用任何设备(iOS 或 Android)检索这些锚点并将它们显示在 ARView 中。我知道我们可以只使用 ARKit 来定义锚点。我们也可以使用 Azure 空间锚点。
我的感觉是,因为我跨平台使用锚点,所以我应该使用 Azure 空间锚点。但是我想知道这两种类型的锚点之间的确切区别是什么。是否可以仅使用 ARKit 锚点并在 Android 设备上准确呈现?简单地说,我想知道根据我的情况什么是最好的解决方案。
ARCore会在我的Nexus 6P上运行吗?
谷歌文档表明它将在Android N手机上运行,但随后声明SDK预览更受限制:
ARCore旨在用于运行N及更高版本的各种合格Android手机.在SDK预览期间,ARCore支持以下设备:
- Google Pixel和Pixel XL
- 三星Galaxy S8(SM-G950U,SM-G950N,SM-G950FD,SM-G950FD,SM-G950W,SM-G950U1)
试图在像素中执行示例应用程序,但我收到以下错误:
java.lang.UnsatisfiedLinkError: No implementation found for int com.google.atap.tango.TangoJNINative.Initialize(android.content.Context) (tried Java_com_google_atap_tango_TangoJNINative_Initialize and Java_com_google_atap_tango_TangoJNINative_Initialize__Landroid_content_Context_2)
at com.google.atap.tango.TangoJNINative.Initialize(Native Method)
at com.google.atap.tangoservice.Tango.<init>(Tango.java:385)
at com.google.ar.core.TangoWrapper.createInstance(TangoWrapper.java:32)
at com.google.ar.core.Session.bindTangoService(Session.java:425)
at com.google.ar.core.Session.resume(Session.java:153)
at com.google.ar.core.examples.java.helloar.HelloArActivity.onResume(HelloArActivity.java:136)
at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1269)
at android.app.Activity.performResume(Activity.java:6786)
at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3407)
at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3470)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2733)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1478)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6121)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779)
Run Code Online (Sandbox Code Playgroud)
知道为什么它不起作用吗?
我正在尝试构建小型应用程序,该应用程序基本上使用 ARCore 检测平面并在该平面上放置一些 3D 模型。我看过 ARCore 的示例代码,它需要太多的样板代码才能使用 openGL 渲染模型。所以我想知道我们可以使用 libGDX 进行渲染。我尝试搜索示例项目,但没有找到任何。我不想使用统一性,同时牢记 APK 大小限制。我对这些东西很陌生,欢迎任何帮助。
我正在寻找AR Core android studio教程.如果有任何AR Core教程可用,请转介我.我看过一个Udemy教程,但那是为了统一.我搜索了许多东西来学习AR Core,我还没有找到任何android studio的教程.
我在哪里将 sceneform_hand_phone.png 图像更改为自定义图像?。这是在带有 ARCore 的 Android 库场景表单中使用的手部图像。
谢谢
我想在 ArFragment 的 Sceneform 上连接两个 TransformableNode 与一些可见线,但不使用 OpenGL 函数。是否可以在Android的ARCore Java中的Sceneform中的两个锚点(或节点)之间画一条线?如果可能的话,我该如何做到这一点?