[x3d-public] A suggestion for a node supporting VR headsets in X3D

Michael Aratow maratow at noegenesis.com
Sun Jul 9 16:49:06 PDT 2017


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.


On 7/9/17 10:01 AM, Leonard Daly wrote:
> 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.
>
>
> 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.
>
> When viewing a scene in a headset, it is generally accepted that 
> certain features need to remain fixed (e.g., world-up).
>
> 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.
>
> 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.
>
> 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).
>
> 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.
>
> 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.)
>
>
> Leonard Daly
>
>
>
>> Hi,
>>
>> 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:
>>
>>   * VR
>>       o 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 Input interfaces, possibly from multiple buttons. For
>>         example, TouchSensor, may need to be expanded to permit more
>>         types of input.
>>       o Audio – is it good enough. There is no left, right ear
>>         dependence, i.e. stereo audio.
>>       o Viewpoint switching – alternative methods of animating
>>         viewpoint changes are required. For example, Viewpoint node
>>         currently has a /jump/ field, but Fade out/Fade in might be
>>         needed.
>>
>> After that meeting Don and I were talking about this, and came up 
>> with an alternative suggestion. This was for the following node:
>>
>>   * UserInfo
>>       o 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 It could indicate if the user was needed a stereo rendering,
>>         and have attributes for stereo parameters.
>>       o It could indicate if the user required stereo audio, having
>>         appropriate attributes.
>>       o It could have attributes relating to FOV – currently in
>>         Viewpoint.
>>
>> 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.
>>
>> The node could be added to the Navigation component, perhaps at 
>> support level 2, to fit into the immersive profile.
>>
>> An example:
>>
>>   * 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.
>>
>> What do you think? Good idea? Bad idea?
>>
>> All comments welcome.
>>
>> All the best,
>>
>> Roy
>>
>>
>>
>> _______________________________________________
>> x3d-public mailing list
>> x3d-public at web3d.org
>> http://web3d.org/mailman/listinfo/x3d-public_web3d.org
>
>
> -- 
> *Leonard Daly*
> 3D Systems & Cloud Consultant
> LA ACM SIGGRAPH Chair
> President, Daly Realism - /Creating the Future/
>
>
> _______________________________________________
> x3d-public mailing list
> x3d-public at web3d.org
> http://web3d.org/mailman/listinfo/x3d-public_web3d.org

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20170709/13beaf2c/attachment-0001.html>


More information about the x3d-public mailing list