real-world-geometry icon indicating copy to clipboard operation
real-world-geometry copied to clipboard

[meshing] How should we request normals?

Open rcabanier opened this issue 4 years ago • 11 comments

From @thetuvix:

Float32Array? normals; Some app scenarios on HoloLens end up not requiring normals, which aren't free to calculate. We should also allow apps to skip requesting normals in the first place.

rcabanier avatar Aug 30 '19 04:08 rcabanier

Maybe we can skip normals for now?

rcabanier avatar Aug 30 '19 04:08 rcabanier

I think we should defintely include normals, if the user wants them and the platform has them.

blairmacintyre avatar Oct 02 '19 00:10 blairmacintyre

I think we should defintely include normals, if the user wants them and the platform has them.

So, should we optionally include them? @blairmacintyre , are you interested in working on this spec with me? If so, we can discuss it in the next meeting.

rcabanier avatar Oct 02 '19 04:10 rcabanier

Next meeting being the Tuesday calls? Or something else? I'm very interested in seeing this spec, and other AR specs, move forward.

blairmacintyre avatar Oct 02 '19 13:10 blairmacintyre

I think next week's call is for the WG and not WCIG. Let's see what happens if I try to add it to the agenda

rcabanier avatar Oct 02 '19 16:10 rcabanier

/agenda Discuss how we can move forward with the AR specs. Are there any concerns about meshing, planes, hit testing, etc

rcabanier avatar Oct 02 '19 16:10 rcabanier

Would you be able to edit your agenda message to add the reason, i.e. "... to resolve how normals should be requested for real world geometry"

those comments are now included in the agenda.

AdaRoseCannon avatar Oct 02 '19 16:10 AdaRoseCannon

Yeah, the next call is a WG call so for now we'll leave the issue for the next CG call.

AdaRoseCannon avatar Oct 02 '19 17:10 AdaRoseCannon

As a data point, here is how HoloLens handles spatial surface mesh normals today:

  1. The app requests mesh normals by setting SpatialSurfaceMeshOptions.IncludeVertexNormals to true.
  2. If the app requested mesh normals, they can then receive them from the SpatialSurfaceMesh.VertexNormals buffer.

For HoloLens hand mesh, we don't currently have an option for an app to skip normals - they are always provided in a combined vertex buffer that hands out both positions and normals for each vertex.

thetuvix avatar Oct 03 '19 20:10 thetuvix

We don't have normals for hand mesh data and they are optional for the world mesh

rcabanier avatar Oct 05 '19 04:10 rcabanier

Reading this, it sounds like we should allow the dev to request them if they want them. @thetuvix is it a performance hit for you to NOT return normals for the hands? Or should we allow them to be returned even if not requested?

My assumption is that It is probably easiest/most efficient for the UA to compute them if they aren't provided by the platform and the user wants them, so a platform can be required to compute normals for any piece of geometry if requested.

blairmacintyre avatar Oct 05 '19 13:10 blairmacintyre