Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Making the whole Ground Plane underlying "plane" visible #93

Open
tsoen opened this issue Feb 22, 2024 · 6 comments
Open

Making the whole Ground Plane underlying "plane" visible #93

tsoen opened this issue Feb 22, 2024 · 6 comments
Labels
feature-feedback Feature feedback

Comments

@tsoen
Copy link

tsoen commented Feb 22, 2024

Describe your feature
When using the Ground Plane feature, we would like to show directly to the user to whole area available to add objects on it (the plane).
For now, the feature only works by doing repeated automatic (or interactive) hit tests on "something", which we assume is a Plane detected by the Vuforia system.
Instead of having to perform a hit test at a particular place to know if there is a plane or not, is there a way to directly show / get the coordinates / mesh of the whole plane detected ?

Use-case description
The user needs to know in advance where he can place objects or not. Currently, he would have to tap at a random point on the screen so we can then perform a hit test and then give him feedback if there is a plane or not there.

Business impact
User experience.

Workaround
For now, we are thinking of constantly doing automatic hit tests and saving the coordinates of the successful hits, then constructing the plane ourselves... but this implies the user must move his device around the whole area.

@ptc-emaggio
Copy link
Collaborator

if you are using Unity this feature is already available in AR Foundation https://docs.unity3d.com/Packages/com.unity.xr.arfoundation@5.1/manual/features/plane-detection/arplanemanager.html
and Engine can work next to it
https://developer.vuforia.com/library/unity-extension/vuforia-engine-and-ar-foundation

would that work for you?

@tsoen
Copy link
Author

tsoen commented Feb 22, 2024

Hello @ptc-emaggio,
Thank you for the suggestion, unfortunately our solution is built for Android and UWP (Windows tablets), which AR Foundation does not support... (we may also have plans for devices such as Hololens and Magic Leap, which is not supported either as stated in https://developer.vuforia.com/library/unity-extension/vuforia-engine-and-ar-foundation).

Also, adding AR Foundation would decrease the quality of the application :
"NOTE: Combining Vuforia Engine and AR Foundation in the same scene does add performance overhead and latency. While this is barely noticeable on iOS devices; on Android, this will result in higher latency and less stable tracking of Vuforia targets.
In any case, we recommend using Vuforia Engine and AR Foundation together only if capabilities of both are needed. For best performance and lowest latency, use Vuforia Engine without AR Foundation."

@ptc-pscheper ptc-pscheper added the feature-feedback Feature feedback label Feb 22, 2024
@ptc-emaggio
Copy link
Collaborator

Doing multiple hit-tests to figure out the plane extent might work on iOS and Android because internally ARKit/ARCore are indeed using an explicit plane estimate. However on UWP, Ground Plane hit-test behavior is significantly different and the workaround might not be viable.

@tsoen
Copy link
Author

tsoen commented Feb 23, 2024

I have not tested it yet, but how is it different in UWP ? Won't the PlaneFinderBehaviour give us the HitTestResults with the position of the hit ? This should be enough to construct the plane incrementally ?

Do you have any other suggestion to our use-case ?

Regards

@ptc-emaggio
Copy link
Collaborator

ptc-emaggio commented Feb 23, 2024

On UWP the implementation is different from the other platforms and has more limited functionality. On UWP Engine assumes a single infinite horizontal plane. The height of this infinite plane is estimated on the first hit-test but the plane extent is never computed. Any hit test following the first one will always "hit" this infinite plane.

It might be possible to re-estimate the plane height by enabling and disabling the PlaneFinder behavior between hit-tests. However, this might not be practical as some device motion is needed every time to re-triangulate the plane height.

@ptc-emaggio
Copy link
Collaborator

As communicated in Engine 10.25 release notes support for, VISLAM, part of Vuforia’s Fusion tracking system, will be removed in a future version of Engine. This will affect mobile devices and UWP tablets that do not support ARCore and ARKit. In such devices Ground Plane will stop working once the app is built against an Engine release without VISLAM.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature-feedback Feature feedback
Projects
None yet
Development

No branches or pull requests

3 participants