[x3d-public] Mobile Responsive Navigation

Michael Aratow maratow at noegenesis.com
Thu Apr 7 22:53:41 PDT 2016


Just FYI, OSVR is trying to create a general API for VR hardware 
devices.  You might want to look at it as they may have figured this out 
already.

On 4/6/16 9:03 PM, Leonard Daly wrote:
> On 4/6/2016 2:17 PM, doug sanden wrote:
>> Leonard,
>> Maybe a ProgrammableNavigation_Component would help.
>
> Doug,
>
> I am not sure how to generalize this either. Perhaps it would be good 
> to develop an implementation for something simple and see how that 
> works for various environments/devices. Based on the learning of 
> writing the code and the definition, we might get smart enough to 
> generalize it.
>
>
> Leonard Daly
>
>
>
>
>
>> -Doug
>>
>> more..
>> There can still be a lot of steps between an input device and navigation effect.
>> So far I haven't noticed a good way to generalize.
>> But lets say there was an intermediate stage called generic_axis_inputs GAI, and that all input devices could be mapped to GAI.
>> Then
>> Step 1:
>> take device input and map to GAI
>> GAI = f(device inputs, functions, constants)
>> Step 2:
>> And then from GAI to a specific navigation type
>> WALK_MOTION = f(GAI, functions, constants)
>>
>> So there are still a few spots whereby it depends on functions, constants ie speed, but actual_speed might be f(GAI,constants).
>> It would be nice if someone invented a more general system, or an extension node for a more browser-independent way to do some of it. Similar to ProgrammableShader component, except ProgrammableNavigationType_Component.
>> - then some of the functions could be provided in the scene -from GAI to newly scripted navigation effects.
>> - and the browser would still be responsible for some of it - getting device input to a more general generic_axis_input format GAI.
>>
>> more..
>> In freewrl -a desktop native web3d browser- LookAt is a funny temporary state. Once you pick an object, it goes back to whatever navigation mode you were in before.
>> For looking around, freewrl has SPHERICAL. And when going around an object,  TURNTABLE. EXPLORE is like LOOKAT + TURNTABLE. You click an object, it moves the camera to lookat it, then puts you into a TURNTABLE-like mode.
>> We have an internal function for emulating angular motion for desktop developers to test ideas. Right now It goes into SPHERICAL navigation type.
>>
>> If mobile devices can have a linear motion sensor, that might make them more general for navigation: Lets say you're standing in one spot, and you move your head forward. That could be equivalent to a drag vector in mouse navigation - the longer the drag vector, the faster the motion. 3D mice - like
>> http://www.3dconnexion.com/service/software-developer.html
>> can do these compound linear/angular motions.
>>
>> I think the VALVE/HTC and Oculus headsets will have linear motions in addition to angular.
>>
>> And for all that we might need something more general like a more general FLY. So it may not be tied to a specific navigation type.  And can still be remapped to different motions by different navigation types.
>>
>> What you do for v4 should/could cover both linear and angular motion types, and for v3.4^ desktop -headsets and 3dmice- and v4 mobile.
>>
>> ^ there's no v3.4 in the works from web3d.org that I know of, but native browser developers may gang together and do an OUTLAW v3.4.
>>
>>
>>
>>
>>
>>
>> From: x3d-public<x3d-public-bounces at web3d.org>  on behalf of Leonard Daly<web3d at realism.com>
>> Sent: April 6, 2016 11:03 AM
>> To: X3D Graphics public mailing list;x3dom-users at lists.sourceforge.net
>> Subject: [x3d-public] Mobile Responsive Navigation
>>    
>> Mobile devices have built-in motion detectors. These can be accessed from JavaScript within a browser and used to control the viewing of a scene. I have documented one way athttp://realism.com/blog/tracking-device-motion. This is a mechanism that exists external from X3DOM, but is tightly couples to the browser (access to the motion detectors) and X3DOM (for controlling the viewing).
>>
>>
>>
>> Tracking Device Motion | Daly Realism
>> realism.com
>> In a previous post (3D Google Cardboard), I wrote about the code necessary to perform a split screen operation. This post covers how to track the rotation motion of ...
>>
>>
>> I feel that this capability is important to include directly in X3D V4. This is a means of navigation, so my initial thought would be that this would be an addition to the NavigationInfo node. There are two types of this kind of navigation -- looking at an  object (point in space) where device motion is on a sphere with the object at the center; and looking around where the device motion is at a fixed point and can orient to any angle. In both of these cases, there is a fixed (non-translated) point -- either  the object, or the initial camera XYZ position.
>>
>> The 'type' field already as a "LOOKAT". In fact the spec document (http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/components/navigation.html#NavigationInfo)  specifically describes how to navigate about an object in this manner using '"LOOKAT" "EXAMINE"'. For this case, perhaps all that is needed is to take (or at least allow) navigation control to come from the device. Something like a new field "SFBool [in,out]  navigationSensor FALSE".
>>
>> Comments?
>>
>>
>>
>
>
> -- 
> *Leonard Daly*
> 3D Systems & Cloud Consultant
> X3D Co-Chair on Sabbatical
> 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/20160407/ae001057/attachment-0001.html>


More information about the x3d-public mailing list