<html>
  <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <p>I'll echo Leonard's comments about previously developing
      standards.  Let's not reinvent the wheel.  WebVR, OSVR, OpenXR are
      all dealing with multiple hardware vendors/configurations and have
      figured out the reference model and nomenclature to cover all the
      permutations.  I would suggest getting as much as possible from
      those initiatives as they are all open and will likely be the
      defacto standards.<br>
    </p>
    <br>
    <div class="moz-cite-prefix">On 7/9/17 10:01 AM, Leonard Daly wrote:<br>
    </div>
    <blockquote
      cite="mid:ee14dc0f-9f6d-d2bf-4e33-c7aa21278335@realism.com"
      type="cite">
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
      <div class="moz-cite-prefix">OK. I really think this is a very BAD
        IDEA. I've tried to explain why below. It's also toned down a
        lot from my first effort.<br>
        <br>
        <br>
        Having a separate node that provide for duplicate control for
        certain scene assets (e.g., cameras) is a mistake. If UserInfo
        defined a stereo camera and the Viewpoint used an orthographic
        camera you would get vision disorientation. Stereo vision needs
        the two view frustas to converge. There is no convergence with
        orthographic projection.<br>
        <br>
        When viewing a scene in a headset, it is generally accepted that
        certain features need to remain fixed (e.g., world-up). <br>
        <br>
        There is already a node for the camera. It should handle all
        aspects of the camera (perspective, ortho, stereo, etc.). That
        node is called Viewpoint (there is really no need for
        OrthoViewpoint). Introducing another, perhaps contradictory
        means for that would just add confusion.<br>
        <br>
        There is a developing standard for VR on the Web by the W3C. It
        is called WebVR. It does not control how you present certain
        information to the user, but how code needs to interact with the
        browser in order to have the proper VR experience. WebVR also
        includes some standardization of the various user-interface
        devices. A misalignment with WebVR would just cause more
        confusion. More confusion leads to a lower adoption rate.<br>
        <br>
        The spec needs to keep related things together. Viewpoint should
        be how the scene is presented to the user. It needs to cover all
        aspects of the camera, camera type, FOV, interpupillary
        distance. NavigationInfo covers how the user navigates from the
        current viewing position. Audio node(s) would indicate whether
        the sound is mono, spatialized, or stereo (plus). <br>
        <br>
        If a browser wishes to build in a set of user-configurable
        options (perhaps for disability access or some other reason),
        then that is fine; but would not be part of the spec.<br>
        <br>
        The discussion of multi-user is irrelevant. Each user has their
        own copy of the scene (at least for rendering purposes). What
        one person sees is independent of another in the same scene at
        the same time. Multi-user support is more for passing high-level
        information from one viewer to another. Presenting a
        "birds-eyes" view of a scene in headset mode is not a good idea.
        Of course it can be done, but the results will be bad and very
        disturbing (as in cognitive dissonance). (Think of a web page
        with every word on a blink tag with different rates. That is
        just beginning to go down the disturbing path.)<br>
        <br>
        <br>
        Leonard Daly<br>
        <br>
        <br>
        <br>
      </div>
      <blockquote type="cite"
        cite="mid:016301d2f8be$4e9c0c50$ebd424f0$@ntlworld.com">
        <meta http-equiv="Content-Type" content="text/html;
          charset=utf-8">
        <meta name="Generator" content="Microsoft Word 15 (filtered
          medium)">
        <style><!--
/* Font Definitions */
@font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
        {mso-style-priority:34;
        margin-top:0cm;
        margin-right:0cm;
        margin-bottom:0cm;
        margin-left:36.0pt;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        mso-fareast-language:EN-US;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;
        mso-fareast-language:EN-US;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
/* List Definitions */
@list l0
        {mso-list-id:994725643;
        mso-list-type:hybrid;
        mso-list-template-ids:145491402 134807553 134807555 134807557 134807553 134807555 134807557 134807553 134807555 134807557;}
@list l0:level1
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:72.0pt;
        text-indent:-18.0pt;
        font-family:Symbol;}
@list l0:level2
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:108.0pt;
        text-indent:-18.0pt;
        font-family:"Courier New";}
@list l0:level3
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:144.0pt;
        text-indent:-18.0pt;
        font-family:Wingdings;}
@list l0:level4
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:180.0pt;
        text-indent:-18.0pt;
        font-family:Symbol;}
@list l0:level5
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:216.0pt;
        text-indent:-18.0pt;
        font-family:"Courier New";}
@list l0:level6
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:252.0pt;
        text-indent:-18.0pt;
        font-family:Wingdings;}
@list l0:level7
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:288.0pt;
        text-indent:-18.0pt;
        font-family:Symbol;}
@list l0:level8
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:324.0pt;
        text-indent:-18.0pt;
        font-family:"Courier New";}
@list l0:level9
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:360.0pt;
        text-indent:-18.0pt;
        font-family:Wingdings;}
ol
        {margin-bottom:0cm;}
