© Copyright Khronos Group, 2011 - Page 1 WebGL, WebCL and Beyond! Neil Trevett Vice President Mobile Content, NVIDIA President, The Khronos Group.

Slides:



Advertisements
Similar presentations
COMPUTER GRAPHICS CS 482 – FALL 2014 NOVEMBER 10, 2014 GRAPHICS HARDWARE GRAPHICS PROCESSING UNITS PARALLELISM.
Advertisements

Graphics Pipeline.
FireMonkey Deep Dive The Next Generation of Business Application Development.
Android Platform Overview (1)
HTML5 Haptics Standardization
GPGPU Introduction Alan Gray EPCC The University of Edinburgh.
Android 4.0 ICS An Unified UI framework for Tablets and Cell Phones Ashwin. G. Balani, Founder Member, GTUG, Napur.
DEV392: Extending SharePoint Products And Technologies Through Web Parts And ASP.NET Clint Covington, Program Manager Data And Developer Services - Office.
Rasterization and Ray Tracing in Real-Time Applications (Games) Andrew Graff.
DEPARTMENT OF COMPUTER ENGINEERING
ANDROID OPERATING SYSTEM Guided By,Presented By, Ajay B.N Somashekar B.T Asst Professor MTech 2 nd Sem (CE)Dept of CS & E.
Mobile Application Development
GPU Graphics Processing Unit. Graphics Pipeline Scene Transformations Lighting & Shading ViewingTransformations Rasterization GPUs evolved as hardware.
Introduction to Android Platform Overview
To be Presented by, T.Sathishkumar [11mw07] 1. Synopsis Introduction Version Features License An Application Development Demo Possibilities Advantages.
Web Design Basic Concepts.
Android Introduction Platform Overview.
Declarative 3D for the Web Architecture Web3D 2012 Workshop Johannes Behr, Kristian Sons.
HTML 5 New Standardization of HTML. I NTRODUCTION HTML5 is The New HTML Standard, New Elements New Attributes Full CSS3 Support Video and Audio 2D/3D.
WebGL Patrick Cozzi University of Pennsylvania CIS Spring 2012.
2 A First Look at Windows Presentation Foundation Everywhere ("WPF/E") Joe Stegman Lead Program Manager Microsoft Corporation.
© Copyright Khronos Group, Page 1 The State of the Union Update from the Working Group Chair Tom Olson, Texas Instruments Inc.
MACHINE VISION GROUP Graphics hardware accelerated panorama builder for mobile phones Miguel Bordallo López*, Jari Hannuksela*, Olli Silvén* and Markku.
CS 480/680 Computer Graphics Course Overview Dr. Frederick C Harris, Jr. Fall 2012.
GIS technologies and Web Mapping Services
© Copyright Khronos Group, Page 1 ARB Update June 2002.
@2011 Mihail L. Sichitiu1 Android Introduction Platform Overview.
Copyright© Jeffrey Jongko, Ateneo de Manila University Android.
Fundamentals of Database Chapter 7 Database Technologies.
Chris Kerkhoff Matthew Sullivan 10/16/2009.  Shaders are simple programs that describe the traits of either a vertex or a pixel.  Shaders replace a.
HTML5 for Mobile Andrew Kinai. HTML vs HTML5 HTML:A language that describes documents' formatting and content, which is basically composed of static text.
ANDROID 응용 프로그래밍 과정 – 목차 - 안드로이드란 - 안드로이드가 만들어지게 된배경 - 안드로이드의 철학 - 안드로이드 환경설정 ( SDK download, eclipse plug-in 설정, 간단한 프로그램 실행 ) - 안드로이드 동작원리 - 안드로이드 핵심.
CS 480/680 Intro Dr. Frederick C Harris, Jr. Fall 2014.
به نام خدا تنظیم کننده : فرانه حدادی استاد : مهندس زمانیان تابستان 92.
1 Geospatial and Business Intelligence Jean-Sébastien Turcotte Executive VP San Francisco - April 2007 Streamlining web mapping applications.
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.
1 Latest Generations of Multi Core Processors
Created By. Jainik B Patel Prashant A Goswami Gujarat Vidyapith Computer Department Ahmedabad.
© Copyright Khronos Group, Page 1 OpenGL ES SIGGRAPH 2006 Neil Trevett Vice President Embedded Content, NVIDIA President, Khronos.
Advanced Computer Graphics Spring 2014 K. H. Ko School of Mechatronics Gwangju Institute of Science and Technology.
Contents : What is Silverlight? Silverlight Overview Silverlight Toolkit Overview Timeline & Packaging Silverlight V1.0 & V1.1 Properties of V1.0 Properties.
Web Design and Development. World Wide Web  World Wide Web (WWW or W3), collection of globally distributed text and multimedia documents and files 
Computer Graphics 3 Lecture 6: Other Hardware-Based Extensions Benjamin Mora 1 University of Wales Swansea Dr. Benjamin Mora.
Mobile: Today and Beyond Stuart Parmenter, Director of Mobile
© Copyright Khronos Group, Page 1 Khronos and OpenGL ES Status Neil Trevett Vice President Embedded Content, NVIDIA President, Khronos.
1 Introduction to Computer Graphics with WebGL Ed Angel Professor Emeritus of Computer Science Founding Director, Arts, Research, Technology and Science.
From Turing Machine to Global Illumination Chun-Fa Chang National Taiwan Normal University.
Internet Explorer 10 IE9 hardware-accelerated platform CSS 2D Transforms CSS Backgrounds & Borders CSS Color CSS Fonts CSS Media Queries CSS Namespaces.
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.
GPU Computing for GIS James Mower Department of Geography and Planning University at Albany.
An Introduction to the Cg Shading Language Marco Leon Brandeis University Computer Science Department.
® ® copyright © 2013 Open Geospatial Consortium What HTML5 and REST mean to the Geo community Raj Singh, PhD Open Geospatial Consortium
By Adam Reimel. Outline Introduction Platform Architecture Future Conclusion.
丁建文 國立高雄應用科大資管系副教授 兼任計網中心軟體發展組組長 跨平台行動應用軟體開發技術 : HTML5 & Mobile JavaScript Framework 暨南大學.
Heterogeneous Processing KYLE ADAMSKI. Overview What is heterogeneous processing? Why it is necessary Issues with heterogeneity CPU’s vs. GPU’s Heterogeneous.
BY : MS ARTI B BAVANE. INTRODUCTION Formed on February 15,2010. Jointly found by two pillars Intel and Nokia by joining their existing open source projects.
The world’s most advanced mobile platform
Mobile App Development
WebGL The HTML5/JavaScript 3D Computer Graphics API
OpenCL 소개 류관희 충북대학교 소프트웨어학과.
Enabling machine learning in embedded systems
Texas Instruments TDA2x and Vision SDK
Web3D Consortium X3DOM: Next-Generation Web3D Applications on Open Standards and Open Source Web3D Consortium
Graphics Processing Unit
Introduction to OpenGL
The Graphics Rendering Pipeline
Introduction to Computer Graphics with WebGL
CIS 441/541: Introduction to Computer Graphics Lecture 15: shaders
WebGL: Latest Techniques
Introduction to OpenGL
Presentation transcript:

