我们可以在ARCore应用程序中突出显示所有检测到的飞机吗?

时间:2018-10-26 08:27:12

标签: java kotlin augmented-reality arcore sceneform

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

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

我将Java用于with tab(ID,QTR,SCORE) as ( select 21, 1, 3 from dual union all select 21, 2, 5 from dual union all select 21, 3, 3 from dual union all select 21, 4, 3 from dual union all select 41, 1, 2 from dual union all select 41, 2, 2 from dual union all select 41, 3, 4 from dual union all select 41, 4, 2 from dual ) select t.id, t.qtr, ( select max(score) from tab where qtr <= t.qtr and id = t.id ) as prev_max_score from tab t; / ARCore,用于Android Studio中的Android应用。

1 个答案:

答案 0 :(得分:1)

答案是:是

您可以在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));
    });

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

enter image description here