ul
        {margin-bottom:0cm;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
        <div class="WordSection1">
          <p class="MsoNormal">Hi,<o:p></o:p></p>
          <p class="MsoNormal"><o:p> </o:p></p>
          <p class="MsoNormal">At a recent X3D working group meeting we
            proposed some possible new nodes to provide support for VR
            displays within X3D. Here is an extract from the minutes:<o:p></o:p></p>
          <p class="MsoNormal"><o:p> </o:p></p>
          <ul style="margin-top:0cm" type="disc">
            <li class="MsoNormal" style="color:#0070C0;mso-list:l0
              level1 lfo1">VR<o:p></o:p></li>
            <ul style="margin-top:0cm" type="circle">
              <li class="MsoNormal" style="color:#0070C0;mso-list:l0
                level2 lfo1">Stereo viewpoint, which needs two cameras.
                The X3D specification only allows one camera, e.g.
                Viewpoint, which is a bindable node. Contrast here the
                Viewpoint/OrthoViewpoint nodes, which are perspective
                and orthographic renderings, respectively.<o:p></o:p></li>
              <li class="MsoNormal" style="color:#0070C0;mso-list:l0
                level2 lfo1">Input interfaces, possibly from multiple
                buttons. For example, TouchSensor, may need to be
                expanded to permit more types of input.<o:p></o:p></li>
              <li class="MsoNormal" style="color:#0070C0;mso-list:l0
                level2 lfo1">Audio – is it good enough. There is no
                left, right ear dependence, i.e. stereo audio.<o:p></o:p></li>
              <li class="MsoNormal" style="color:#0070C0;mso-list:l0
                level2 lfo1">Viewpoint switching – alternative methods
                of animating viewpoint changes are required. For
                example, Viewpoint node currently has a <i>jump</i>
                field, but Fade out/Fade in might be needed.<o:p></o:p></li>
            </ul>
          </ul>
          <p class="MsoNormal"><o:p> </o:p></p>
          <p class="MsoNormal">After that meeting Don and I were talking
            about this, and came up with an alternative suggestion. This
            was for the following node:<o:p></o:p></p>
          <p class="MsoNormal"><o:p> </o:p></p>
          <ul style="margin-top:0cm" type="disc">
            <li class="MsoListParagraph"
              style="margin-left:36.0pt;mso-list:l0 level1 lfo1">UserInfo<o:p></o:p></li>
            <ul style="margin-top:0cm" type="circle">
              <li class="MsoListParagraph"
                style="margin-left:36.0pt;mso-list:l0 level2 lfo1">Should
                this be a bindable node, with its own binding stack, so
                that only one was active at a time? Then, what about
                multiple users interacting with the same scene?<o:p></o:p></li>
              <li class="MsoListParagraph"
                style="margin-left:36.0pt;mso-list:l0 level2 lfo1">It
                could indicate if the user was needed a stereo
                rendering, and have attributes for stereo parameters.<o:p></o:p></li>
              <li class="MsoListParagraph"
                style="margin-left:36.0pt;mso-list:l0 level2 lfo1">It
                could indicate if the user required stereo audio, having
                appropriate attributes.<o:p></o:p></li>
              <li class="MsoListParagraph"
                style="margin-left:36.0pt;mso-list:l0 level2 lfo1">It
                could have attributes relating to FOV – currently in
                Viewpoint.<o:p></o:p></li>
            </ul>
          </ul>
          <p class="MsoNormal"><o:p> </o:p></p>
          <p class="MsoNormal">This node would not have to be included
            in a scene. It could be added by the implementation (or
            modified if present) using SAI techniques. <o:p></o:p></p>
          <p class="MsoNormal"><o:p> </o:p></p>
          <p class="MsoNormal">The node could be added to the Navigation
            component, perhaps at support level 2, to fit into the
            immersive profile.<o:p></o:p></p>
          <p class="MsoNormal"><o:p> </o:p></p>
          <p class="MsoNormal">An example:<o:p></o:p></p>
          <p class="MsoNormal"><o:p> </o:p></p>
          <ul style="margin-top:0cm" type="disc">
            <li class="MsoListParagraph"
              style="margin-left:36.0pt;mso-list:l0 level1 lfo1">Let’s
              imagine a garden scene. We would like to be able to render
              it in stereo, from the perspective of two different users.
              The first is human. The second is a bird. The saved scene
              need not have a UserInfo node, and so could be independent
              of the user. The implementation would then insert the
              appropriate UserInfo node into the scene at run time,
              permitting the scene to be rendered with the desired user
              properties.<o:p></o:p></li>
          </ul>
          <p class="MsoNormal"><o:p> </o:p></p>
          <p class="MsoNormal">What do you think? Good idea? Bad idea?<o:p></o:p></p>
          <p class="MsoNormal"><o:p> </o:p></p>
          <p class="MsoNormal">All comments welcome.<o:p></o:p></p>
          <p class="MsoNormal"><o:p> </o:p></p>
          <p class="MsoNormal">All the best,<o:p></o:p></p>
          <p class="MsoNormal"><o:p> </o:p></p>
          <p class="MsoNormal">Roy<o:p></o:p></p>
        </div>
        <br>
        <fieldset class="mimeAttachmentHeader"></fieldset>
        <br>
        <pre wrap="">_______________________________________________
x3d-public mailing list
<a moz-do-not-send="true" class="moz-txt-link-abbreviated" href="mailto:x3d-public@web3d.org">x3d-public@web3d.org</a>
<a moz-do-not-send="true" class="moz-txt-link-freetext" href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org">http://web3d.org/mailman/listinfo/x3d-public_web3d.org</a>
</pre>
      </blockquote>
      <p><br>
      </p>
      <div class="moz-signature">-- <br>
        <font class="tahoma,arial,helvetica san serif" color="#333366">
          <font size="+1"><b>Leonard Daly</b></font><br>
          3D Systems & Cloud Consultant<br>
          LA ACM SIGGRAPH Chair<br>
          President, Daly Realism - <i>Creating the Future</i> </font></div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
x3d-public mailing list
<a class="moz-txt-link-abbreviated" href="mailto:x3d-public@web3d.org">x3d-public@web3d.org</a>
<a class="moz-txt-link-freetext" href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org">http://web3d.org/mailman/listinfo/x3d-public_web3d.org</a>
</pre>
    </blockquote>
    <br>
  </body>
</html>