-
Notifications
You must be signed in to change notification settings - Fork 57
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
WebXR DOM Overlay Module #470
Comments
Hi - we are just discussing this issue in our virtual face-to-face meeting today. One piece of feedback about the explainer: it dives right into talking about this in terms of the rest of WebXR. I think it would be valuable to start with a user need right at the front - what user experience is this spec trying to enable ? This is described below in some detail but it could be explicitly described right at the front. |
I've added an introductory paragraph to the explainer, and also clarified the accessibility paragraph. Does this help? |
So the TAG looked at this for about 20 minutes in our breakout just now, and we were struggling with the explainer in various ways:
We suggest revisiting the tips for effective explainers, and perhaps also other parts of that document. An explainer that is difficult to read makes it hard for interested members of the web community to understand what you're proposing and to provide useful feedback. These include the TAG. Given today's discussion, I think it's likely that the TAG wouldn't review this proposal with the explainer in its current state. (I think @hober and @alice are going to add some more specific questions as well.) |
Apologies for confusion caused by this. I'll work on updating the explainer, but here are some initial answers to your specific points. First of all, this is not a standalone proposal. The DOM Overlay Module is an add-on feature for WebXR and the WebXR AR Module, and the feature is only usable as part of a WebXR immersive AR session. Unfortunately I now realize that the explainer doesn't actually mention that. The intended target audience for the explainer was people familiar with WebXR, and that's why it assumes that readers are familiar with the problem space. Without that context, the explainer won't be very helpful. About the two images, each of the scenes has a transparent DOM overlay element that covers the entire picture and acts as a container element for DOM content. The visible child elements of each overlay element only cover part of the screen, with the transparent parts of the fullscreen DOM overlay remaining invisible so that they don't obstruct the camera view or AR content. The green rectangle (left image) and the pink spiral shape (right image) are WebGL content drawn by the WebXR application, and the background is the live camera image. About the fullscreen API connection, in both cases the DOM overlay element is truly fullscreen, both in the sense of filling the entire screen, and also as being the active fullscreen element as defined by the Fullscreen API. However, since it's a transparent container element, this isn't clear from the picture. |
I found the introduction particularly confusing because the second paragraph is about not supporting inline AR content, and I couldn't tell how that was related to the first paragraph. It seems like the first paragraph of the introduction is really an "abstract" (a good one!), and then the second paragraph begins a "background" discussion, and then paras 4-6 are more specific use cases. It would be very helpful if it could be more structured to demarcate how the ideas in each paragraph relate to one another. In general, the level of detail is often too deep, too quickly. For example:
Very helpful!
Also helpful.
This is extremely specific - worth mentioning in a details section somewhere, but not necessary in a summary.
Again, this is too much information for a summary (and, I would have thought, mostly implied by the second sentence anyway). This kind of jumping around in levels of detail makes it very hard to keep track of the high level ideas as we read through. It would be much easier to read if it started with a high level overview and then discussed details as necessary and in the relevant context. The overview/feature summary could probably mostly be replaced by diagrams or screenshots of examples where the API could be used, with captions explaining the important features (such as DOM content always appearing on top of XR content, and how events are handled). There are also several cases where points seem to be repeated, e.g. "The DOM overlay is restricted to a single rectangle at a fixed Z depth chosen by the user agent" and "The application does not get low-level control over placement of the DOM overlay; the placement of the overlay is intentionally left up to the user agent." I suspect that the general concepts involved are relatively straightforward, so a succinct explanation of the general concepts should be possible. More detail can be built on top of that context. |
@dbaron wrote, in July:
@klausw replied:
@torgo and I took another look at this during our virtual F2F this week, and it doesn't look like this explainer has been updated yet. Marking as stalled and pending editor update. |
Apologies for the long silence, I have updated the explainer to address the outstanding feedback. I simplified the overview and added some diagrams to clarify how the feature works, and moved some of the fiddlier details to separate sections later in the document. |
Thanks for the explainer updates! We had a look at this in our virtual face-to-face, and we had some questions:
|
Thank you for the feedback!
This would introduce a significant delay - the goal is to deliver the The Also, XR frame and input timing isn't currently required to be tightly synchronized with DOM frame and input handling. It's entirely possible for the XR scene to be running at a different framerate than DOM animations. In general, the goal for an AR system is to process XR frames and input with minimal latency, while DOM is often tuned for smooth animations even at the cost of slightly increased latency. Requiring a tight coupling between DOM and XR input events could be a significant challenge for implementations and could cause performance degradations.
No, this is chosen by the user agent, this field just informs the page about which is currently active. I'm adding a clarification.
No, it's intended to stay the same for the duration of the session. This isn't currently explicit in the spec, I'll add an update there.
Sorry, this was a mistake in the example. It is supposed to check for
Yes, this is a technical limitation of additive see-through headsets such as HoloLens. The waveguide optics can only add light to the scene, they don't have any way to darken the perceived image, and therefore cannot display an opaque black. The result is basically equivalent to a There's a corresponding See immersive-web/dom-overlays#40 for the planned changes. |
I got the blend modes mixed up here, I think the additive mode more closely corresponds to the |
Thanks for bearing with us. We're happy to close this as satisfied. We appreciate the changes you made based on our feedback. Thank for sailing with TAG sea-ways. |
Hello TAG!
I'm requesting a TAG review of WebXR DOM Overlay Module.
This module supports showing DOM content during immersive AR/VR sessions to cover common use cases. This includes displaying explanatory text or HUD elements alongside an AR scene, and providing interactive elements such as buttons or sliders that affect the scene.
Further details:
You should also know that...
N/A
We'd prefer the TAG provide feedback as (please delete all but the desired option):
🐛 open issues in our GitHub repo for each point of feedback
The text was updated successfully, but these errors were encountered: