© Fraunhofer IGD Introduction and Tutorial X3DOM – Declarative (X)3D in HTML5 Yvonne Jung, Johannes Behr Fraunhofer IGD / VCST Darmstadt, Germany.

Slides:



Advertisements
Similar presentations
Chapter 3 – Web Design Tables & Page Layout
Advertisements

What is jQuery Mobile? How to use it? Doncho Minkov Telerik Corporation Technical Trainer.
INTRODUCTION TO JAVAFX CS12420 – Software Development Andrei Stanica (modified ltt)
CSCI 3100 Tutorial 6 Web Development Tools 1 Cuiyun GAO 1.
Programming Club IIT Kanpur. Work environment Before you begin coding,always set up your work environment to your needs IDE Notepad++ Sublime Text 2.
A really fairly simple guide to: mobile browser-based application development (part 1) Chris Greenhalgh G54UBI / Chris Greenhalgh
Graphics Pipeline.
Web Pages and Style Sheets Bert Wachsmuth. HTML versus XHTML XHTML is a stricter version of HTML: HTML + stricter rules = XHTML. XHTML Rule violations:
Multimedia and the WWW Howell Istance and Chris Hand, Napier University.
Java 3D Pablo Figueroa University of Alberta April 2000.
Macromedia Dreamweaver 4 Advanced Level Course. Add Rollovers Rollovers or mouseovers are possibly the most popular effects used in designing Web pages.
 jQuery Mobile An Introduction. What is jQuery Mobile  A framework built on top of jQuery, used for creating mobile web applications  Designed to make.