© Copyright Khronos Group, Page 1 WebGL, WebCL and Beyond! Neil Trevett Vice President Mobile Content, NVIDIA President, The Khronos Group

© Copyright Khronos Group, Page 2 Topics in this Session Quick introduction to 3D The need for acceleration APIs OpenGL ES and WebGL WebGL tools and frameworks Beyond 3D – WebCL for compute Augmented Reality in the browser? Questions Next Session – Mo Zhenyao from Google Hands on with WebGL

© Copyright Khronos Group, Page 3 What is Real-time 3D Graphics?

© Copyright Khronos Group, Page 4 3D has evolved over more than 30 years ‘Doom’ on a PC – 1993 id Software ‘Samaritan’ Real-time Demo on a PC – 2011 Epic Unreal Engine

© Copyright Khronos Group, Page 5 3D Pipeline Basics The art of “faking” realistic looking scenes or objects using heuristic techniques learned over the years The objects making up a scene are held in a database Surfaces of objects are broken down into a grid of polygons The vertices of the polygons are located in 3D coordinate space - x,y,z Each vertex has a “material” – color and reflective properties Vertices are positioned in 3D space – matrix math zooms and rotates x1,y1,z1 x2,y2,z2 x3,y3,z3 x y z

© Copyright Khronos Group, Page 6 3D Pipeline Basics – Pixel Shading Project each polygon onto the screen - Determine which pixels are affected Smooth Shading - Run lighting equation at each vertex - Compute vertex color depending on how lights interact with surface angles and properties - Interpolate colors between the vertices Texture Mapping - “Wallpaper” each polygon with an image - For each pixel compute image coordinates in image to paste Environment Mapping - Paste reflection of image of environment at each pixel Lighting equation each vertex Interpolate colors between vertices

