As of 3.0, does Lightship offer better plane detection than stock Unity?

  • Device type & OS version: Android 12
  • Host machine & OS version: Windows
  • Issue Environment : On Device
  • Xcode version:
  • ARDK version: 3.1.0
  • Unity version: 2023.2.3

Description of the issue:
I haven’t been able to get object placement and occlusion to work properly in Unity. In general, I’ve found that plane detection is very unreliable on my Android device, similar to the problem described in this post: https://forum.unity.com/threads/ar-plane-tracking-is-so-bad-on-android.1290470/

I’m encountering similar behavior in Lightship as I did with stock ARCore. I believe my project is “working” correctly (I can place objects on planes), but I haven’t gotten occlusion to work, and I think it’s because the planes are floating around randomly to begin with.

Meanwhile, I found some tutorials that talk about object placement, like this one: Object Placement Without Planes – Niantic Lightship

However, I think these are out of date, because I can’t find any mention of Lightship Hub anymore.

Anyway — is there some kind of component or configuration that I’m missing to help improve Lightship’s plane detection/object placement? Or perhaps an up-to-date tutorial showing how it should work? And if not, is this just the current limitation of the software?

Hi Stefan,

Welcome to Lightship! As of version 3.x, we’ve integrated with AR Foundation to ensure a smoother experience for our developers. Previous implementations in 2.5 that have AR Foundation equivalents were removed in 3.x, so I’m not surprised that you’re seeing similar behavior. What’s more, as you pointed out, we no longer provide downloads for the Lightship Hub as it is out of date. For updated documentation and samples, please visit https://lightship.dev/docs/ardk.

Happy Holidays!
Maverick L.

Hi, thanks for the reply! Yes, I guess that makes sense — I got a similar answer on the Unity forums as well.

So, if we look at the demo video on the Occlusion page: Occlusion | Niantic Lightship

Is there any video example of a feature like this working on Android?

The welcome page for ARDK 3 claims that it offers “Depth, Occlusion, and Meshing that work on any device, regardless of lidar capability.” Indeed, I got occlusion to partially work on my device (OnePlus Nord N200) with the official Unity ARFoundation demo. But it’s nowhere near as accurate as the mascots walking behind the trees and following the surface of the ground. For me, the planes hover around, and I couldn’t get any occlusion on a placed GameObject by walking around my room.

I understand that maybe the tech just isn’t there yet, or maybe we’ll all have LIDAR phones in a few years and this won’t matter. I just want to confirm whether there’s any way to improve plane detection and occlusion on non-LIDAR devices right now, because so far it seems like it doesn’t work in practice.

Have you tried running Lightship’s depth occlusion sample? If not, I would see if you get better results with that one and try to replicate it in your own project.

Hey, I just got a chance to try this.

Actually — looking at this samples, I think occlusion is working on my device, as long as the object is a child of the main camera within the XR Origin. Basically, it works in the Occlusion scene, but not in the Navigation Mesh scene.

In the Navigation Mesh scene, I wasn’t able to occlude the mascot character with my hands or with objects around the house. The mesh doesn’t cover the whole floor for me, but I can attempt to occlude it by walking around while the character is standing there. (I’m assuming that occlusion is supposed to work here, because I see an AROcclusionManager on the camera).

Is there anything I can do about this on my end?

Hi Stefan,

I appreciate your patience. An important difference between the Occlusion sample and the Navigation Mesh sample is that the latter lacks the Lightship Occlusion Extension. The lack of the extension is most likely why the occlusion isn’t the same as in the first sample. Copying the setup of the Lightship Occlusion Extension to the navigation sample should give you the expected behavior.

Hey,

Interesting, that’s a good point. Unfortunately, even with the Lightship Occlusion Extension, the results are about the same. This is how it looks for me: occlusion

Has anyone successfully gotten this to work on Android? Is there a list of devices that we know for sure would work?

How is your occluder set up? Does it match the settings for the Lightship Occlusion Extension in the sample?

Yeah, it was set up the same way.

To be honest, I kinda gave up — I’d have to redownload the samples to test it again. It seems like it isn’t really possible to do this yet, and from googling around, I haven’t seen anyone else get it working on Android.

This topic was automatically closed 2 hours after the last reply. New replies are no longer allowed.