[WIP] - interaction surface points#2442
Conversation
…ex-08_07-interaction_surface_points
|
Hi @aclegg3! Thank you for your pull request. We require contributors to sign our Contributor License Agreement, and yours needs attention. You currently have a record in our system, but the CLA is no longer valid, and will need to be resubmitted. ProcessIn order for us to review and merge your suggested changes, please sign at https://code.facebook.com/cla. If you are contributing on behalf of someone else (eg your employer), the individual CLA may not be sufficient and your employer may need to sign the corporate CLA. Once the CLA is signed, our tooling will perform checks and validations. Afterwards, the pull request will be tagged with If you have received this in error or have any questions, please contact us at cla@meta.com. Thanks! |
Motivation and Context
This PR contains a prototype viewer.py application for computing "interaction surface points".
Context:
In many scenarios a heuristic of unoccluded point to surface distance is desired.
Instead, "interaction surface points" provide a pre-computed set of points which cover the surface of an object allowing distance and occlusion checks against a set of points in order to reduce the likely-hood of edge cases.
Implementation:
Concretely, we use horizontal raycasting from the AABB boundary to collect a set of exterior surface points.
We then cull the point set by removing points with lowest pairwise distance until a configurable maximum number of points remain. This provides a heuristically uniform distribution.
We cache the points in MarkerSets and serialize to template metadata such that pre-computed points can be re-loaded from the SceneDataset rather than re-computed at runtime.
TODO: migrate to a util, pre-compute over dataset
How Has This Been Tested
Viewer application demo code.
Try it out:
viewer.pyon your scene of choice.Example:
interaction_surface_points-2024-08-07_17.16.46.mp4
Types of changes
Checklist