目前,只要在场景中检测到平面,就会出现圆形纹理,但我想突出显示平面的所有区域而不是中心的小圆圈。
是否可以在 ARCore 应用程序中突出显示检测到的平面?
我在 Android Studio 中为 Android 应用程序使用ARCore
Java Sceneform
。
目前,只要在场景中检测到平面,就会出现圆形纹理,但我想突出显示平面的所有区域而不是中心的小圆圈。
是否可以在 ARCore 应用程序中突出显示检测到的平面?
我在 Android Studio 中为 Android 应用程序使用ARCore
Java Sceneform
。
答案是:是的。
您可以在 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));
});
您需要做的就是修改用于渲染检测到的平面的默认材质和纹理。