<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><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:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
pre
        {mso-style-priority:99;
        mso-style-link:"HTML Preformatted Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New";
        color:black;}
span.HTMLPreformattedChar
        {mso-style-name:"HTML Preformatted Char";
        mso-style-priority:99;
        mso-style-link:"HTML Preformatted";
        font-family:"Courier New";
        color:black;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
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:1.0in;
        text-indent:-.25in;
        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:1.5in;
        text-indent:-.25in;
        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:2.0in;
        text-indent:-.25in;
        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:2.5in;
        text-indent:-.25in;
        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:3.0in;
        text-indent:-.25in;
        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:3.5in;
        text-indent:-.25in;
        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:4.0in;
        text-indent:-.25in;
        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:4.5in;
        text-indent:-.25in;
        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:5.0in;
        text-indent:-.25in;
        font-family:Wingdings;}
ol
        {margin-bottom:0in;}
ul
        {margin-bottom:0in;}
--></style></head><body lang=EN-US link=blue vlink="#954F72"><div class=WordSection1><p class=MsoNormal>What Michael says sounds ckay to me.  However, with the way computer develop, we’ll probably need something like an “EmotionCamera” tag in the future that generates emotion events, with direct brain connections and everything. There will again be web and OS support.  Let’s make it easy for the camera to switch from stereo to mono, and from video to still images.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>John</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Sent from <a href="https://go.microsoft.com/fwlink/?LinkId=550986">Mail</a> for Windows 10</p><p class=MsoNormal><o:p> </o:p></p><div style='mso-element:para-border-div;border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in'><p class=MsoNormal style='border:none;padding:0in'><b>From: </b><a href="mailto:maratow@noegenesis.com">Michael Aratow</a><br><b>Sent: </b>Sunday, July 9, 2017 7:50 PM<br><b>To: </b><a href="mailto:Leonard.Daly@realism.com">Leonard Daly</a>; <a href="mailto:x3d-public@web3d.org">x3d-public@web3d.org</a><br><b>Subject: </b>Re: [x3d-public] A suggestion for a node supporting VR headsets inX3D</p></div><p class=MsoNormal><o:p> </o:p></p><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.</p><p class=MsoNormal><span style='color:black'><o:p> </o:p></span></p><div><p class=MsoNormal><span style='color:black'>On 7/9/17 10:01 AM, Leonard Daly wrote:<o:p></o:p></span></p></div><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><div><p class=MsoNormal style='margin-bottom:12.0pt'><span style='color:black'>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><o:p></o:p></span></p></div><blockquote style='margin-top:5.0pt;margin-bottom:5.0pt'><p class=MsoNormal><span style='color:black'>Hi,<o:p></o:p></span></p><p class=MsoNormal><span style='color:black'> <o:p></o:p></span></p><p class=MsoNormal><span style='color:black'>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></span></p><p class=MsoNormal><span style='color:black'> <o:p></o:p></span></p><p class=MsoNormal style='margin-left:1.5in;text-indent:-.25in;mso-list:l0 level1 lfo1'><![if !supportLists]><span style='font-family:Symbol;color:#0070C0'><span style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'>         </span></span></span><![endif]><span style='color:#0070C0'>VR<o:p></o:p></span></p><p class=MsoNormal style='margin-left:2.0in;text-indent:-.25in;mso-list:l0 level2 lfo1'><![if !supportLists]><span style='font-family:"Courier New";color:#0070C0'><span style='mso-list:Ignore'>o<span style='font:7.0pt "Times New Roman"'>   </span></span></span><![endif]><span style='color:#0070C0'>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></span></p><p class=MsoNormal style='margin-left:2.0in;text-indent:-.25in;mso-list:l0 level2 lfo1'><![if !supportLists]><span style='font-family:"Courier New";color:#0070C0'><span style='mso-list:Ignore'>o<span style='font:7.0pt "Times New Roman"'>   </span></span></span><![endif]><span style='color:#0070C0'>Input interfaces, possibly from multiple buttons. For example, TouchSensor, may need to be expanded to permit more types of input.<o:p></o:p></span></p><p class=MsoNormal style='margin-left:2.0in;text-indent:-.25in;mso-list:l0 level2 lfo1'><![if !supportLists]><span style='font-family:"Courier New";color:#0070C0'><span style='mso-list:Ignore'>o<span style='font:7.0pt "Times New Roman"'>   </span></span></span><![endif]><span style='color:#0070C0'>Audio – is it good enough. There is no left, right ear dependence, i.e. stereo audio.<o:p></o:p></span></p><p class=MsoNormal style='margin-left:2.0in;text-indent:-.25in;mso-list:l0 level2 lfo1'><![if !supportLists]><span style='font-family:"Courier New";color:#0070C0'><span style='mso-list:Ignore'>o<span style='font:7.0pt "Times New Roman"'>   </span></span></span><![endif]><span style='color:#0070C0'>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></span></p><p class=MsoNormal><span style='color:black'> <o:p></o:p></span></p><p class=MsoNormal><span style='color:black'>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></span></p><p class=MsoNormal><span style='color:black'> <o:p></o:p></span></p><p class=MsoNormalCxSpMiddle style='margin-left:2.0in;mso-add-space:auto;text-indent:-.25in;line-height:105%;mso-list:l0 level1 lfo1'><![if !supportLists]><span style='font-family:Symbol;color:black'><span style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'>         </span></span></span><![endif]><span style='color:black'>UserInfo<o:p></o:p></span></p><p class=MsoNormalCxSpMiddle style='margin-left:2.5in;mso-add-space:auto;text-indent:-.25in;line-height:105%;mso-list:l0 level2 lfo1'><![if !supportLists]><span style='font-family:"Courier New";color:black'><span style='mso-list:Ignore'>o<span style='font:7.0pt "Times New Roman"'>   </span></span></span><![endif]><span style='color:black'>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></span></p><p class=MsoNormalCxSpMiddle style='margin-left:2.5in;mso-add-space:auto;text-indent:-.25in;line-height:105%;mso-list:l0 level2 lfo1'><![if !supportLists]><span style='font-family:"Courier New";color:black'><span style='mso-list:Ignore'>o<span style='font:7.0pt "Times New Roman"'>   </span></span></span><![endif]><span style='color:black'>It could indicate if the user was needed a stereo rendering, and have attributes for stereo parameters.<o:p></o:p></span></p><p class=MsoNormalCxSpMiddle style='margin-left:2.5in;mso-add-space:auto;text-indent:-.25in;line-height:105%;mso-list:l0 level2 lfo1'><![if !supportLists]><span style='font-family:"Courier New";color:black'><span style='mso-list:Ignore'>o<span style='font:7.0pt "Times New Roman"'>   </span></span></span><![endif]><span style='color:black'>It could indicate if the user required stereo audio, having appropriate attributes.<o:p></o:p></span></p><p class=MsoNormalCxSpMiddle style='margin-left:2.5in;mso-add-space:auto;text-indent:-.25in;line-height:105%;mso-list:l0 level2 lfo1'><![if !supportLists]><span style='font-family:"Courier New";color:black'><span style='mso-list:Ignore'>o<span style='font:7.0pt "Times New Roman"'>   </span></span></span><![endif]><span style='color:black'>It could have attributes relating to FOV – currently in Viewpoint.<o:p></o:p></span></p><p class=MsoNormal><span style='color:black'> <o:p></o:p></span></p><p class=MsoNormal><span style='color:black'>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></span></p><p class=MsoNormal><span style='color:black'> <o:p></o:p></span></p><p class=MsoNormal><span style='color:black'>The node could be added to the Navigation component, perhaps at support level 2, to fit into the immersive profile.<o:p></o:p></span></p><p class=MsoNormal><span style='color:black'> <o:p></o:p></span></p><p class=MsoNormal><span style='color:black'>An example:<o:p></o:p></span></p><p class=MsoNormal><span style='color:black'> <o:p></o:p></span></p><p class=MsoNormalCxSpMiddle style='margin-left:2.0in;mso-add-space:auto;text-indent:-.25in;line-height:105%;mso-list:l0 level1 lfo1'><![if !supportLists]><span style='font-family:Symbol;color:black'><span style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'>         </span></span></span><![endif]><span style='color:black'>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></span></p><p class=MsoNormal><span style='color:black'> <o:p></o:p></span></p><p class=MsoNormal><span style='color:black'>What do you think? Good idea? Bad idea?<o:p></o:p></span></p><p class=MsoNormal><span style='color:black'> <o:p></o:p></span></p><p class=MsoNormal><span style='color:black'>All comments welcome.<o:p></o:p></span></p><p class=MsoNormal><span style='color:black'> <o:p></o:p></span></p><p class=MsoNormal><span style='color:black'>All the best,<o:p></o:p></span></p><p class=MsoNormal><span style='color:black'> <o:p></o:p></span></p><p class=MsoNormal><span style='color:black'>Roy<o:p></o:p></span></p><p class=MsoNormal><span style='color:black'><br><br><br><o:p></o:p></span></p><pre>_______________________________________________</pre><pre>x3d-public mailing list</pre><pre><a href="mailto:x3d-public@web3d.org">x3d-public@web3d.org</a></pre><pre><a href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org">http://web3d.org/mailman/listinfo/x3d-public_web3d.org</a></pre></blockquote><p><o:p> </o:p></p><div><p class=MsoNormal><span style='color:black'>-- <br></span><b><span style='font-size:13.5pt;color:#333366'>Leonard Daly</span></b><span style='color:#333366'><br>3D Systems & Cloud Consultant<br>LA ACM SIGGRAPH Chair<br>President, Daly Realism - <i>Creating the Future</i> </span><span style='color:black'><o:p></o:p></span></p></div><p class=MsoNormal><span style='color:black'><br><br><br><o:p></o:p></span></p><pre>_______________________________________________</pre><pre>x3d-public mailing list</pre><pre><a href="mailto:x3d-public@web3d.org">x3d-public@web3d.org</a></pre><pre><a href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org">http://web3d.org/mailman/listinfo/x3d-public_web3d.org</a></pre></blockquote><p class=MsoNormal><span style='color:black'><o:p> </o:p></span></p><p class=MsoNormal><span style='color:black'><o:p> </o:p></span></p></div></body></html>