Closed haroldmthyng closed 5 years ago
ARCore is intended as a very low-level library that provides motion tracking and scene understanding. This request is outside the scope of that.
If you are using the Sceneform engine, consider posting this request on the google-ar/sceneform-android-sdk issues board.
@inio I would actually argue it's very much in scope as real world trackable planes and 3D point generation is the basis of what ARCore is all about. Currently developers have means to generate a trackable point in space easily within an AR session. The request is only to be able to generate the other trackable type in the same manner. All the ways it can be used is outside the scope of the request, but the validity and need in having a way to generate a trackable plane is solid and on par with what you already mentioned above in understanding and defining an AR scene.
@inio Also while Sceneform does help in other 3D tasks such as collision detection... it's not a viable option for mainstream use until this ticket is released and resolved. https://github.com/google-ar/sceneform-android-sdk/issues/11
I am trying an experiment to persist data from ARCore to local files, and then restore that data from the files later on. I am able to construct Anchor objects (session.createAnchor(Pose)) but don't see a way to construct Plane objects. I can get existing Planes via session.getAllTrackables(Plane.class) but why isn't there a way to add a new Plane to the Session via a public Java API?
It would be a very useful feature if ARCore offered the ability to manually generate Plane Trackable objects when provided a plane's extents, type and center Pose.
Main goal of this feature request is to provide a single cohesive collision detection system through ARCore for Java developers. The current
hitTest
logic built into ARCore Trackable objects already is equipped with touch events to 3D space conversion, trackable object collision detection, contained within boundary detection, and anchor generation from a collision point.Since only the ARCore system can generate these trackable planes when using the Java SDK, developers are currently forced to implement a secondary touch and collision detection system which often times is inferior. Or as mentioned in a previous ticket #211 developers will have to look at leveraging a completely different 3D platform such as Unity or Unreal which for existing AR Java projects just may not be an option.
The request is to simply provide a
createPlane()
method that's similar to the existingSession.createAnchor(Pose pose)
method. Providing this type of signature removes the need to try and extend or implement the Trackable interface. The generated Planes can still be restricted to the existing Horizontal and Vertical types or whatever new types that may be added later, while of course keeping this trackable fully managed by the ARCore session.Typically within an OpenGL AR scene, developers already possess the data needed to generate a trackable Plane.
This would offer a pretty simple and better performing way to generate touch detection planes for 3D object selection, or a ground plane for translation based on touch gestures, all without writing or importing a set of duplicate algorithms.
Sorry for the book, but this would be insanely useful. Of course, please let me know if this functionality exists in a different form or is already in development.