An X3D Presentation Sujan Inala Uday Viyyure David Chiu
Dec 18, 2015
DISCLAIMER
This tutorial on X3D has been collected by the authors over the Internet and by reading research articles over the Internet for the class study purpose in ‘Distributed Multimedia Languages’. The authors do not claim any credit for this work. The sources of collection have been referred at the end of this presentation.
What Is X3D?
The X3D is an Open Standards XML-enabled 3D file format to enable real-time communication of 3D data across all applications and network applications . It combines a run-time delivery engine and VRML 97-inspired file format with XML bindings, with strong industry support for a proven standardization process.
-- From Web3D Press Release
X3D is a revision/replacement for VRML97. It adds the following new functionality and formalizes some extensions that have developed
since VRML97 Full backwards compatibility with VRML97 Full extensibility through Components and Profiles Core profile is a limited subset of VRML97 for lightweight plug-ins
and MPEG4 compatibility Optional XML and binary encodings, in addition to VRML's traditional
ASCII encoding
What is X3D? (Cont)
What is X3D?
H-Anim - Humanoid Animation. Standardized hierarchical structure and interface for animated avatars
GeoVRML the representation of accurate real-time geographical data using VRML
NURBS - organic models described using NURBS mathematics rather than polygons thus significantly reducing filesize and increasing render optimisation
2-way Web page communication through a multi-language scene authoring interface (SAI)
Universal Media - In-built standard media items (textures, models etc) to speed download time
Multi-texturing extensions
Uses of X3D
Capabilities - Multitexture Web3DConsortium/VirtuWorlds/Daly Realism
Capabilities - Animation 3Name 3D/ Naval Postgraduate School
Capabilities - Interactivity ParallelGraphics
Uses - CAD MediaMachines
Uses - Entertainment MediaMachines
Uses of X3D (continued) Uses - Interior Design
MediaMachines
Uses - Architecture Access Development Corporation/Daly Realism
Uses - TrainingParallel Graphics
Uses - ScientificDr. Paul May,School of Chemsitry,University of Bristol, UK.
Uses - Educational Parallel Graphics
Why Use X3D over VRML97?1. VRML compatible 2. XML encoding to integrate smoothly with other applications 3. X3D scenes and environments operate predictably between
different players 4. X3D is componentized5. X3D authoring for any player is consistent and simpler6. X3D is more feature rich 7. X3D is continually being enhanced and updated 8. X3D applications can be certified as reliable and predictable 9. An X3D open source conformant application is available as a
developer resource 10. X3D binary format offers encryption (i.e. security) and
compression (i.e. speed)
X3D Document Structure An X3D file is structured as defined in ISO/IEC 19775-1 Tags are Case SeNsiTiVe All Tags Must Close
<Tag> … </Tag> <Tag />
Attributes are Contained Within Quotes (" or ´) XML Declaration Document Type Definitions (DTD) Statement Root Tag
The structure of an X3D file
Header : The header is a single line of UTF-8 text identifying the file as an XML file, followed by the XML declaration
<?xml version="1.0" encoding="UTF-8"?>
DOCTYPE : This provides both PUBLIC and SYSTEM literals for the X3D Document Type Definition (DTD)
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D3.0//EN" "http://www.web3d.org/specifications/x3d-3.0.dtd">
Root tag : specifies profile information and optionally schema validation
EXAMPLE:
<X3D profile='Immersive'> <head> <component name='Geospatial'/> <component name='NURBS' level='2'/> <meta name='description' content='X3D scene header and prototype syntax examples. '/> <meta name='filename' content='X3dHeaderPrototypeSyntaxExamples.x3d'/> </head> <Scene> <!-- Scene graph nodes are added here --> </Scene></X3D>
X3D Profiles
Core Profile Supports Basic
Interactive 3D Scenes
VRML Profile Full VRML97 Support
GeoVrmlProfile Extensions from the GEO
WG
X3D Extensions Extensions to X3D/VRML
Authoring and Playback Browser virtual world viewer user navigation Generators Loaders
Time zero loaderLoader with run time execution
Scene Graph
Basic unit for x3d runtime environment Contains objects and relationships Root nodes Hierarchy Co-ordinate system
Behavior graph
Run-time environment
Functions Manages graph Renders scene as needed Manages life cycle of objects Co-ordinates the processing of Events Manages inter operation between browser
and the host
Object model
Individual entities of the x3d system Two types of objects
Field object Node object
Common Characteristics Name , Implementation
Additional characteristics for node object Fields , Events, Name
Object model (cont..)
Ways to modify objects Using Routes Using Event propagation or Data flow model at run time Programmatic access
Life cycle of objectsNode is considered live if
It is a root node in the scene It is referred by a field of a live node It is referred by a live script to the node External programmatic reference
Event Model Events
Primary means of generating behavior Driving time based animations Handling object picking Detect user movement and collision
Routes It is a construct to establish an event path. connects output events of a node to input events of another. Redundant routing path is ignored.
Execution model
Component
Core component Time component Networking component Grouping component Rendering component Shape component Geometry3d,2d components Text component Sound component Distributed interactive
component
Lighting component Texturing component Interpolation component Pointing device sensor
component Key device sensor
component Environmental sensor
component Geospatial component Humanoid animation
component Scripting component
It is a set of related functionality consisting of various objects and service
Flux [9]
This is used mainly for deploying web-standard graphics.
Consists of three main components. Engine Web tools Media player
Status of X3D
Standardization of 3 specifications are currently pending
X3D Framework & SAI (19775-1:200X) X3D Encodings (19776-1:200X) X3D Language Bindings (19777:200X)
xVRML [5]
XML implementation of VRML97 Lightweight Tightly focused on Virtual Environments Abandons support for outside apps
No GIS support, etc
Visualizing Human Consciousness [1]
Models human consciousness and contents
Uses TwinVR Main Virtual Env (any virtual world) Conceptual Virtual Env (abstract modeling of
Main VE) Authors modeled “Personal Construct
Psychology” (G.A. Kelly, 1955)
Visualizing Human Consciousness
PCP theory describes a different way to look at the world [2]
Their perception is used as data to form Personal constructs
Personal Constructs are meanings for why people are attached to people, situations, and events.
Predict or control course of events
Visualizing Human Consciousness
Current method: Repertory Grid Technique (2D grid) Constructs are graded on a 5-to-7 point scale
Limitations of the 2D view Real life situations are more complex Some viewpoints are hard to visualize
Visualizing Human Consciousness
The need for 3D Architecture of consciousness is 3D Mind’s content is a constant flow of events These events are by nature 3D They exist not as mental images,
associations, holistic structures, etc!
Behavior3D [4]
3D Entity Behavior: Level 0: Direct modification of entity’s
attributes Level 1: Change of an entity’s attributes over
time Level 2: Series of calls to Level 1 Level 3: Top-level decision making
Behavior3D
Problems: X3D does not offer good support for complex behavior
modeling and reuse Behavior control demands programming knowledge
Solution: Behavior3D is declarative - easy for authoring tools to
automate code Behavior3D should integrate or interoperate with X3D
Behavior3D
Why not use X3D provided behavior control nodes? Only cover behavior levels 0 and 1 Insufficient for complex animations or state-
based modeling of 3D scenes Authors need to use script node to realize
common 3D functionality
Behavior3D
Behavior3DNode - XML language that describes behavior nodes at the development level
Behavior3D - XML language that describes these predefined Behavior3dNode elements s at the usage level
Behavior3D - Java3D Implementation
QuickTime™ and aTIFF (LZW) decompressor
are needed to see this picture.
InTML [6,7,8]
Interaction Technique Markup Language Formerly 3dml Object-oriented view of 3D interaction
Abstraction: hides programming complexity Interaction Technique reuse
InTML
Addresses two main issues: Readability Rapid Development
Defines abstract classes of Interaction Techniques, allows its instances and VR Objects to build applications
A Filter Smallest processing
unit It takes the data
received in its input ports and produces the information in output ports
It runs every frame
aFilterInputPorts
OutputPorts
Some Filters
PointerBased
SelectionTechnique
objects
selected object
pointer position
Car-LikeNavigation
wheel angleposition
gas pedal level orientation
break pedal level
seconds
References
[1] V. Geroimenko and L. Geroimenko, “Visualizing Human Consciousness Content Using Java3D/X3D and Psychological Techniques”, ACM Press, 2000.
[2] PCP Research Group: http://www.psyc.uow.edu.au/research/pcp/ [3] Web3D Consortium: http://www.web3d.org [4] R. Dachselt and E. Rukzio, “Behavior3D: An XML-based Framework for 3D
Graphics Behavior”, ACM Press, 2003. [5] The xVRML Project: http://www.xvrml.net [6] P. Figueroa, M. Green, and H. James Hoover, “3dml: A Language for 3D
Interaction Techniques Specification” [7] P. Figueroa, M. Green, and H. James Hoover, “InTML: A Description Language for
VR Applications”, ACM Press, 2002. [8] InTML: http://www.cs.ualberta.ca/~pfiguero/InTml/ [9] T. Parisi. “FLUX: light weight, standards-web based graphics in xml.” ACM Press.