首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何使用arcore和sceneform使用按钮从场景中删除单个可渲染对象?

ARCore是一种由Google开发的增强现实(AR)平台,而Sceneform是ARCore的一个附加库,用于简化AR应用程序的开发。使用ARCore和Sceneform,可以通过按钮从场景中删除单个可渲染对象。下面是一种实现方法:

  1. 首先,确保已经在项目中集成了ARCore和Sceneform库。
  2. 创建一个布局文件,包含一个按钮和一个AR场景视图。例如,可以使用以下代码创建一个包含按钮和AR场景视图的布局文件:
代码语言:txt
复制
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <Button
        android:id="@+id/deleteButton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Delete Object"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="16dp" />

    <com.google.ar.sceneform.SceneView
        android:id="@+id/sceneView"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

</RelativeLayout>
  1. 在Activity中,获取按钮和AR场景视图的引用,并设置按钮的点击事件监听器。在点击事件中,可以通过Sceneform的API从场景中删除对象。以下是一个示例代码:
代码语言:txt
复制
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

import androidx.appcompat.app.AppCompatActivity;

import com.google.ar.core.Anchor;
import com.google.ar.core.HitResult;
import com.google.ar.core.Plane;
import com.google.ar.sceneform.AnchorNode;
import com.google.ar.sceneform.rendering.ModelRenderable;
import com.google.ar.sceneform.ux.ArFragment;

public class MainActivity extends AppCompatActivity {

    private ArFragment arFragment;
    private Button deleteButton;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        arFragment = (ArFragment) getSupportFragmentManager().findFragmentById(R.id.arFragment);
        deleteButton = findViewById(R.id.deleteButton);

        deleteButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                deleteObject();
            }
        });
    }

    private void deleteObject() {
        arFragment.setOnTapArPlaneListener((HitResult hitResult, Plane plane, MotionEvent motionEvent) -> {
            Anchor anchor = hitResult.createAnchor();
            AnchorNode anchorNode = new AnchorNode(anchor);
            anchorNode.setParent(arFragment.getArSceneView().getScene());
            anchorNode.removeChild(anchorNode.getChildren().get(0)); // 删除第一个子节点
        });
    }
}

在上面的代码中,我们首先获取AR场景视图和按钮的引用。然后,我们设置按钮的点击事件监听器,当按钮被点击时,调用deleteObject()方法。在deleteObject()方法中,我们使用Sceneform的API在AR场景中删除第一个子节点。

这只是一个简单的示例,你可以根据自己的需求进行修改和扩展。关于ARCore和Sceneform的更多详细信息,你可以参考腾讯云的ARCore和Sceneform相关产品和文档:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

是时候来点arcore

真实的环境虚拟的物体实时地叠加到了同一个画面或空间同时存在。 那么arcore,就好理解了,嗯,是某个为ar开发而实现的sdk,事实上ARCore 为许多最受欢迎的开发环境提供了 SDK。...一、如何一步步来搞起ar 1、首先,你需要将你的android studio升级到3.1 2、其次,如果你想在真机调试的话,(废话,不用真机,你如何拿去给你的小伙伴装逼),你需要保证你的机器在一下机型之中...implementation 'com.google.ar.sceneform:core:1.7.0' } 注意,必须要java8.0才可以跑起来,因为arcore依赖了java8的一些特性,否则会编译失败...可以看到他封装了权限的检查,arcore环境的检查,所以,Google建议先手使用ArFragment来玩arcore,这样会简单点,你也只需要关心自己的业务逻辑,神马权限检查,可用性检查都统统交给他来做...image.png 好,session特征图像数据库挂钩之后: ARCore 通过将摄像头图像的特征点匹配图像数据库的特征点来寻找图像, image.png 每一帧去检查有没有新的augmentImage

1.5K91

深入浅出 ARCore

这样就能实现用户与ARCore环境对象交互了。 锚点与跟踪 ARCore可以改变对自身位置环境的理解来调整姿态。...姿势改变这项技术特别关键,只有得到姿势,ARCore才可以随着时间的推移不断更新环境对象(像飞机特征点)的位置。ARCore将平面点认为是跟踪的特殊类型的对象。...您可以将虚拟对象锚定到这些可追踪的对象上,以确保在设备移动时,虚拟对象跟踪对象之间保持稳定的关系。...锚点Camera的坐标不应该在渲染帧之外的地方使用,如果需考虑到某个位置超出单个渲染框架的范围,则应该创建一个锚点或者应该使用相对于附近现有锚点的位置。...背景展示 用过AR的人都知道,AR是将一些虚拟物品放到真实的场景。那么这个真实的场景哪里来呢?当然是手机的 Camera上获取。 我们把 Camera获取的视频当作 AR的背景。

3.8K10
  • 谷歌IO 2018进行时:ARCore1.2主推Cloud Anchor共享体验功能,AR地图无需GPS定位

    Augmented Images Cloud Anchors作为ARCore 1.2最重要的更新,提供了共享体验,能支持全新类型的协作性AR体验。比如与朋友一起玩游戏或徜徉在绘画这样的艺术世界。...在iOS上,系统将使用所有内置的ARKit功能,如运动跟踪环境评估,并将这些数据同步到云端。...此外,利用AI卫星图像技术,谷歌自动为地图添加新地址商家,并为用户推荐最近的路程。Google Maps还会将地理位置等信息标记到相关建筑物上,从而使用户更容易找到目的地。...这些应用更多层面地考虑如何更“与人方便”,接下来就让小编带大家了解一下。...Google News使用AI带来关联阅读 本次I/O大会中,Google News的升级在演讲也占据不少时间,加上今年外到内的大规模更新,似乎预示着这款App将成为谷歌一个非常重要的业务。

    1.1K30

    2020 Google 多项 ARCore 更新带来AR开发全新可能!

    ARCore在中国 - 越来越多开发者正在创新运用 2018 年 ARCore 技术登陆国,已经在教育、购物、游戏等多个行业大量开发者进行合作。...加上几行代码,通过将 AR 对象锚定到 2D 图像,让用戶不需要扫描,就可以放置虚拟物件并进行互动。...利用 ARCore 的环境理解(Environmental Understanding)及平面识别(Plane Finding),识别环境对象特征,精确地理解环境,加上炫酷逼真的 3D 模型,为孩子们带来身临其境学单词的乐趣体验...API 单个 RGB 摄像头就可创建出深度图。...一旦我们知道场景里面的物体的距离,我们就可以在渲染虚拟物体的时候使用这个信息,进行 Z buffer 计算。

    1K20

    谷歌IO大会进行时:AI加持五大应用,对话、拍照、阅读无所不能

    Cloud Anchors作为ARCore 1.2最重要的更新,提供了共享体验,能支持全新类型的协作性AR体验。比如与朋友一起玩游戏或徜徉在绘画这样的艺术世界。...在iOS上,系统将使用所有内置的ARKit功能,如运动跟踪环境评估,并将这些数据同步到云端。...此外,利用AI卫星图像技术,谷歌自动为地图添加新地址商家,并为用户推荐最近的路程。Google Maps还会将地理位置等信息标记到相关建筑物上,从而使用户更容易找到目的地。...这些应用更多层面地考虑如何更“与人方便”,接下来就让小编带大家了解一下。...Google News使用AI带来关联阅读 本次I/O大会中,Google News的升级在演讲也占据不少时间,加上今年外到内的大规模更新,似乎预示着这款App将成为谷歌一个非常重要的业务。

    2.1K100

    VR开发快速入门小诀窍——选对一款VR开发工具让你事半功倍

    Sumerian允许开发者数字图库中选中其所需的元素,如桌子、树木地毯等,然后将其拖入自己所营造的数字环境。正是由于这种特性,使Sumerian能够兼容UnityUE4等游戏引擎。...此外,Sumerian还允许开发者在其中构建“逼真的虚拟环境”,并用3D对象动画角色填充它们。在交互方面,开发者们也可以在Sumerian编写脚本,控制其与用户之间的交互行为。 ?...ViroCore主要功能,还包括:使用HDR渲染,光照阴影创建场景;用物理动画将真实世界的力学添加到对象之中;用粒子系统发出烟、雾、火其他移动液体;用后期处理效果来过滤世界等。...,该API旨在帮助开发者创建同时使用ARKitARCore的体验。...MixCast VR与各种相机或摄像头设备配合使用,并可在支持产品之间提供一致的体验,因此它也能与现成的网络摄像头以及高端摄像机配合使用

    2K70

    BubbleRob tutorial 遇到的问题

    现在,在模型基础上构建的单个对象场景不能再被选中了(选择它们将会选择模型的基础),但是它们仍然可以通过在选择过程按住ctrlshift键进行单独选择,或者在场景层次结构中选择它们。...这些问题的答案将允许您选择作为模型基础的最佳对象类型。 复制粘贴模型的行为与保存模型并加载模型完全相同(但是使用内存缓冲区而不是磁盘空间)。模型可以像其他对象一样从一个场景复制到另一个场景。...你也可以双击场景层次结构对象图标来打开对话框,或者单击它的工具栏按钮: ? 在“场景对象属性”对话框,单击“公共”按钮以显示“对象公共属性”对话框。对话框显示最后选择对象的设置参数。...如果没有选择对象,对话框是不活动的。如果选择了多个对象,则可以将一些参数最后选择的对象复制到其他选择的对象(应用于选择按钮): ? Selectable可选择:指示是否可以在场景中选择对象。...Assembling装配:打开一个对话框,允许指定装配工具栏按钮如何在装配过程处理对象(如果对象以不同于装配工具栏按钮的方式进行装配,则以下设置不受影响): ?

    1.7K10

    WWDC 2018进行时|ARKit 2.0众望所归,新格式USDZ意在何为?

    除了传统的iOS 12、watchOS 5、tvOSmacOS四大系统外,演讲占比来看,AR在本届大会上的地位也不容忽视。当然,这一点,从此前大会海报的立体化元素,已有所显露。...此次,ARKit 2.0更新了五大主要功能: 1、改进的人脸追踪效果; 2、更逼真的渲染处理能力; 3、3D控件检测能力; 4、对象持久保持的能力; 5、共享的多人AR能力。 ?...直接的多用户功能用例是游戏,正如本次大会上,乐高的创新总监Martin Sanders(马丁·桑德斯)所演示的那样:Sanders与另一位同事手持iPad,然后在相同的AR场景,同时增加蝙蝠侠建筑物等一系列数字角色...其让大家能在随意捕捉的内容,添加各种AR效果,以实现用数字标识信息、在现实增加虚拟物品、用增强现实替代原有场景的效果。...显而易见,Measure在对象检测、追踪的优化、实时算法、即时反馈逼真的渲染等方面的要求,提高不少。而大会中演示视频的短小快,或许也正是因为苹果想要展示的不是视频本身,而是其背后的技术。

    1.1K70

    Web vs App(AR版)

    使用Web或本地应用程序构建AR体验更好吗?在本文中,我将简要概述JS在本机应用程序世界使用,然后将深入探讨什么是WebAR,它如何工作,如何与本机应用程序竞争以及哪种是更好的解决方案。...该广告是汽车内部装饰的360⁰体验³,其中按钮重叠,以切换显示汽车的详细信息。 我问的第一个问题是响应速度如何?AR在计算上很昂贵,那么它如何在浏览器工作?...WebAssembly在AR的计算机视觉方面完成了所有繁重的工作,而我们拥有用于渲染的webGL。WebAssemblyWebGL是基础,但是我们如何使用这些API创建基于Web的AR体验?...大多数代理商品牌都愿意将AR体验添加到现有应用程序,但他们也意识到这种参与与删除应用程序下载时的体验不同。网络无摩擦,每个人都有一个带有QR扫描仪的相机应用程序,可以链接到网站。...要使AR通过Web更加访问性,迈出的一大步就是Web Standards采用API直接访问ARCamera对象

    2.1K00

    加速创意落地,UE4用技术助力行业前景应用开发

    Datasmith的核心在于以极高的生产效率创建平滑的工作流程,使原本单调乏味的手动操作变为自动化操作,例如设置光照贴图UV将材质转化为UE4版本、转化灯光并将其放入UE4场景等等。...在传统设计领域,构思优化产品需要消耗大量时间,因此不少从业者开始投身于实时技术,UE4游戏领域拓展到全行业,也为设计师们工作方式的转型提供了契机。...UE4全面支持ARKit ARCore 实时技术与3D视觉化让产品展示可以突破传统媒介的限制。VRAR产品的开发,UE4也占据主流。...UE4一直致力于做更接近于照片级图像渲染的实时渲染引擎,因此在视觉体验3D图像技术上,UE4处于行业领先。VR设备必然会更高清、更流畅,开发引擎对于内容的助力不可或缺。 ?...不仅仅是ARkit,Epic Games对于ARCore同样重视。在4.18版本之后,UE4已经完成了对于ARKitARcore的原生支持。

    1K110

    你们还在做2D的物体检测吗?谷歌已经开始玩转 3D 了

    一方面是由于现有的3D 数据非常匮乏,另一方面则是因为单个类别下的物体外观形状本身就非常多样化。 在当前条件下,如何基于现有的 2D 图像数据来做3D 检测呢?...单个图像的 3D 物体检测。MediaPipe Objectron在移动设备上实时确定日常对象的位置、方位大小。...针对静态物体,只需要在单个帧中标注物体,然后利用AR 对话数据真实的摄像机姿势信息将其位置传送到所有帧,从而提高整个流程的效率。 3D物体检测的真实世界数据标注。...这种方法可以生成高质量的合成数据,并且渲染的物体不仅顺应场景几何体,还能够无缝匹配适应现实场景。通过结合现实世界的数据 AR 合成数据,能够提高约10%的准确度。 AR合成数据生成的例子。...虚拟的白棕色麦片盒被渲染到真实场景,挨着一本真实的蓝色书。 3 一个针对3D目标检测的机器学习Pipeline 谷歌建立了一个单级模型,能够RGB图像预测物体的姿态物理大小。

    1K20

    1.25 VR扫描:ARKit 1.5版本增加垂直平面支持;成人网站CamSoda推“与真人虚拟ML”VR服务

    据悉,苹果将于本周晚些时候正式发布iOS 11.3预览版ARKit1.5 beta版本,并预计于今年春季全面上线。 VRPinea独家点评:好吧,成功领先安卓的ARCore。...Plex VR可为用户提供一个交互式VR社交场景,用户能够在该场景观看Plex DVR、Plex媒体服务器传输、播放或录制的视频内容。...Visbit的视域选择性传输与渲染技术,能够只传输渲染人视野范围内的视频流,并随着头部转动迅速调整图像区域分辨率,播放8K全景视频。此外,Visbit还提供空间立体音效视频加密保护。...成人视频聊天网站CamSoda推“与真人虚拟ML”VR服务 近日,成人视频聊天网站CamSoda宣布将为用户提供“与真人进行虚拟ML”的服务,该服务通过VR头显联网的成人玩具来实现。...网站上的“服务人员”将会使用联网震动器,该震动器的数据可直接传递到用户购买的成人娃娃内置的飞机杯,同时VR头显中会出现相应的画面,以模拟出真实ML的感觉。据悉,该成人娃娃售价数千美元。

    1.5K70

    【开源方案共享】Google新开源AR:DepthLab

    本文介绍 Google最新开源的AR算法:DepthLab 代码:https://github.com/googlesamples/arcore-depth-lab http://mpvideo.qpic.cn...当三维光标沿物理曲面移动时,它应该根据曲面法线距离更改其方向比例。 激光反射:通过触摸屏幕,沿相机主轴将虚拟激光用户渲染到物理对象。激光到达表面时应该反射。...hitreflection算法对于移动AR开发人员应该是重用的。 物理测量:通过触摸手机屏幕上的像素来测量任意物理点的距离高度(以米为单位)。...化身移动:导航一个虚拟物体在物理环境在两点之间自然移动。 碰撞感知放置:测试虚拟对象的体积是否与观察到的环境曲面发生碰撞。 虚拟阴影:渲染投射到物理曲面上的几何体感知阴影。...阴影可以与任何具有虚拟对象的移动AR应用程序集成。 环境纹理:使用其他材质(如熔岩、网格、草)重新纹理物理表面。这项技术也可以用来取代天花板的星图您的位置或生成一个地形与草,植物或岩石。

    1.1K10

    快来解锁Google的ARCore 为你带来的AR新体验!

    使用 ARCore 构建的应用程序可以识别用户所处的环境,并将物体信息呈现其中,为用户带来很多既有用又充满乐趣的体验。...将虚拟商品真实场景搭配,ARCore 帮你做出更明智的买买买决定!...ARCore 的动态追踪性能,在使用智能手机摄像头观察房间内特征点IMU (惯性测量单元)传感器数据时,能够在移动的过程确定手机的位置指向,保持虚拟对象被放置在准确的位置,让你的球杆瞄准角度实时精准地随着你的移动而改变...在ARCore 的帮助下,更多时空局限将被打破,愿望变得触手及。...个人身体到浩瀚宇宙,ARCore 帮助你感超身受,探索你的未知世界。

    1.3K30

    Unity-Optimizing Unity UI(UGUI优化)03 Fill-rate,Canvas and Input

    但是这样就不能看到场景的动画了。 如果Canvas被设置为"Screen Space - Overlay",不管场景的激活摄像机数量如何,都将绘制它。...这里的改变包括UI 对象的表现,精灵图片的渲染,transform的位置大小,文本网格的文本。 子物体顺序 Unity UI的构建是后向前的,与对象在hierarchy的顺序是一样。...对象在hierarchy靠前的对象被认为是在hierarchy靠后的对象的前面。中间层是一个图形对象有不同的材质,并且与其他两个batch对象有边缘覆盖。...并且在hierarchy在两个batchable对象的中间。中间层次将被迫被破坏。 UI profilerframe debugger可以检查UI的中间层。...对于具有必须响应指针事件的多个绘制UI对象的复合UI控件,例如希望其背景和文本都改变颜色的按钮,通常最好将单个Raycast目标放在复合UI的根部 控制。

    2.5K30

    《译 SFML Essentials 英文版》—— 《第一章》 SFML 入门

    5章(操作2D摄像机)得到更详细的解释,您将学习如何使用OpenGL直接渲染物体。...更新帧——更新场景对象 渲染帧 —— 将场景对象渲染到窗口上 */ } return 0; } 典型的游戏循环有三个主要阶段:...更新帧——更新场景对象 渲染帧 —— 将场景对象渲染到窗口上 SFML的 Input handling 可以通过捕获事件(由窗口分派的事件)或直接查询输入设备的当前状态来完成。...如果你不熟悉渲染过程,扔掉最后一帧的所有东西,重新渲染场景的所有对象(即使是那些自上次以来没有改变的对象)可能会显得有点奇怪浪费。...更新帧——更新场景对象 渲染帧 —— 将场景对象渲染到窗口上 ● 在渲染对象之前更新对象是很重要的,否则它们的当前状态将无法正确渲染 —— 最后一帧将使用上一帧的状态来渲染

    3K30

    ARCore 初探

    VRAR区别 比较正式的解释: 虚拟现实(Virtual Reality):利用计算机创造一个虚拟空间,利用虚拟现实眼镜能够使用户完全沉浸在一个虚拟的合成环境,利用双目视觉原理,虚拟世界在眼镜中是3D...Controller,提高渲染效率,优化延迟。...水平面检测:可以识别出水平面,将虚拟物体精确地置于真实物理场景。 环境光预测:对虚拟物体产生真实阴影光照效果相适配。...ARKit在建图的时候使用了“sliding window”,只会在图中保存最近的时间距离数据,旧的数据会被自动忽视,而ARCore会管理维护更大的数据地图,保存的内容会更加持久稳定。...比较看来,ARCoreARKit核心功能点类似,demoARCore 在已经支持的设备上追踪性能与ARKit的识别能力十分接近,ARCore在建图重定位方面具有一些优势,ARKit在集成跟踪方面具有一定的技术优势

    6.2K11

    谷歌增强现实技术ARCore

    环境感知:虚拟物体一般都是放置于平坦平面上的,用ARCore可以检测物体的水平表面,建立环境认知感,以保证虚拟的对象可以准确放置,然后让您看到放置在这些表面上的AR物体。...光线预测:ARCore根据环境的光强度,使开发人员可以与周围环境相匹配的方式点亮虚拟对象。此外,最近的一个实验发现,虚拟阴影在真实环境光照下的调整功能也是如此,这样就可以使AR物体的外观更为逼真。...ARCore与ARKit对比有如下的相同点异同点: 相同点 ARKit在iOS的工作原理与ARCore上述的原理大致相同。...两者都是使用现有手机的单个摄像头来感知并跟踪您的手机相对于现实世界的运动,并能调整虚拟物体与现实世界的匹配程度。...的基础上,可使用ARCore的浏览器;一个是基于iOS,可使用ARKit的浏览器。

    2.2K60
    领券