WebGL and the Three-D Internet. Hugh Fisher CECS ANU 2013

Similar documents
Next Generation OpenGL Neil Trevett Khronos President NVIDIA VP Mobile Copyright Khronos Group Page 1

WebGL (Web Graphics Library) is the new standard for 3D graphics on the Web, designed for rendering 2D graphics and interactive 3D graphics.

Visual HTML5. Human Information Interaction for Knowledge Extraction, Interaction, Utilization, Decision making HI-I-KEIUD

CS450/550. Pipeline Architecture. Adapted From: Angel and Shreiner: Interactive Computer Graphics6E Addison-Wesley 2012

PROFESSIONAL. WebGL Programming DEVELOPING 3D GRAPHICS FOR THE WEB. Andreas Anyuru WILEY. John Wiley & Sons, Ltd.

Topics. Overview of VRML 97 VRML Today After VRML

API Background. Prof. George Wolberg Dept. of Computer Science City College of New York

Real - Time Rendering. Graphics pipeline. Michal Červeňanský Juraj Starinský

Ciril Bohak. - INTRODUCTION TO WEBGL

Graphics Hardware. Graphics Processing Unit (GPU) is a Subsidiary hardware. With massively multi-threaded many-core. Dedicated to 2D and 3D graphics

Dave Shreiner, ARM March 2009

Models and Architectures

WebGL Meetup GDC Copyright Khronos Group, Page 1

2: Introducing image synthesis. Some orientation how did we get here? Graphics system architecture Overview of OpenGL / GLU / GLUT

Introduction to 2D Graphics

ArcGIS Runtime: Maximizing Performance of Your Apps. Will Jarvis and Ralf Gottschalk

Neil Trevett Vice President Mobile Ecosystem, NVIDIA President, Khronos Group. Copyright Khronos Group Page 1

Copyright Khronos Group Page 1. Vulkan Overview. June 2015

Per-Pixel Lighting and Bump Mapping with the NVIDIA Shading Rasterizer

Enhancing Traditional Rasterization Graphics with Ray Tracing. October 2015

Building scalable 3D applications. Ville Miettinen Hybrid Graphics

CSE 591: GPU Programming. Introduction. Entertainment Graphics: Virtual Realism for the Masses. Computer games need to have: Klaus Mueller

Computer Graphics Lecture 2

Introduction to Computer Graphics with WebGL

Qiufeng Zhu Advanced User Interface Spring 2017

3D on the Web Why We Need Declarative 3D Arguments for an W3C Incubator Group

Copyright Khronos Group Page 1

CHAPTER 1 Graphics Systems and Models 3

WebGL. Announcements. WebGL for Graphics Developers. WebGL for Web Developers. Homework 5 due Monday, 04/16. Final on Tuesday, 05/01

OPENGL RENDERING PIPELINE

Real-Time Rendering (Echtzeitgraphik) Michael Wimmer

Course Recap + 3D Graphics on Mobile GPUs

Shaders. Slide credit to Prof. Zwicker

Overview and AR/VR Roadmap

CSE 591/392: GPU Programming. Introduction. Klaus Mueller. Computer Science Department Stony Brook University

CS451Real-time Rendering Pipeline

LOD and Occlusion Christian Miller CS Fall 2011

WebGL A quick introduction. J. Madeira V. 0.2 September 2017

CS427 Multicore Architecture and Parallel Computing

Real-Time Graphics Architecture

Distributed Virtual Reality Computation

Graphics Programming. Computer Graphics, VT 2016 Lecture 2, Chapter 2. Fredrik Nysjö Centre for Image analysis Uppsala University

Instructor. Goals. Image Synthesis Examples. Applications. Foundations of Computer Graphics. Why Study 3D Computer Graphics?

MAC BASICS For MacBooks & imacs MacOS Mojave Part 5: WEB BROWSERS

C P S C 314 S H A D E R S, O P E N G L, & J S RENDERING PIPELINE. Mikhail Bessmeltsev

Etanova Enterprise Solutions

3D Computer Games Technology and History. Markus Hadwiger VRVis Research Center

Rendering Algorithms: Real-time indirect illumination. Spring 2010 Matthias Zwicker

CONSOLE ARCHITECTURE

HTML5 Evolution and Development. Matt Spencer UI & Browser Marketing Manager

CSE 167: Lecture #8: GLSL. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2012

Rendering Objects. Need to transform all geometry then

Vulkan 1.1 March Copyright Khronos Group Page 1

Advanced Computer Graphics

3D webservices - where do we stand? Emmanuel Belo

Graphics Architectures and OpenCL. Michael Doggett Department of Computer Science Lund university

COMP Preliminaries Jan. 6, 2015

WebGL. WebGL. Bring 3D to the Masses. WebGL. The web has text, images, and video. We want to support. Put it in on a webpage

Graphics and Imaging Architectures

Spring 2009 Prof. Hyesoon Kim

Could you make the XNA functions yourself?

Development of Computer Graphics

SIGGRAPH Briefing August 2014

Spring 2011 Prof. Hyesoon Kim

Lecturer Athanasios Nikolaidis

Many rendering scenarios, such as battle scenes or urban environments, require rendering of large numbers of autonomous characters.

WebGL and GLSL Basics. CS559 Fall 2015 Lecture 10 October 6, 2015

TSBK03 Screen-Space Ambient Occlusion

Introduction. (Thanks to Professions Andries van Dam and John Hughes) CMSC 635 January 15, 2013 Introduction # /16

Water Simulation on WebGL and Three.js

Mobile Graphics Ecosystem. Tom Olson OpenGL ES working group chair

CS452/552; EE465/505. Finale!

Programming Graphics Hardware

Lecture 13: OpenGL Shading Language (GLSL)

COMP 4801 Final Year Project. Ray Tracing for Computer Graphics. Final Project Report FYP Runjing Liu. Advised by. Dr. L.Y.

Render-To-Texture Caching. D. Sim Dietrich Jr.

3D Rendering Pipeline

ECE 571 Advanced Microprocessor-Based Design Lecture 18

AR Standards Update Austin, March 2012

ECE 571 Advanced Microprocessor-Based Design Lecture 20

The Traditional Graphics Pipeline

Adaptive Point Cloud Rendering

TSBK 07! Computer Graphics! Ingemar Ragnemalm, ISY

Khronos and the Mobile Ecosystem

Introduction to X3D. Roberto Ranon HCI Lab University of Udine, Italy

CS 4620 Program 3: Pipeline

City of Mobile GIS Web Mapping Applications: New Technology, New Expectations

CS 450: COMPUTER GRAPHICS REVIEW: INTRODUCTION TO COMPUTER GRAPHICS SPRING 2016 DR. MICHAEL J. REALE

Books: 1) Computer Graphics, Principles & Practice, Second Edition in C JamesD. Foley, Andriesvan Dam, StevenK. Feiner, John F.

Introduction. What s New in This Edition

CS4621/5621 Fall Computer Graphics Practicum Intro to OpenGL/GLSL

Corey Clark PhD Daniel Montgomery

WebGL and GLSL Basics. CS559 Fall 2016 Lecture 14 October

POWERVR MBX & SGX OpenVG Support and Resources

GoForce 3D: Coming to a Pixel Near You

OpenGL BOF Siggraph 2011

Pipeline Operations. CS 4620 Lecture Steve Marschner. Cornell CS4620 Spring 2018 Lecture 11

Adding Advanced Shader Features and Handling Fragmentation

Visibility optimizations

Introduction to Computer Graphics. Knowledge basic concepts 2D and 3D computer graphics

Transcription:

WebGL and the Three-D Internet Hugh Fisher CECS ANU 2013

The Vision: origins of cyberspace The rendering problem VRML: the grand attempt XAML: the Microsoft web gets 3D WebGL: what it can do The Future? Overview 2

Prototypes in 1984 VR Ivan Sutherland, USAF Internet ARPAnet running TCP/IP MUDs and MOOs Shared worlds with hundreds of users All very expensive and/or exclusive The Vision 3

1984: Neuromancer by William Gibson Keystone of the cyberpunk science fiction genre Defined cyberspace Cyberspace... A graphic representation of data abstracted from the banks of every computer in the human system... Lines of light ranged in the nonspace of the mind, clusters and constellations of data... 4

VR no longer experimental SGI purple workstations VPL DataGlove, EyePhone Garage VR 386 PCs with 3DFX Voodoo Miniature LCD TV displays World Wide Web Internet beyond universities The 1990s VR Boom 5

The web grew exponentially Unthinkable complexity now reality The web was interactive And hypertext was new No physical equivalent, unlike email The web user interface was primitive Forms and round trip per page IBM 3270 with pictures What should it become? 6

Johnny Mnemonic copyright Tristar Pictures 1995 7

The road not taken 1981 True Names by Vernor Vinge A world wide computer networked virtual reality Magical metaphors: wizards and spells The Other Plane Why didn t this succeed? Fantasy outsells science fiction! 8

Scene must be rendered Model is geometry, textures, lights, materials,... Displayed as 2D raster image As seen from viewpoint, digital camera In realtime Unlike CGI, don t control viewpoint Where to render? Model stored on server(s) Displayed on client device Client or Server Side? 9

Google Earth, World of Warcraft Server sends 3D scene to client Current room at least Can use LOD techniques progressive download Client renders with own GPU 3D accelerator before 2000 No round trip for interaction Faster response to keyboard / mouse Unless multi user Client Side 10

Must write client side application MacOS vs MS Windows vs Android... Must allow for different capabilities RAM? Disk space? Screen resolution? Must allow for different GPUs NVIDIA vs ATI vs PowerVR... Shader Model 3? 4? 5? Disadvantages 11

Server renders scene Sends 2D images to client Client tells server what resolution required Client much simpler Both hardware and software Anything that can receive streamed video Server Side 12

Round trip delay on all input Even for single user case Disadvantages Needs constant downstream bandwidth Client side can handle slow initial download Can t buffer stream to avoid jitter User will not accept being 10 seconds behind Can t use asymmetrical compression MPEG etc not designed real time encoding Extra copy back from GPU Client side is CPU -> GPU -> display Server side CPU -> GPU -> CPU -> network 13

