WebGL Patrick Cozzi University of Pennsylvania CIS 565 - Spring 2012.

Slides:



Advertisements
Similar presentations
Visa-Valtteri visy Pimiä or how fumbling my way through pixel-based effects made learning WebGL a lot easier.
Advertisements

GlTF and rest3d Patrick Cozzi University of Pennsylvania CIS Fall 2013.
FireMonkey Deep Dive The Next Generation of Business Application Development.
An introduction to WebGL Viktor Kovács. Content A little 3D modeling. What is WebGL? Introducing Three.js. Visualizing GDL objects.
WebGL: GPU Acceleration for the open web Guest Lecture: Patrick Cozzi Analytical Graphics, Inc. University of Pennsylvania.
HTML5 Haptics Standardization
HARDWARE ACCELERATED WEB BROWSER Berlian Juliartha M.P Indah Yudi Suryani Wais Al Qonri H
Fortress City Saarlouis Development of an interactive 3D city model using Web technologies Kristian Sons, Georg Demme, Wolfgang Herget, Philipp Slusallek.
 The success of GL lead to OpenGL (1992), a platform-independent API that was  Easy to use  Close enough to the hardware to get excellent performance.
FUNDAMENTALS OF PROGRAMMING SM1204 Semester A 2010/2011.
Master Project Preparation Murtaza Hussain. Unity (also called Unity3D) is a cross-platform game engine with a built-in IDE developed by Unity Technologies.
Referent · von xx Seiten HTML5. Overview 1.HTML & HTML5 Basics Facts 2.Flash vs. HTML5 3.HTML5 - the new features Sebastian Viereck·
1 Introduction to Computer Graphics with WebGL Ed Angel Professor Emeritus of Computer Science Founding Director, Arts, Research, Technology and Science.
Copyright © 2012 Certification Partners, LLC -- All Rights Reserved Lesson 5: Multimedia on the Web.
Matt Rosenzweig – Midnight Oil Creative GAMES. What We’re Covering  HTML5 WTF?  A Brief History of Timewasters  HTML5 Games Today  Going Native 
Evaluation of HTML5 Graphics for Data Structure Visualization
Suleyman YILDIRIM.  Overview  Browser support  Scalability  Performance  Demos  Added value to the project.
2 A First Look at Windows Presentation Foundation Everywhere ("WPF/E") Joe Stegman Lead Program Manager Microsoft Corporation.
Teaching Intro and Advanced Graphics with WebGL
WebGL: Hands On Zhenyao Mo Software Engineer, Google, Inc. Chrome GPU Team.
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.
FUNDAMENTALS OF PROGRAMMING SM1204 SEMESTER A 2012.
Adobe FLASH What & Why? Where & When? Is Flash dead? What about HTML5?
Programming with OpenGL Part 2: Complete Programs Ed Angel Professor of Emeritus of Computer Science University of New Mexico.
GPU Programming and Architecture: Course Overview Patrick Cozzi University of Pennsylvania CIS Spring 2012.
Android Husam Abdel Rahman. Introduction Android Operating system is most popular operating system these days with the advance in voice communications.
Advanced Multimedia Application Mobile Multimedia Textbook Jeremy Reyniers | Simon Debacq | Sam De Roeck.
1 Angel and Shreiner: Interactive Computer Graphics 6E © Addison-Wesley 2012 Introduction to Computer Graphics Ed Angel Professor Emeritus of Computer.
1 Introduction to Computer Graphics SEN Introduction to OpenGL Graphics Applications.
WebGL Patrick Cozzi University of Pennsylvania CIS Fall 2012.
Class 02 – 03 Feb 2014 Setup Where do we begin? Know your content Discovering your target user.
Lab 12: Other Languages User Interface Lab: GUI Lab Nov. 12 th, 2013.
1 Graphics CSCI 343, Fall 2015 Lecture 4 More on WebGL.
CS 480/680 Intro Dr. Frederick C Harris, Jr. Fall 2014.
به نام خدا تنظیم کننده : فرانه حدادی استاد : مهندس زمانیان تابستان 92.
1 Introduction to Computer Graphics with WebGL Ed Angel Professor Emeritus of Computer Science Founding Director, Arts, Research, Technology and Science.
1 Graphics CSCI 343, Fall 2015 Lecture 2 Introduction to HTML, JavaScript and WebGL.
A complete game editor Unity 3D 2D/3D game/rendering engine and editor Built-in IDE Game design Level design Scripting 3D Rendering for pictures, cinematics.
OpenGL and WebGL Patrick Cozzi University of Pennsylvania CIS Fall 2013.
GeoGebra on mobile devices GeoGebraMobile, the JavaScript version of GeoGebra. Gabor Ancsin (this man =>)
Final Project Ideas Patrick Cozzi University of Pennsylvania CIS Fall 2013.
Patrick Cozzi University of Pennsylvania CIS Fall 2014
WebGL Presentation by: Viet Nguyen.  Final Project Outline  Introduction  History  Support  Implementation  Advantages  Disadvantages  Conclusion.
Mobile Graphics Patrick Cozzi University of Pennsylvania CIS Spring 2012.
Mobile: Today and Beyond Stuart Parmenter, Director of Mobile
Programming with OpenGL Part 0: 3D API. For Further Reading Angel 7 th Ed: –2.2: JavaScript –2.3: OpenGL & WebGL –2.8: fragment & vertex shaders Beginning.
HTML 5 The Future of Web Development. What is HTML5? “HTML5 is a specification of how the web’s core language, HTML, should be formatted and utilized.
The OpenGL API Patrick Cozzi University of Pennsylvania CIS Fall 2012.
1 Introduction to Computer Graphics with WebGL Ed Angel Professor Emeritus of Computer Science Founding Director, Arts, Research, Technology and Science.
GPU Computing for GIS James Mower Department of Geography and Planning University at Albany.
HTML5 HTML5 Canvas May 18, 2011 Subject: CPSC 473 Professor: Kenytt D. Avery Student: Scott Jung.
INTRODUCING HYBRID APP KAU with MICT PARK IT COMPANIES Supported by KOICA
PhoneGap, Processing.
Web Concepts Lesson 2 ITBS2203 E-Commerce for IT.
Browsers and Web Platforms
WebGL The HTML5/JavaScript 3D Computer Graphics API
گرافیک رایانه ای.
Web3D Consortium X3DOM: Next-Generation Web3D Applications on Open Standards and Open Source Web3D Consortium
Introduction to OpenGL
Introduction to Computer Graphics with WebGL
Introduction to Computer Graphics with WebGL
Introduction to Computer Graphics with WebGL
Introduction to Computer Graphics
CIS 441/541: Introduction to Computer Graphics Lecture 15: shaders
WebGL: Latest Techniques
Introduction to Computer Graphics with WebGL
Introduction to OpenGL
Engine and functionalities
Presentation transcript:

WebGL Patrick Cozzi University of Pennsylvania CIS Spring 2012

Announcements Homework 5 due Monday, 04/16  In-class quiz Wednesday, 04/18 Final on Tuesday, 05/01  6-8pm  David Rittenhouse Lab A7  Networking event immediately following Final project presentation/demo

WebGL for Web Developers The web has  Text  Images  Video What is the next media-type?

WebGL for Graphics Developers We want to support  Windows, Linux, Mac  Desktop and mobile How?

Bring 3D to the Masses Put it in on a webpage  Does not require a plugin or install  Does not require administrator rights Make it run on most GPUs

WebGL Image from Ecosystem_Aug-11.pdfhttp:// Ecosystem_Aug-11.pdf OpenGL ES 2.0 for JavaScript  Seriously, JavaScript

Demos EmberWind WebGL Water

WebGL Includes  Vertex shaders  Fragment shaders  Vertex buffers  Textures  Framebuffers  Render states  … Does not include  Geometry shaders  Tessellation shaders  Vertex Array Objects  Multiple render targets  Floating-point textures  Compressed textures  FS depth writes  … See

WebGL If you know OpenGL, you already know WebGL If you know C++, the real learning curve is JavaScript

WebGL Alternatives? Flash Silverlight Java Applets Unity

WebGL Creating a context is easy: // HTML: // JavaScript: var gl = document.getElementById("glCanvas").getContext("experimental-webgl");

WebGL The rest is similar to desktop OpenGL: //... gl.bindBuffer(/*... */); gl.vertexAttribPointer(/*... */); gl.useProgram(/*... */); gl.drawArrays(/*... */); Checkout

WebGL Create an animation loop: (function tick(){ //... GL calls to draw scene window.requestAnimationFrame(tick); })(); You want this to work cross-browser. See

WebGL Performance Performance can be very good. Why?

WebGL Performance Performance can be very good. Why?  The GPU is still doing the rendering  Batch! Draw multiple objects with one draw call Sort by texture Push work into shaders See

WebGL and other APIs Take advantage of other web APIs:  HTML5  2D  CSS transforms  Composite UI elements  Web workers  Typed Arrays

WebGL support is good, and it is getting better…

Desktop WebGL Support In April, rd Party Plugins available See

WebGL Stats See In April, 2012

WebGL Support on your System Disclosure: My awesome intern wrote thisawesome intern

Desktop WebGL Support Windows  No OpenGL driver installed? Old driver? Only 35% of Windows XP machines have GL 2 drivers  Buggy driver?  No problem: ANGLE – Almost Native Graphics Layer Engine OpenGL ES 2.0 Direct3D 9 See

Mobile WebGL Support In April, 2012 Stock Browser Demo at SIGGRAPH NVIDIA is working on it. Firefox Mobile – “Fennec” Performance improvements possibly this this year Opera Mobile

Mobile WebGL Support In April, 2012 See In iOS 5 for iAd developers

HTML5 on Mobile Touch events  Test with Geolocation Device orientation and motion The future of HTML5 and WebGL on mobile is very promising

By the way, mobile is really important: See

Browser Architecture Single Process See

Browser Architecture Chrome’s Multi-process See

Browser Architecture Chrome’s Multi-process See

Browser Architecture Chrome’s Multi-process See

Questions In a multi-process is gl.Get* slow? Why? What about security?

Demos World Flights WebGL Jellyfish

WebGL Libraries Three.js: SceneJS: PhiloGL: SpiderGL: Many more:

WebGL Resources WebGL Camps: Learning WebGL:

JavaScript Resources I promise I do not work for O'Reilly or Yahoo

By the way, WebCL is coming Prototypes for Firefox and WebKit are available Interactive WebCL kernel editor: