© 2016, Daly Realism
Creative Commons Sharealike (CC BY SA)
Web3D2016, SIGGRAPH 2016
23-28 July 2016
Extending X3DOM to Mobile
New Nodes
Licensing Notice
This presentation is licensed as Creative Commons Attribution, Share-Alike [CC BY-SA 4.0]
Some of the material comes from other sources. Licensing for that other material may be different than that associated with the entire document. Credit for the individual pieces of content (text, graphics, images, etc.) are identified on the page where that content appears. The full credit reference is given on the Credit pages.
Overview
- Part 1
- X3DOM Overview
- Device Orientation
- Part 2
- Walkabout
- LookSensor
- SphericalVideo
- StereoView
- Analytics
- Adding Nodes to X3DOM
- Discussion
Walkabout
Mechanism to "walking" about a VR space using a mobile device without walking.
Concept is a combined capability of NavigaionInfo, Viewpoint, and SpatialSensor
Walkabout - "Tank" Mode
- Go straight unless twisting sensor
- Twisting sensor steers motion (like a car)
- Left/Right look is always relative to motion orientation
- Walking is always the same speed
- Look at nadir to start/stop
LookSensor
Pick an object by staring at it long enough. Equivalent to TouchSensor
- Fine-tuning is settable via fields
- Uses DOM onclick event
- Documentation
SphericalVideo
- Automatically constructs sphere and texture mapping
- Plays indicated video on inside of sphere
- Should only use EXAMINE Navigation mode
- Video is specially constructed to work in a spherical projection
- Basis for 360 Video (aka VR Video)
- Virtual Reality vs. 360Video Infographic
- Documentation
SphericalVideo
StereoView
Creates a stereographic view of the selected geometry
- Display is handled through shaders (WebGL)
- Each "eye" view is rendered onto a plane that is displayed
- Documentation
- Kelpie (illustrated here)
- Other Examples
Analytics
- Mechanism for capturing user interaction with the scene
- Not all information need be captured
- Potential performance hit
- Potential security/privacy issue
- Documentation (Very Preliminary)
- Read More
Adding Nodes to X3DOM
- Animate
- Macro
- StereoView
- SpatialSensor
General Structure
x3dom.registerNodeType(
"<node-name>",
"<node-component>",
defineClass(x3dom.nodeTypes.<node-class>,
function (ctx) {
x3dom.nodeTypes.<node-name>.superClass.call(this, ctx);
this.addField_<field-type>(ctx, '<field-name>', <default-value>);
},
{
<method1>: function (...) {...},
<method2>: function (...) {...},
<method3>: function (...) {...}
}
)
);
New Node: Animate
- In Time component
- Wraps a TimeSensor with one or more Interpolator nodes
- Interpoaltion algorithms may be changed at run-time
- Output directly passed to target node.field
- Key methods
- tick: funtion(time)
- fieldChanged: function(fieldName)
New Node: Macro
- In Networking component
- Provides for run-time insertion of X3DOM nodes into scene graph
- Perform string substitution prior to insertion
- Code specfied either internally (child of Macro) or externally (URL)
- Combined with X3DOM or HTML JavaScript
- Full capability of X3D PROTO
New Node: StereoView
- in Grouping component
- Prototyping using Macro feature
- Adding nodes to reference Shape, Viewpoint, and Background in namescope of the StereoView node
- Working on run-time change of mode
- Plan to work out fully integrated node
New Node: SpatialSensor
- In PointingDeviceSensor component
- Real-time tracking of sensor motion
- Only defined and developed for orientation events
- Will support whatever generates device motion events for the browser
- Emulate methods for desktop development
Credits
- Spherical Geometry & Texture Coordinates - Aaron Daly
- Stereographic Code Model - Frauhofer (open source code)
- Walking mode discussions - Aaron Daly & Mike Aratow
- Analytics idea and discussions - Mitch Williams
- Fractal Cathedral
- Kelpie Model - Coform Project
/