© Copyright Khronos Group, Page 7 Fundamental 3D Processing Stages Traversal Transforms Lighting Rasterize Color Clip Write Geometry Rasterization What objects are in current scene? What color are the polygons? What shape are they on the screen? What color is each pixel? Which pixels are visible? Write the pixels to the framebuffer Operations on Vertices Operations on Pixels Where are the polygons?

© Copyright Khronos Group, Page 8 Actual 3D Pipelines

© Copyright Khronos Group, Page 9 Khronos - Connecting Software to Silicon Creating open, royalty-free acceleration API standards - Focus on graphics, dynamic media, compute and sensor hardware Low-level - just above raw silicon - “Foundation” functionality needed on every platform Safe forum for industry cooperation - ‘By the industry for the industry’ - Open to any company to join - IP framework to protect members and industry APIs enable software developers to turn silicon functionality into rich end user experiences

© Copyright Khronos Group, Page 10 Board of Promoters Over 100 members – any company worldwide is welcome to join Apple

© Copyright Khronos Group, Page 11 Khronos Ecosystem of Standards Khronos creates royalty-free specifications to meet real market needs and helps drive industry adoption across multiple platforms Embedded and Mobile 3D Parallel Computing 3D Digital Asset Exchange format Advanced Audio Vector 2D Cross platform desktop 3D Plugin-free 3D Web Content Unified Sensor and Input Processing StreamInput Camera, Images and Streaming Media Surface Management Web Compute

© Copyright Khronos Group, Page 12 Mobile Silicon Experiential Processing HD Video Decode DecodeProcessor AudioProcessor 2D/3DGraphicsProcessor Cortex A9 Processor Processor ARM 7 ImageProcessor HD Video Encode EncodeProcessor

© Copyright Khronos Group, Page 13 Mobile Roadmap Acceleration PERFORMANCE WAYNE TEGRA 2 KAL-EL 5x LOGAN 10 Core 2 Duo – Macbook Air STARK 10x 50x 75x Production Devices

© Copyright Khronos Group, Page 14 A Lot More than Just “More HTML” Rich Experiential Processing Multi-core CPUs Rich 2D and 3D GPU GPU Computing Multiple HD cameras Image and vision processing Video encode/decode Audio encode/decode Inertial and positional sensors How can the Browser rapidly assimilate such diverse functionality?

© Copyright Khronos Group, Page 15 What is OpenGL ES? OpenGL for embedded and mobile devices - Eliminates redundant and legacy features - Adds extensions to make it mobile-friendly The dominant 3D API for mobile devices - Widely adopted for STB, DTV, automotive,… - Hundreds and hundreds of millions shipped Runs high-end content and engines - UE3, Unity, Unigine, Rage

© Copyright Khronos Group, Page 16 OpenGL ES Pipelines Based on OpenGL 1.5 Vertex Arrays / Buffer Objects Transform & Lighting Multi-texturing (min 2 units) Based on OpenGL 2.0 Removes fixed function pipeline High level language (GLSL ES) Super-compact, efficient API

© Copyright Khronos Group, Page 17 WebGL – 3D on the Web – No Plug-in! Historic opportunity to bring accelerated 3D graphics to the Web - WebGL defines JavaScript binding to OpenGL ES 2.0 Leveraging HTML5 and uses element - Enables a 3D context for the canvas JavaScript is easily fast enough now for visual computing - Plus OpenGL ES 2.0 enables local geometry caching and GPGPU computation Availability of OpenGL and OpenGL ES on almost every web-capable device JavaScript binding to OpenGL ES 2.0 HTML5 Canvas Tag and increasing JavaScript performance Being defined by major browsers and GPU vendors working together

© Copyright Khronos Group, Page 18 OpenGL Ecosystem – 3D Everywhere Leading-edge functionality developed first on desktop OpenGL ES 2.0 on desktop as subset of OpenGL 4.2 for mobile content flexibility – including native support for WebGL WebGL driving new- generation security features into OpenGL family Mobile functionality subset that is deployed on billions of devices Pervasive OpenGL ES 2.0 availability enables Browser vendors to build 3D directly into HTML5

© Copyright Khronos Group, Page 19 Content JavaScript, HTML, CSS,... Content JavaScript, HTML, CSS,... WebGL Implementation Anatomy JavaScript Middleware WebGL HTML5 JavaScript CSS Browser provides WebGL functionality alongside other HTML5 specs - no plug-in required OS Provided Drivers. WebGL on Windows can use Google Angle to create conformant OpenGL ES 2.0 over DX9 OpenGL ES 2.0 OpenGL DX9/Angle Content downloaded from the Web. Middleware can make WebGL accessible to non-expert 3D programmers

© Copyright Khronos Group, Page 20 HTML5 Content Architecture CSS Layout and Transforms Video, Vector Graphics and 3D created off-screen buffers HTML content generated by layout engine ‘on page’ Composition of off-screen buffers tag JavaScript drives interactivity for 2D and 3D graphics All content passes through CSS layout Composition needs to be GPU accelerated

© Copyright Khronos Group, Page 21 WebGL and HTML Interaction 3D is not trapped in a rectangular window - 3D can overlay and underlay HTML content - Easy to make 2D HTML HUDs or 3D user interfaces Strong ties with other advanced HTML5 - WebGL can use HTML5 or canvas as a texture Can use 3D for core Web UI – as well as content - Advanced transforms and special effects Render HTML DOM sub-tree as texture - Mozilla and Google prototyping as extension - Support user interaction when in 3D

© Copyright Khronos Group, Page 22 WebGL Deployment WebGL 1.0 Released at GDC March Mozilla, Apple, Google and Opera working closely with GPU vendors Typed array 1.0 spec ratified by Khronos in May - Supporting bulk data transfer between threads (workers) - Many use cases - background mesh loading, generation, deformation, physics release of WebGL spec and conformance suite imminent - 100% robust stance on security - Fixing bugs in conformance suite - Implementations will report getContext("webgl") (not experimental) WebGL is not enabled by default in Safari

© Copyright Khronos Group, Page 23 Aquarium Demo On PC and Android

© Copyright Khronos Group, Page 24 Frameworks and Tools WebGL is deliberately low level to enable the full power and flexibility of OpenGL ES 2.0 If you are not an expert 3D programmer – don’t panic! WebGL is perfect foundational layer for JavaScript middleware frameworks Lots of utilities and tools already appearing

© Copyright Khronos Group, Page 25 WebGL Security Any new functionality in the browser increases exposure to attack - True since the beginning of the web – the new functionality becomes hardened ANY graphics in the browser need the GPU drivers to be hardened - HTML, Canvas, WebGL, Adobe Molehill, Silverlight 5 … WebGL is designed with security as the highest priority - Hardening is being strongly promoted and enabled Short term – browser vendors will maintain white and black lists - Compromised system can have WebGL disabled until mitigation developed Longer term – GPUs provide increasingly robust security and multi-tasking - GPU becoming a first-class computing platform alongside CPU

© Copyright Khronos Group, Page 26 WebGL Security in the Press! Confusion in the industry as we start this hardening process - Shader programs cannot access general system resources or perform out of range memory access! Issues in the Press - Cross domain image access – timed loop attack – SOLVED! - WebGL and HTML spec updates - mandating CORS for video, images and audio - Servers have to grant cross-domain access to media resources - DOS Attacks and general hardening - ARB_robustness extensions that provide additional protection being mandated - New robustness spec limits the side-effects of a GPU reset after a DOS attack - ANGLE shader validator improved; more improvements coming

