Re: Issues in the extension:
BACK_LEFT and BACK_RIGHT are intended to be included in WebGLRenderingContextBase. Note the disclaimer at the top: “These changes are written here in the extension
document in order to facilitate discussion of the proposal. They are intended to be merged to the core WebGL specification and removed from here at a later date.”
drawBuffer is intended to be included in WebGLRenderingContextBase.
drawBuffer() and drawBuffers() are separate entry points, they don’t have any special relationship just because they are named similarly. The similar naming is a
bit unfortunate, but it’s inherited from desktop GL.
The current extension proposal is not compatible with WebGL 1.0, though the proposed core spec changes apply to WebGL 1.0. If a WebGL 1.0 version of the multiview
extension is desired, it might make the most sense to specify that separately from the WebGL 2.0 extension. Doing that only makes sense after there’s an agreement on what goes to the core spec, though.
Including a very simple API usage example is a good idea, but I don’t think the extension document needs to go beyond that. The spec document is not a tutorial.
The interaction with WebVR needs to be specified in the WebVR spec. So far this has been discussed only informally.
I’m working on fixing some of the smaller omissions you pointed out. The organization of the extension document is controlled by the XML transform for extensions, unfortunately
that isn’t working that great with the current state of the document which includes the core spec changes. When the part that needs to go to the core WebGL specification is removed from the extension document, the document should become a lot clearer.
From: Florian Bösch [mailto:firstname.lastname@example.org]
Sent: tiistaina 10. tammikuuta 2017 8.29
To: Rafael Cintron <Rafael.Cintron@microsoft.com>
Cc: Olli Etuaho <email@example.com>; Mark Callow <firstname.lastname@example.org>; Maksims Mihejevs <email@example.com>; public webgl <firstname.lastname@example.org>
Subject: Re: [Public WebGL] WEBGL_multiview discussion
I personally also would also find it preferable if the structure was:
And the rest of the description wouldn't be interspersed with it.
On Tue, Jan 10, 2017 at 9:18 AM, Florian Bösch <email@example.com> wrote:
Addendum: The extension also does not define a formative section on what identifiers it adds to shaders.
When this extension is enabled:
On Tue, Jan 10, 2017 at 9:12 AM, Florian Bösch <firstname.lastname@example.org> wrote:
The extension adds the following:
FRAMEBUFFER_ATTACHMENT_TEXTURE_NUM_VIEWS_OVR accepted by getFramebufferAttachmentParameter
FRAMEBUFFER_ATTACHMENT_TEXTURE_BASE_VIEW_INDEX_OVR accepted by getFramebufferAttachmentParameter
MAX_VIEWS_OVR accepted by getParameter
FRAMEBUFFER_INCOMPLETE_VIEW_TARGETS_OVR accepted by checkFramebufferStatus
BACK_LEFT_AND_RIGHT_MULTIVIEW_WEBGL accepted by drawBuffer
context creation parameter "stereo"
layout qualifier to specify the number of views a shader renders
There are some issues with that extension:
The enums BACK_LEFT and BACK_RIGHT are added to the WebGLRenderingContextBase instead of the extension objects IDL
the function drawBuffer which does not exist in WebGL is added to the WebGLRenderingContextBase instead of the extension objects IDL
The relationship between WebGL2 gl.drawBuffers and this extensions drawBuffer is unclear
The layout qualifier is not WebGL1 compatible, and the extension does not define WebGL1 usable gl_NumViews constant or the like
The extension does not contain a differentiation between WebGL1 and WebGL2, but those need to be 2 specifications, so either there's two extensions needed, or this extension needs to define differing functionality in different sections for both WebGL1 and WebGL2
The examples section is insufficient, examples should be added for context creation and back buffer use, framebuffer object use and selection of traditional or stereo view rendering.
Since this extension is meant to interact with the WebVR specification, and the WebVR specification so far requires the application to render to the back buffer in split-view, the interaction with WebVR is unclear and should be clarified