Server side 3D does not scale Horrible context swap overhead All textures and scene data stored in GPU RAM Must reload for different scene No virtual memory Very deep GPU pipelines Expect to run to completion on frame Not designed for many short tasks Need (almost) one GPU per user For peak load, not just average Electricity, heat dissipation Even Worse... 14

Server side doesn t scale Client side is hard (Cross platform applications always hard) Web browser is universal client Handles text and 2D (raster) graphics Create HTML, no need for new applications Example: E-book readers Extend web browsers to 3D? Create 3D scenes, no new applications? 15

Virtual Reality Modelling Language VRML Tony Parisi and Mark Pesce Developed as open standard VRML First version static scenes VRML 2 / 97 Animation and event handling Javascript 16

Based on SGI Inventor High level OpenGL library Hierarchical scene graph Nested transformations DEF nodes for multiple parents Geometry High level: spheres, cylinders,... Low level: triangles, indexed face sets,... OpenGL 1 Gouraud shading Point, directional, spot lights Ambient, diffuse, specular material Texture maps 17

Built in navigation Walk, fly, or third person Programmable viewpoints Events and routes User input, timers Change transformations, visibility, properties VRML 2: JavaScript 3D picking Clickable nodes Menus and buttons Generate events 18

Integrated into web Branches could be loaded from URLs Single scene from multiple servers Nodes could be anchors Click on node, jump to new location Including existing web sites Superset of existing web 19

Technology not ready? Late 1990s PC were good at 3D Internet bubble burst? Web kept growing Not multiuser? Special viewers like Blaxxun Maybe in VRML 3? What Went Wrong? 20

A better solution to unthinkable complexity 21

VRML is not dead Good interchange format UTF-8, regular syntax Matches OpenGL 1.x, DirectX 7 to 9 Good for special purpose programs CSIRO haptic surgery programs New viewers and plugins Recommend Cortona 3D 22

Windows Presentation Foundation Major redesign and rewrite of MS Windows APIs Based on.net managed runtime 2D / 3D for modern GPUs XAML Dynamic web programming, Microsoft style WPF for web browsers Could run on MacOS, Linux Intended for viewing 3D models Not VR or games XAML 23

Extended XML syntax Need arrays of floating point Hierarchical scene graph Nested transformations Reference nodes with multiple parents Geometry No high level spheres, cylinders, etc Low level: triangles, indexed face sets Auto calculation of surface normals, tex coords No GPU shaders Point, directional, spot lights Ambient, diffuse, specular material Texture maps 24

Events and routes User input, timers Change transformations, visibility, properties Integrated 2D text, graphics Use 2D content as texture maps Missing Built in navigation 3D picking Anchor nodes 25

WBAP.NET web applications Like Java, browser downloads and runs XAML models loaded into app More complex event handling 3D picking Jump to new locations What went wrong? 26

End of plugins 27

New era of mobile web iphone: no plugins Obsoleted Flash, Silverlight as collateral damage MS internal politics.net, WPF out of favour MS very enthusiastic about HTML 5 No future for XAML? Backwards compatibility only in Windows 8 No new versions Not recommended for developers 28

WebGL OpenGL API for JavaScript SVG is API for 2D vector graphics WebGL for 3D New typed arrays for JS VRML, XAML describe scenes Retained mode Data: can be stored, copied, exchanged WebGL is code Immediate mode Programs, not documents 29

OpenGL 2 ES Embedded Systems iphone Android Consoles 3D assembly language Points, lines, triangles Texture maps GPU shaders That s it! 30

Scene graph No nested transformations Can t attach scenes from other servers High level geometry No spheres, Beziers, quads Built-in lights, materials Have to write shaders Advanced GPU capabilities Geometry or tessellation shaders Instanced rendering 3D picking Missing from WebGL 31

Extensions? Traditional way to extend OpenGL Runtime check for new capabilities Yes... WebGL includes API for extensions... No Only official WebGL extensions Not OpenGL V3/4 32

High entry barrier OpenGL 2 API and GLSL Toolkits You can build exactly the high level functions you want Worked with jquery for AJAX Hasn t happened with desktop OpenGL 3/4 three.js, spider.js,... 33

Does it have to be this hard? Lines of code for shaded cube in web page Single light source, diffuse material, no texture mapping 1997 VRML 14 2007 XAML 76 2012 WebGL 2,277 34

MacOS Safari Most desktop Firefox Most desktop Chrome Some Android Availability (Dec 2012) No ithing Capability is there, Apple haven t enabled No Internet Explorer Plugins available 35

WebGL Growth 60% of all statistics are made up on the spot 36

Networks are better Much more bandwidth available Less need for compression, LOD schemes GPUs are better iphone more powerful than SGI workstations The web is much, much, larger Soon a billion WebGL-capable smartphones 1% market will exceed best selling console games WebGL will succeed? 37

Internet 2021? Google Glass Microsoft Kinect 38

learningwebgl.com cs.anu.edu.au/~hugh.fisher/webgl/ Questions? 39