Chapter 11 Adding Media and Interactivity. Flash is a software program that allows you to create low-bandwidth, high-quality animations and interactive.
Declarative 3D for the Web Architecture Web3D 2012 Workshop Johannes Behr, Kristian Sons.
Evaluation of HTML5 Graphics for Data Structure Visualization
Computer Graphics Group Jiří Žára. Computer Graphics Group 2X3D Contents 1.Web3D Consortium 2.X3D specification 3.GeoVRML 4.NurbsVRML 2.
DHTML. What is DHTML?  DHTML is the combination of several built-in browser features in fourth generation browsers that enable a web page to be more.
Computer Graphics Group Jiří Žára & David Sedláček.
Mobile App Support Jacob Poirier Geri Hengesbach Andrea Menke Erin Rossell.
CS 480/680 Computer Graphics Course Overview Dr. Frederick C Harris, Jr. Fall 2012.
Computer Graphics Group David Sedláček. Computer Graphics Group 2X3D Contents 1.DOM manipulation 2.Events 3.Animation 4.Prototypes 5.Augmented Reality.
CNIT 133 Interactive Web Pags – JavaScript and AJAX JavaScript Environment.
Lecture 11 – DOM Scripting SFDV3011 – Advanced Web Development Reference: 1.
Buffers Textures and more Rendering Paul Taylor & Barry La Trobe University 2009.
WebGL: in-browser 3D graphics Nick Whitelegg Maritme and Technology Faculty Southampton Solent University.
C O M P U T E R G R A P H I C S Guoying Zhao 1 / 14 C O M P U T E R G R A P H I C S Guoying Zhao 1 / 14 Going-through.
Chapter 8 Browsing and Searching the Web. Browsing and Searching the Web FAQs: – What’s a Web page? – What’s a URL? – How does a browser work? – How do.
INTRODUCTION TO JAVASCRIPT AND DOM Internet Engineering Spring 2012.
1 Virtual Reality Modeling Language (VRML97) ©Anthony Steed
CHAPTER TEN AUTHORING.
به نام خدا تنظیم کننده : فرانه حدادی استاد : مهندس زمانیان تابستان 92.
Computer Graphics The Rendering Pipeline - Review CO2409 Computer Graphics Week 15.
Computer Graphics Group Jiří Žára. Computer Graphics Group 2X3D Contents 1.Web3D Consortium 2.X3D specification 3.GeoVRML 4.NurbsVRML 2.
1 Geospatial and Business Intelligence Jean-Sébastien Turcotte Executive VP San Francisco - April 2007 Streamlining web mapping applications.
COMPUTER GRAPHICS CSCI 375. What do I need to know?  Familiarity with  Trigonometry  Analytic geometry  Linear algebra  Data structures  OOP.
Mobile web Sebastian Lopienski IT Technical Forum 29 June 2012.
Session: 1. © Aptech Ltd. 2Introduction to the Web / Session 1  Explain the evolution of HTML  Explain the page structure used by HTML  List the drawbacks.
MIRALab Where Research means Creativity SVG Open 2005 University of Geneva 1 Converting 3D Facial Animation with Gouraud shaded SVG A method.
Game Programming 06 The Rendering Engine
Interactive Textures as Spatial User Interfaces in X3D Web3D 2010 Symposium Sabine Webel Y. Jung, M. Olbrich, T. Drevensek, T. Franke, M.Roth, D.Fellner,
1 Perception and VR MONT 104S, Fall 2008 Lecture 21 More Graphics for VR.
Internet & World Wide Web How to Program, 5/e. © by Pearson Education, Inc. All Rights Reserved.2 Revised by Dr. T. Tran for CSI3140.
Contents : What is Silverlight? Silverlight Overview Silverlight Toolkit Overview Timeline & Packaging Silverlight V1.0 & V1.1 Properties of V1.0 Properties.
© Fraunhofer IGD Introduction and Tutorial X3DOM – Declarative (X)3D in HTML5 Yvonne Jung Fraunhofer IGD Darmstadt, Germany
Chapter 11 Adding Media and Interactivity. Chapter 11 Lessons Introduction 1.Add and modify Flash objects 2.Add rollover images 3.Add behaviors 4.Add.
What are shaders? In the field of computer graphics, a shader is a computer program that runs on the graphics processing unit(GPU) and is used to do shading.
By Nathaniel Dias, Benton Le Ics4U Mr.Krnic. The beginning of the internet started as a result of the Cold War. After the launch of the Russian space.
Leveraging Web Content Management in SharePoint 2013 Christina Wheeler.
® ® copyright © 2013 Open Geospatial Consortium What HTML5 and REST mean to the Geo community Raj Singh, PhD Open Geospatial Consortium
1 Using jQuery JavaScript & jQuery the missing manual (Second Edition)
INTRODUCING HYBRID APP KAU with MICT PARK IT COMPANIES Supported by KOICA
The HTML5 logo was introduced by W3C in 2010
X3DOM : Integrating 3D content seamlessly into webpage
JQuery Fundamentals Introduction Tutorial Videos
DHTML.
- Introduction - Graphics Pipeline
MPEG-4 Binary Information for Scenes (BIFS)
WebGL The HTML5/JavaScript 3D Computer Graphics API
The Basics: HTML5, Drawing, and Source Code Organization
Application with Cross-Platform GUI
Web3D Consortium X3DOM: Next-Generation Web3D Applications on Open Standards and Open Source Web3D Consortium
Chapter 6 GPU, Shaders, and Shading Languages
Who Am I? appMobi's lead HTML5 game developer / evangelist
.NET and .NET Core 7. XAML Pan Wuming 2017.
Tutorial 6 Creating Dynamic Pages
Objective Understand web-based digital media production methods, software, and hardware. Course Weight : 10%
3D applications in Delphi
CIS 441/541: Introduction to Computer Graphics Lecture 15: shaders
Web Client Side Technologies Raneem Qaddoura
Presentation transcript:

© Fraunhofer IGD Introduction and Tutorial X3DOM – Declarative (X)3D in HTML5 Yvonne Jung, Johannes Behr Fraunhofer IGD / VCST Darmstadt, Germany

© Fraunhofer IGD 3D Information inside the Web Websites (have) become Web applications Increasing interest in 3D for Product presentation Visualization of abstract information Experiencing Cultural Heritage data etc. Supporting decision making, e.g. in Virtual Engineering Enhancing user experience with more sophisticated visualizations Yesterday: Flash-based site with videos Today: Immersive 3D inside Browsers

© Fraunhofer IGD Virtual Engineering and Cultural Heritage on the Web Titel, Ort, Datum - Vorname Name3 PPT_Master_IGD_v ppt

© Fraunhofer IGD Technology Trends 3D Data and Documents 3D Printer 3D Scanner Geo Data 3D PLM Web-based Engineering Cloud-based Rendering Augmented/ Mixed Reality Convergence of Application Platforms HTML5 Titanium Peper NaCI Windows Store apps W3C WebApps Chrome OS PhoneGap Divergence of System Platforms Divergence of System Platforms Touch Table Android BlackBerry Linux Cloud Bases WindowsPhone Mac OS Amazon Kindle Windows iOS Web Service Architectures

© Fraunhofer IGD OpenGL + GLSL on the Web: WebGL JavaScript Binding for OpenGL ES 2.0 in Web Browser  Firefox, Chrome, Safari, Opera Only GLSL shader based, no fixed function pipeline No variables from GL state No Matrix stack, etc. HTML5 element provides 3D rendering context gl = canvas.getContext(’webgl’); API calls via GL object X3D via X3DOM framework

© Fraunhofer IGD X3DOM – Declarative (X)3D in HTML5 X3DOM := X3D + DOM DOM-based integration framework for declarative 3D graphics in HTML5 Seamless integration of 3D contents in Web Browser

© Fraunhofer IGD X3DOM – Declarative (X)3D in HTML5 Brings together both, declarative content design as known from web design “old-school” imperative approaches known from game engine development Allows utilizing well-known JavaScript and DOM infrastructure for 3D Embed a live scene-graph in the DOM Hello X3DOM World

© Fraunhofer IGD X3DOM – Declarative (X)3D in HTML5 Completes todays graphics technologies Declarative Scene-graph Part of HTML document DOM Integration CSS / Events Imperative Procedural API Drawing context Flexible 2D (Final HTML5 spec) 3D (No W3C spec yet)

© Fraunhofer IGD Benefits: Why Declarative 3D in HTML? Native Web Browser integration Plug-in/ App free No issues with user permissions, installation, and security OS independent, especially on mobile devices Cluttered: Windows Phone, Android, iOS, Symbian… Web Browsers for most devices available Browser already provides complete deployment structure Eases proliferation of technology and accessibility of content No special APIs (such as in game engines) No expert knowledge required (OpenGL, mathematics, …) Integrates with standard Web techniques (e.g. DHTML, Ajax) Rapid application development

© Fraunhofer IGD Benefits: Why Declarative 3D in HTML? Declarative, open, human-readable (wraps low-level graphics) Utilizing standard Web APIs for integrating content and user interactions Open architectures (also for authoring) and ease of access Integration into HTML document instead of closed systems Metadata: index and search “content” on WebGL apps? Allows “mash-ups” (i.e. recombination of existing contents) Open formats enable automated connection of existing data (e.g., geo-information, Flickr) with 3D content Unify 2D and 3D media development Declarative content description Flexible content (cultural heritage, industry,…) Interoperability: Write once, run anywhere (web/ desktop/ mobile)

© Fraunhofer IGD Excursus: Web-based APIs and DOM  Browser provides complete deployment structure  DOM (Document Object Model) is standardized interface that allows manipulating content, structure and style of (X)HTML/ XML documents  Document is structured as tree with nodes  document.getElementById(„myID“);  Nodes/ tags and attributes can be added, removed and modified (usually with JavaScript)  document.createElement(), appendChild(), removeChild()  setAttribute(), getAttribute()  UI events (e.g. ‘mouseover’) can be attached to most elements (e.g.,,, etc.)  Separation of style and content via CSS DOM structure (example)

© Fraunhofer IGD Short introduction of HTML My 3D page Hello X3DOM World A blue box will soon appear.

© Fraunhofer IGD First HTML needs to know about (X)3D My 3D page <link rel="stylesheet" type="text/css" href=" <script type="text/javascript" src=" …

© Fraunhofer IGD 3D only works inside the tag … Hello X3DOM World A blue box will soon appear.

© Fraunhofer IGD All 3D objects are children of the element … Hello X3DOM World

© Fraunhofer IGD Every object has a … Hello X3DOM World

© Fraunhofer IGD …and a geometry, like e.g. a … Hello X3DOM World

© Fraunhofer IGD …and an

© Fraunhofer IGD …with a (e.g. red)

© Fraunhofer IGD Materials with specular highlights <material diffuseColor="red" specularColor="#808080">

© Fraunhofer IGD Change Background Colors in (R,G,B) with red/green/blue  [0,1] <material diffuseColor="red" specularColor="#808080">

© Fraunhofer IGD Change Background (now using CSS) … Change size of element to full size …

© Fraunhofer IGD Geometric base objects See screenshot – from left to right:

© Fraunhofer IGD Defining own geometries Example: simple rectangle with an

© Fraunhofer IGD Defining own geometries Example: simple rectangle with an Important building blocks The vertices of a Polygon (here “face”), given as The index to a vertex, given as list: “coordIndex” x y (2, 2, 0)(7, 2, 0) (2, 5, 0)(7, 5, 0) z 1

© Fraunhofer IGD Defining own geometries Example: simple rectangle with an The end of one polygon and the begin of a new one is marked as “-1” in the index array This way arbitrarily complex 3D objects can be created x y (2, 2, 0)(7, 2, 0) (2, 5, 0)(7, 5, 0) z 1

© Fraunhofer IGD Defining own geometries Example: simple rectangle with an The indices (except “-1”) refer to the array position of a 3D coordinate in The coordinates of a certain polygon are listed counterclockwise x y (2, 2, 0)(7, 2, 0) (2, 5, 0)(7, 5, 0) z

© Fraunhofer IGD DOM holds structure and data More than 95% are usually unstructured data

© Fraunhofer IGD  Real 3D applications lead to huge HTML files  DOM holds structure and data  More than 95% are usually unstructured data  Unpleasant non-interactive user experience  Browsers not built to hold Gigabytes of DOM attribute data  Possible solutions  Reference external sub trees (e.g. X3D Inline)  Binary XML decompression (e.g. X3DB format)  Separate structure from raw data  Khronos: 3D Transmission Format  Transmission_Format_Requirements_Session_Nov_9_2012.pdf 29 Declarative (X)3D in HTML Problem: Large Datasets

© Fraunhofer IGD 30 Declarative (X)3D in HTML Problem: Large Datasets  Separation of structure and data  Structure in DOM, attributes in binary containers  J. Behr, Y. Jung, T. Franke, T. Sturm: Using images and explicit binary container for efficient and incremental delivery of declarative 3D scenes on the Web. Web3D 2012  Batching draw calls by merging geometries  Subdivision into meshes with max vertices  Compact vertex data encoding  Improve transmission (over Web and CPU  GPU)  No decoding, just transfer as-is to GPU memory  (Client-/server-based approaches)

© Fraunhofer IGD New Geometry node types Data transcoding (example with input file „model.ply“) Without mesh restructuring aopt -i model.ply -G binGeo/:sac -N model.html With mesh/graph optimization (cleanup, patching, and binary creation) aopt -i model.ply -F Scene:"cacheopt(true)” -G binGeo/:sac -N model.html <binaryGeometry vertexCount=' ' primType='"TRIANGLES"' position=' ' size=' ' coord='binGeo/BG0_interleaveBinary.bin#0+24' coordType='Int16' normal='binGeo/BG0_interleaveBinary.bin#8+24' normalType='Int16‘ color='binGeo/BG0_interleaveBinary.bin#16+24‘ colorType='Int16' >

© Fraunhofer IGD Vertex Data Encoding  Compact encoding of vertex attribute data  Using 16 bit (pos, texCoord) or 8 (normal, color)  Required number of bits for pixel-level accuracy for viewport of size w × h, with N := max(w, h), is:  No expensive CPU-based decoding required  Optionally normals as spherical coords in pos.w  Simplified conversion to Cartesian coords for mobile shaders  aopt -i model.x3d -F Scene:”maxtris(20000)” -G binGeo/:sacp -N model.html  Ensure 32 bit alignment for rendering speed Titel, Ort, Datum - Vorname Name32 PPT_Master_IGD_v ppt

© Fraunhofer IGD Vertex Data Encoding

© Fraunhofer IGD Light sources in X3DOM …are part of the Directional lightPoint lightSpot light

© Fraunhofer IGD Other rendering effects Note: like only as child node of possible! fogtexturesshadows

© Fraunhofer IGD Parameterizing shadows  Implemented as post-process, thus transparent to user-defined shaders  Additional fields in all light nodes:  shadowIntensity (default 0), shadowMapSize (default 1024), shadowFilterSize (default 0), shadowOffset (default 0), and – very rarely needed: zNear (default -1), zFar (default -1)  Fields in Directional- and SpotLight:  shadowCascades (default 1), shadowSplitOffset (default 0.1), shadowSplitFactor (default 1) – 0 equidistant splitting, 1 logarithmic Titel, Ort, Datum - Vorname Name36 PPT_Master_IGD_v ppt

© Fraunhofer IGD Appearance example: a textured box Interesting alternative – using a video as texture:

© Fraunhofer IGD Excursus: the lighting model (diffuse and specular reflection) Final color I := ambient material + diffuse material * (N·L) + specular material * (N·H) s For more light sources:

© Fraunhofer IGD Two objects in one scene (?!) … OK ???

© Fraunhofer IGD Two objects in one scene Problem: both appear at same position

© Fraunhofer IGD Two objects in one scene Problem: both appear at same position Reason: 3D objects are usually created in coordinate origin and need to be repositioned afterwards x y z 1

© Fraunhofer IGD Excursus: (2D) coordinate systems Object coordinates in image plane (given by x & y) x y (2, 2)(7, 2) (2, 5)(7, 5)

© Fraunhofer IGD Excursus: (3D) coordinate systems Object coordinates in 3D space (z orthogonal on x & y) x y (2, 2, 0)(7, 2, 0) (2, 5, 0)(7, 5, 0) z 1

© Fraunhofer IGD Two objects in one scene Now with translation

© Fraunhofer IGD Two objects in one scene Now with translation x y z 1

© Fraunhofer IGD The scene graph: Grouping and transformations 3D elements are usually organized hierarchically Starting from the root node (i.e. from element) all 3D elements (e.g., etc.) are inserted into the “tree” (scene graph) as child or sibling elements Note: tree ≠ graph and elements help to group and reposition objects: …

© Fraunhofer IGD DOM Manipulation: Node appending / removal HTML/X3D code: … JS script to add nodes: root = document.getElementById(‘root’); trans = document.createElement('Transform'); trans.setAttribute(‘translation’, ‘1 2 3’ ); root.appendChild(trans); JS script to remove nodes: root.removeChild(trans); JS script with setAttribute() (also useful for libs like jQuery): document.getElementById(‘mat’).setAttribute(‘diffuseColor’,’red’);

© Fraunhofer IGD How do I know, which elements can be combined? Titel, Ort, Datum - Vorname Name48 PPT_Master_IGD_v ppt

