1

目前,只要在场景中检测到平面,就会出现圆形纹理,但我想突出显示平面的所有区域而不是中心的小圆圈。

是否可以在 ARCore 应用程序中突出显示检测到的平面?

我在 Android Studio 中为 Android 应用程序使用ARCoreJava Sceneform

4

1 回答 1

3

答案是:是的

您可以在 ARCore 中轻松自定义检测到的平面的可视化。默认情况下,场景有一个PlaneRenderer公共类,当检测到平面时会高亮显示它们,也就是说,它会在.png文件中为它们渲染纹理。纹理.png文件位于src/main/res/drawable中(它是一个R.drawable.custom_texture)。

这是一个代码:

Texture.Sampler sampler =
    Texture.Sampler.builder()
        .setMinFilter(Texture.Sampler.MinFilter.LINEAR)
        .setMagFilter(Texture.Sampler.MagFilter.LINEAR)
        .setWrapMode(Texture.Sampler.WrapMode.REPEAT)
        .build();

Texture.builder()
    .setSource(this, R.drawable.custom_texture)
    .setSampler(sampler)
    .build()
    .thenAccept(texture -> {
        arSceneView.getPlaneRenderer()
        .getMaterial().thenAccept(material ->
            material.setTexture(PlaneRenderer.MATERIAL_TEXTURE, texture));
    });

您需要做的就是修改用于渲染检测到的平面的默认材质和纹理。

在此处输入图像描述

于 2018-10-26T18:34:40.633 回答