3D on the web: X3d Ruth Aylett Topics 3D on the web History of - - PowerPoint PPT Presentation
3D on the web: X3d Ruth Aylett Topics 3D on the web History of - - PowerPoint PPT Presentation
3D on the web: X3d Ruth Aylett Topics 3D on the web History of X3d Overview of X3d What is the problem? How to produce interactive 3D web-based applications? Running in everybody s browsers On whatever platform
Topics
3D on the web History of X3d Overview of X3d
What is the problem?
How to produce interactive 3D web-based
applications?
– Running in everybody’s browsers – On whatever platform – Acceptably fast interaction
Answer: find an encoding for a scenegraph
and download it
– Reasonable file size? – Model IPR? – Handles dynamic interaction?
What is X3d?
An ISO standard VR modelling language
– NOT a programming language!
Reimplementation of VRML97 with XML
syntax:
– Open standard (1997) for Internet sharing
- f 3D files and Virtual Worlds
A Scene Description Language A file in UTF-8
X3d supports:
3D graphics
– Polygonal geometry, parametric geometry, hierarchical transformations, lighting, materials and multi- pass/multi- stage texture mapping
2D graphics
– Text, 2D vector and planar shapes displayed within the 3D transformation hierarchy
Animation
– Timers and interpolators to drive continous animations; humanoid animation and morphing
Spatialized audio and video
– Audiovisual sources mapped onto geometry in the scene
User interaction
– Mouse-based picking and dragging; keyboard input
History - 1
1994: Mark Pesce presents 3D Web Prototype
– VRML email list established
Open Inventor established as VRML basis
– SGI (Silicon Graphics) – VRML 1.0
- No interaction, just navigation
1995: VRML Architecture Group (VAG)
– request-for-proposals (RFP) for VRML 2.0
History - 2
1996: VRML 2.0
– based on SGI ‘Moving Worlds’ proposal – VRML Consortium formed
1997: ISO Standard
– VRML 97
VRML consortium -> Web3D
– Work started on successor to VRML
2004: X3d becomes ISO standard
Basic X3d concepts
Scene graph
– hierarchical data structure: nodes and links – describes virtual world
Nodes
– shape, geometry, appearance, location etc
Fields
– each Node is a list of fields – contains values and parameters
Simple example
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.2//EN" "http://www.web3d.org/specifications/ x3d-3.2.dtd"> <X3D profile="Interchange" version="3.2" xmlns:xsd="http://www.w3.org/2001/XMLSchema- instance" xsd:noNamespaceSchemaLocation=" http://www.web3d.org/specifications/x3d-3.2.xsd "> <Scene> <Shape> <Appearance> <Material/> </Appearance> <Box/> </Shape> </Scene> </X3D>
Nodes
Grouping nodes
– Group, Transform, Collision, Billboard, Anchor
Bindable nodes
– Viewpoint, NavifgationInfo, Fog, Background
Transform Node
Transforms its children
– applies in turn scales, rotations, and translations
Transform nodes may be nested
– but computationally expensive
Negative scaling (for reflection) not allowed
Appearance Node
Specifies visual properties of geometry
– Material properties
- ambient, diffuse, emissive,shininess, specular,
transparency
– texture
- image, picture, movie
The Sound Model
maxBack minBack minFront maxFront Direction Decreasing intensity
No Sound
Location
Light Nodes
DirectionalLight
– At infinity, illuminates a scene with parallel rays, all from one direction
PointLight
– Located at a specific point in space – Illuminates from all directions
SpotLight
– At a specific point – Illuminates in a cone
Sensors
Geometry sensors
– CylinderSensor; PlaneSensor; SphereSensor; ProximitySensor; TouchSensor; VisibilitySensor
TimeSensor Not sensors in the agent sense
Interpolators
For Keyframe Animation
– position; orientation; normal; scalar; coordinate; color
Each interpolator node has a set of keys
and a set of keyValues
provides piece-wise linear interpolation
Routing and Events
Most nodes contain events
– Incoming: eventIn – Outgoing: eventOut
A ROUTE connects eventOut of a node
to eventIn of another
Results in field value being changed
Prototypes
Create a custom node type
– Use the PROTO declaration
Or in an external file
– use EXTERNPROTO to declare a reference
Can be used to extend x3D
Scripts
For more complex interaction Usually in JAVA or JavaScript Script node has eventIns, eventOuts
and Fields
External Authoring Interface
EAI for interaction between X3d and
JAVA applet
Uses a browser plugin architecture
Other Features
Billboards WorldInfo NavigationInfo Level of Detail (LOD) Viewpoints Fog ETC
What is missing?
Obstacle detection
– only automatic for the user
Sensors
– in the agent sense of the term
Support for autonomy
– aimed at supporting the user as a privileged object
Working groups
Lots and lots!
– JAVA3D and x3d – Compressed Binary format – Living Worlds – Biota – Humanoid Animation – GeoVRML – ETC
Creating X3d Worlds
Text Editor x3d editor
– x3d-edit: free – submarine: free
Other modelling tools: Maya, 3ds studio
– with File converter or exporter
Component-based architecture
Profiles (as mpeg4) A collection of components, E.G:
– CORE simple non-interactive animation – BASE compatible with VRML
Components can be individually extended
– Or new LEVELs added
New components can be added
– Formal mechanism for submission
Profiles
Interchange profile
– supports geometry, texturing, basic lighting, and animation – designed primarily to transfer data between applications.
Interactive profile
– adds additional lights, enhanced timing, and sensor nodes for interaction with the 3D environment.
Immersive profile
– adds audio, collision, fog, and scripting.
Full profile
– adds NURBS, H-Anim, and GeoSpatial components
Compatibility
Any X3D-2 browser will play all VRML
content (in principle!)
– Add line: #X3D profile:base
XML support not essential
– Just an additional encoding
Using XML syntax
Links to other web apps
– VRML syntax was unique
Makes authoring more accessible Links to browser development
– XML support in new browser versions
Stylesheets for conversion File converters VRML <--> X3D
X3D and Java..
X3D is NOT a programming language
– It is a 3D scene graph specification
Contrast with use of javascript as
OpenGL interface
– The HTML5 approach
Other Technologies
HTML5: canvas
– In most current browser versions: http:// html5test.com/ – https://developer.mozilla.org/en/ drawing_graphics_with_canvas
JAVA 3D
– see the sun java site at sun.java.com
Flash/Flex
– Become very popular: proprietary
MPEG-4 v1 includes VRML 97