3d on the web x3d
play

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


  1. 3D on the web: X3d Ruth Aylett

  2. Topics  3D on the web  History of X3d  Overview of X3d

  3. 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?

  4. 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 of 3D files and Virtual Worlds  A Scene Description Language  A file in UTF-8

  5. 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

  6. 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

  7. 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

  8. 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

  9. 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> � �

  10. Nodes  Grouping nodes – Group, Transform, Collision, Billboard, Anchor  Bindable nodes – Viewpoint, NavifgationInfo, Fog, Background

  11. 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

  12. Appearance Node  Specifies visual properties of geometry – Material properties • ambient, diffuse, emissive,shininess, specular, transparency – texture • image, picture, movie

  13. The Sound Model maxBack � maxFront � Decreasing intensity � Location � Direction � No Sound � minBack � minFront �

  14. 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

  15. Sensors  Geometry sensors – CylinderSensor; PlaneSensor; SphereSensor; ProximitySensor; TouchSensor; VisibilitySensor  TimeSensor  Not sensors in the agent sense

  16. 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

  17. 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

  18. 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

  19. Scripts  For more complex interaction  Usually in JAVA or JavaScript  Script node has eventIns, eventOuts and Fields

  20. External Authoring Interface  EAI for interaction between X3d and JAVA applet  Uses a browser plugin architecture

  21. Other Features  Billboards  WorldInfo  NavigationInfo  Level of Detail (LOD)  Viewpoints  Fog  ETC

  22. 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

  23. Working groups  Lots and lots! – JAVA3D and x3d – Compressed Binary format – Living Worlds – Biota – Humanoid Animation – GeoVRML – ETC

  24. Creating X3d Worlds  Text Editor  x3d editor – x3d-edit: free – submarine: free  Other modelling tools: Maya, 3ds studio – with File converter or exporter

  25. 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

  26. 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

  27. 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

  28. 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

  29. 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

  30. 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

Recommend


More recommend