[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [Public WebGL] WEBGL_multiview discussion



Re: Issues in the extension:

 

1.       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.”

2.       drawBuffer is intended to be included in WebGLRenderingContextBase.

3.       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.

4.       See 5.

5.       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.

6.       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.

7.       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.

 

Cheers, Olli

 

From: Florian Bösch [mailto:pyalot@gmail.com]
Sent: tiistaina 10. tammikuuta 2017 8.29
To: Rafael Cintron <Rafael.Cintron@microsoft.com>
Cc: Olli Etuaho <oetuaho@nvidia.com>; Mark Callow <khronos@callow.im>; Maksims Mihejevs <max@playcanvas.com>; public webgl <public_webgl@khronos.org>
Subject: Re: [Public WebGL] WEBGL_multiview discussion

 

I personally also would also find it preferable if the structure was:

 

overview (formative)

IDL

examples

 

And the rest of the description wouldn't be interspersed with it.

 

On Tue, Jan 10, 2017 at 9:18 AM, Florian Bösch <pyalot@gmail.com> wrote:

Addendum: The extension also does not define a formative section on what identifiers it adds to shaders.

 

An example of how that works is contained there: https://www.khronos.org/registry/webgl/extensions/EXT_shader_texture_lod/

 

Overview
When this extension is enabled:

  • ...
  • ...
  • ...

 

On Tue, Jan 10, 2017 at 9:12 AM, Florian Bösch <pyalot@gmail.com> 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
  • framebufferTextureMultiviewWEBGL(...)
  • context creation parameter "stereo"
  • gl.drawBuffer
  • gl.BACK_LEFT
  • gl.BACK_RIGHT
  • layout qualifier to specify the number of views a shader renders

There are some issues with that extension:

  1. The enums BACK_LEFT and BACK_RIGHT are added to the WebGLRenderingContextBase instead of the extension objects IDL
  2. the function drawBuffer which does not exist in WebGL is added to the WebGLRenderingContextBase instead of the extension objects IDL
  3. The relationship between WebGL2 gl.drawBuffers and this extensions drawBuffer is unclear
  4. The layout qualifier is not WebGL1 compatible, and the extension does not define WebGL1 usable gl_NumViews constant or the like
  5. 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
  6. 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.
  7. 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