© Copyright Khronos Group, Page 27 Web Apps versus Native Apps Mobile Apps have functional and aesthetic appeal - Beautiful, responsive, focused HTML5 with accelerated APIs can provide the same level of “App Appeal” - Highly interactive, rich visual design Using HTML5 to create ‘Web Apps’ has many advantages - Portable to any browser enabled system - Same code can run as app or as web page - Web app is searchable and discoverable through the web - Not a closed app store – no app store ‘tax’

© Copyright Khronos Group, Page 28 Web Apps - Wider Ecosystem OS capability access before in HTML5 - Execution with no browser UI - Packaging standalone apps OS Independent App stores - Discovery and payment Language and JavaScript Tools - Native code compilation to JavaScript - JavaScript libraries Authoring Tools - Bringing Flash-grade authoring to HTML5

© Copyright Khronos Group, Page 29 Declarative 3D for the Web Need to enable ‘non-expert’ web programmers with layers over WebGL - 10,000s of 3D programmers worldwide versus millions of web developers - Middleware and layered architectures play a vital role W3C Incubator for Declarative 3D - “easy way to add interactive high-level declarative 3D objects to the HTML-DOM” - X3DOM ( and XML3D ( Bind 3D even closer into the browser stack - Use as much HTML5 machinery as possible – DOM, JavaScript, CSS - Focus on driving optimized WebGL/OpenGL ES 2.0 back-end - Use Typed Arrays and drive for optimal performance Canvas 2D3D Scenegraph Immediate

© Copyright Khronos Group, Page 30 Leveraging Native API Investment into HTML5 HTML5 evolving into cross-platform programming platform - Gradually exposing complete system capabilities Opportunity to synergize Web and native APIs development - Leverage native API investments, reduce developer learning cycles Khronos and W3C creating close liaison Native APIs shipping or working group underway JavaScript API shipping or working group underway HTML and Browser Composition WebAudio Advanced JavaScript Audio WebMAX? Camera control and video processing Possible future JavaScript APIs Device and Sensor APIs Device Orientation Working Groups StreamInput Native JavaScript

© Copyright Khronos Group, Page 31 Processor Parallelism CPUs Multiple cores driving performance increases GPUs Increasingly general purpose data-parallel computing Graphics APIs and Shading Languages Multi- processor programming – e.g. OpenMP Emerging Intersection Heterogeneous Computing OpenCL is a programming framework for heterogeneous compute resources

© Copyright Khronos Group, Page 32 Copyright Khronos 2009 OpenCL – Heterogeneous Computing Framework for programming diverse parallel computing resources in a system Platform Layer API - Query, select and initialize compute devices Runtime API - Execute compute kernels – gather results Kernel Language Specification - Subset of ISO C99 with language extensions OpenCL has Embedded profile - No need for a separate “ES” spec

© Copyright Khronos Group, Page 33 WebCL – Parallel Computing for the Web Khronos launching new WebCL initiative - First announced in March API definition already underway JavaScript binding to OpenCL - Security is top priority Many use cases - Physics engines to complement WebGL - Image and video editing in browser Stay close to the OpenCL standard - Maximum flexibility - Foundation for higher-level middleware

© Copyright Khronos Group, Page 34 Visual Computing Ecosystem Compute and mobile APIs interoperate through EGL High performance compute and graphics interop – buffer and events JavaScript bindings to OpenCL Parallel computation in HTML5

© Copyright Khronos Group, Page 35 WebCL Open Process and Resources Khronos open process to engage Web community - Public specification drafts, mailing lists, forums Khronos welcomes new members to define and drive WebCL - Nokia open sourced prototype for Firefox in May 2011 (LGPL) Samsung open sourced prototype for WebKit in July 2011 (BSD) Deformation Demo: Calculates and renders transparent and reflective deformed spheres on top of photo background Performance comparison on Mac - JS: ~1 FPS - WebCL: FPS

© Copyright Khronos Group, Page 36 Visual-based Augmented Reality Camera video stream sent to the compositor 3D Augmentation Rendering 3D augmentations composited with video stream Camera Tracking Camera images used to track the camera’s location and orientation Camera-to-scene transform locks the 3D rendering to the real world

© Copyright Khronos Group, Page 37 OpenSL ES – Advanced Audio OpenSL ES does for audio what OpenGL ES does for graphics - Advanced audio functionality from simple playback to 3D audio Object-based native audio API for simplicity and high performance - Reduces development time Same API regardless of underlying implementation - Software or hardware accelerated Cross OS portability - Preserves application investment

© Copyright Khronos Group, Page 38 StreamInput Connects Sensors to Apps Advanced Sensors Everywhere Standard cameras, depth cameras motion and position, touch, microphones wireless controllers Apps Need Sophisticated Access to Sensor Data Without coding to specific systems or sensor hardware Universal Timestamps Apps request semantic sensor information StreamInput defines list of possible semantic requests “Am I in an elevator?” “Give me gestures and face position” Apps request semantic sensor information StreamInput defines list of possible semantic requests “Am I in an elevator?” “Give me gestures and face position” Sensor graph created to provide sensor information StreamInput defines graph creation API and node interconnects Low-level sensor processing encapsulated in nodes – unleashes fusion innovation Apps gain ‘magical’ situational awareness Sensor graph created to provide sensor information StreamInput defines graph creation API and node interconnects Low-level sensor processing encapsulated in nodes – unleashes fusion innovation Apps gain ‘magical’ situational awareness Standardized Node Intercommunication Input Device Input Device Input Device Filter Node Filter Node Filter Node Filter Node App Filter Node Filter Node

© Copyright Khronos Group, Page 39 Khronos Computer Vision Standard OpenCV is widely use open source project for COMPUTER VISION Khronos Hardware Abstraction Layer - Will enable hardware vendors to provide accelerated imaging and vision modules CV HAL can be used by high-level libraries or applications directly OpenCV open source library Application CV HAL Open source sample implementation? Hardware vendor implementations Other higher-level CV libraries

© Copyright Khronos Group, Page 40 Augmented Reality Functionality Camera Processing 3D Rendering and Video Composition Audio Rendering Application on CPU Positional and GPS Sensor Data Computer Vision and Tracking Position and Tracking Semantics Control Camera, Preprocess and generate video streams Video TAP to CPU Synchronization and sensor fusion Video stream to GPU Positional Sensors Camera StreamInput EGLStream OpenCV Much more flexibility than just “overlay augmentations over background”

© Copyright Khronos Group, Page 41 ? ? ? Augmented Reality in the Web Camera Processing 3D Rendering and Video Composition Audio Rendering Application on CPU Positional and GPS Sensor Data Computer Vision and Tracking Position and Tracking Semantics Control Camera, Preprocess and generate video streams Video TAP to CPU Synchronization and sensor fusion Video stream to GPU Positional Sensors Camera StreamInput EGLStream WebAudio? Need to explore whether HTML composition can handle all AR use cases Sufficiently sophisticated camera control Semantic, synchronized sensor fusion

© Copyright Khronos Group, Page 42 Industry Cooperation OS BrowserSilicon Tools

© Copyright Khronos Group, Page 43 Get Involved! Engage with the WebGL working group on Khronos forums and mailing lists Let us know if you have news or links that Khronos can help highlight - or edit the Wiki Join Khronos to have a voice in how the specs evolve! - Any company is very welcome

© Copyright Khronos Group, Page 44 In Summary WebGL brings another vital piece of system capability into the HTML5 browser for web apps – 3D graphics WebGL is being deployed right now on PC – soon on mobile – and is being strongly supported by browser and GPU vendors WebGL is a low-level, secure technology – that can be used directly and will support a rich ecosystem of tools and frameworks WebGL and WebCL show how to take well proven native APIs and bring them to the web – with more to come!

© Copyright Khronos Group, Page 45 Questions?