© Fraunhofer IGD How do I know, which elements can be combined?  Back to the roots: VRML Transform { translation children [ Shape { appearance Appearance { material Material { diffuseColor } geometry IndexedFaceSet { coord Coordinate { point [ 0 0 0, 1 0 0, 1 1 0, ] } coordIndex [ , ] } ] } Titel, Ort, Datum - Vorname Name49 PPT_Master_IGD_v ppt

© Fraunhofer IGD HTML Events: user interaction through DOM Events …

© Fraunhofer IGD HTML Events: user interaction through DOM Events - V2 document.onload = function() { document.getElementById('box').addEventListener('click', function() { document.getElementById('mat').setAttribute('diffuseColor', 'olive'); }, false) };

© Fraunhofer IGD Efficient Picking and Interaction  JS-based SG traversal slow  Using „picking buffer“ instead  WebGL limitations  8 bit RGBA texture  No MRT in FBO  Single-pass render-buffer  Get position, normal and object ID within one step/pass

© Fraunhofer IGD Efficient Picking and Interaction  Single-pass render-buffer approach  Distance d to camera in RG channel (16 bit)  Object- or per-vertex id in BA channel (16 bit)  Allows identifying up to different objects  Normal vectors derived using 2 × 2 window  Important for navigation and interaction  Read back 4 values instead of only one  Calculate cross product

© Fraunhofer IGD HTML Events: 3DPickEvent extends DOM MouseEvent interface 3DPickEvent : MouseEvent { readonly attribute float worldX; // 3d world coordinates at pick position readonly attribute float worldY; readonly attribute float worldZ; readonly attribute float normalX; // picked surface normal readonly attribute float normalY; readonly attribute float normalZ; … } … function updateTrafo(event) { var t = document.getElementById(‘trafo‘); var norm = new x3dom.fields.SFVec3f(event.normalX, event.normalY, event.normalZ); var qDir = x3dom.fields.Quaternion.rotateFromTo(new x3dom.fields.SFVec3f(0, 1, 0), norm); var rot = qDir.toAxisAngle(); t.setAttribute('rotation', rot[0].x+' '+rot[0].y+' '+rot[0].z+' '+rot[1]); t.setAttribute('translation', event.worldX+' '+event.worldY+' '+event.worldZ); }

© Fraunhofer IGD X3DOM Math Lib SFVec3f copy(v) parse( str) setValues(that) at(i) add(that) addS caled(that,s) subtract(t hat) negate() dot(th at) cross(that) reflec t(n) length() normali ze(that) multComponen ts(that) multiply(n) d ivide(n) equals(that,eps ) toGL() toString() setValueByStr(str) Titel, Ort, Datum - Vorname Name55 PPT_Master_IGD_v ppt Quaternion parseAxisAngle(str) axisAngle(axis,a) rotateFromTo(fromVec,toVec) multiply(that) toMatrix() toAxisAngle() angle() setValue(matrix) dot(that) add(that) subtract(that) setValues(that) equals(that,eps) multScalar(s) normalize(that) negate() inverse() slerp(that,t) toGL() toString() setValueByStr(str) SFColor parse(str) colorParse(color) setValues(color) equals(that,eps) add(that) subtract(that) multiply(n) toGL() toString() setValueByStr(str) SFColorRGBA parse(str) setValues(color) equals(that,eps) toGL() toString() setValueByStr(str)

© Fraunhofer IGD X3DOM Math Lib SFMatrix4f copy(that) identity() zeroMatrix() translation(vec) rotationX(a) rotationY(a) rotationZ(a) scale(vec) lookAt(from,at,up) parseRotation(str) parse(str) e0() e1() e2() e3() setTranslate(vec) setScale(vec) Titel, Ort, Datum - Vorname Name56 PPT_Master_IGD_v ppt mult(that) multMatrixPnt(vec) multMatrixVec(vec) multFullMatrixPnt(vec) transpose() negate() multiply(s) add(that) addScaled(that,s) setValues(that) setValue(v1,v2,v3,v4) toGL() at(i,j) sqrt() normInfinity() norm1_3x3() normInf_3x3() adjointT_3x3() equals(that) getTransform(translation, rotation,scaleFactor, scaleOrientation,center) decompose(t,r,s,so) polarDecompose(Q,S) spectralDecompose(SO,k) log() exp() det3(a1,a2,a3,b1,b2,b3, c1,c2,c3) det() inverse() toString() setValueByStr(str) Example Basic decomposition of x3dom.fields.SFMatrix4f (given as mat) var quat = new x3dom.fields.Quaternion(0, 0, 1, 0); quat.setValue(mat); var rotation = rot.toAxisAngle(); var translation = mat.e3(); Example Basic decomposition of x3dom.fields.SFMatrix4f (given as mat) var quat = new x3dom.fields.Quaternion(0, 0, 1, 0); quat.setValue(mat); var rotation = rot.toAxisAngle(); var translation = mat.e3();

© Fraunhofer IGD element Part of DOM/ HTML document like every other HTML element (e.g., etc.) element Part of DOM/ HTML document like every other HTML element (e.g., etc.) document.getElementById('body_color'). setAttribute("diffuseColor", '#000066'); Click on element… Interaction via standard Web technologies (e.g. JavaScript Events etc.) …causes attribute change of url (i.e., other wheel rims appear) Example 1: Interactive Car Configurator Using HTML + JavaScript, to change color and rims

© Fraunhofer IGD Example 2: Painting Textures of 3D Objects element Part of DOM/ HTML document like every other HTML element (JavaScript implementation based on new WebGL API of HTML5 element) element Part of DOM/ HTML document like every other HTML element (JavaScript implementation based on new WebGL API of HTML5 element) jQuery UI (User Interface) jQuery JavaScript library: jQuery UI (User Interface) jQuery JavaScript library: HTML5 element Painted image used as texture on 3D object HTML5 element Painted image used as texture on 3D object

© Fraunhofer IGD Application (Large Data and Picking): 3D-Internet Design Review 59

© Fraunhofer IGD Navigation: moving the virtual camera interactively  Built-in navigation modes  Examine, walk, fly, lookat, game, helicopter and none   Abstract behavior dynamically maps to various user inputs: mouse, keys, multi-touch  Application-specific navigation  Use nav. type ‘none’  Move camera by updating position and orientation of

© Fraunhofer IGD Animations CSS 3D Transforms & CSS Animation  Utilized to transform and update nodes (WebKit version) #trans { -webkit-animation: spin 8s infinite linear; spin { from { -webkit-transform: rotateY(0); } to { -webkit-transform: rotateY(-360deg); } } …

© Fraunhofer IGD Animations X3D TimeSensor and Interpolator nodes <orientationInterpolator id="oi" key=" " keyValue=" , , "> <ROUTE fromNode='ts' fromField='fraction_changed' toNode='oi' toField='set_fraction'> <ROUTE fromNode='oi' fromField='value_changed' toNode='trafo' toField='set_rotation'> The „ts“ triggers via the first ROUTE the „oi“, which provides the values for the rotation around the y-axis (0,1,0) The resulting value is then ROUTE‘d to the field ‘rotation’ of the node “trafo”, which results in an animation

© Fraunhofer IGD Entry points for getting started Some books “X3D: Extensible 3D Graphics for Web Authors” “The Annotated VRML 97 Reference” (explains concepts) X3DOM online documentation and code examples (tutorials and docs) (12 simple examples) (7 examples with animation) (lots of feature tests) More docs and tools (InstantPlayer and aopt converter) (links to X3D)

© Fraunhofer IGD Conclusions  Development costs: Web developer vs. graphics expert  Adaptability: Declarative material abstraction allows shading adoption per client hardware (e.g. GLSL, ray-tracing…)  Efficiency: UI events, culling, rendering can be implemented in native code, thus utilizes battery resources efficiently  Accessibility: High level navigation and interaction styles allow very late adaptations for specific use cases  Metadata: Allow indexing and searching content  Mash-ups: Asset reuse in new context  Security: No plugins or even direct GPU calls necessary  Powerful Abstraction for Web Applications Titel, Ort, Datum - Vorname Name64 PPT_Master_IGD_v ppt

© Fraunhofer IGD X3DOM – Declarative (X)3D in HTML5 Introduction and Tutorial Thank You! Questions?