SlideShare una empresa de Scribd logo
1 de 39
Descargar para leer sin conexión
3D In the Browser
                                   It’s go time.


                           Presented by Pascal Rettig
                           http://cykod.com @cykod


                        Liberally using Material From:
                        Mozilla MIT IAP WebGL Class
                           http://learningwebgl.com
Monday, July 11, 2011
When last I talked...



Monday, July 11, 2011
Where We are




          1977-84        1985-90   1991-94   1995-2000




Monday, July 11, 2011
Where we are




         Q1 2010        Q4 2010   Q2 2011   Q4 2011




Monday, July 11, 2011
I was wrong.




         Q1 2010        Q4 2010    Q2 2011




Monday, July 11, 2011
WebGL is enabled in:

                    • Chrome - Stable
                    • Firefox 4 Beta
                    • Webkit Nightly’s
                    • an Opera Preview Release
                    • IE ...Yeah, not anytime soon.

Monday, July 11, 2011
By the end of Q2
                        All major supported browsers should have WebGL
                                      turned on by default.




Monday, July 11, 2011
What can you do with
                             WebGL?
                        http://webglsamples.googlecode.com/hg/aquarium/
                                         aquarium.html

                        http://webglsamples.googlecode.com/hg/spacerocks/
                                         spacerocks.html




Monday, July 11, 2011
What is WebGL?
                        WebGL is a royalty-free, cross-platform API that
                        brings OpenGL ES 2.0 to the web as a 3D drawing
                        context within HTML, exposed as low-level
                        Document Object Model interfaces. It uses the
                        OpenGL shading language, GLSL ES, and can be
                        cleanly combined with other web content that is
                        layered on top or underneath the 3D content. It is
                        ideally suited for dynamic 3D web applications in the
                        JavaScript programming language, and will be fully
                        integrated in leading web browsers.

                                       http://www.khronos.org/




Monday, July 11, 2011
WebGL is:




Monday, July 11, 2011
WebGL is:
                    • A 1.0 Standard (as of 3/8/11) released by
                        the Khronos Group




Monday, July 11, 2011
WebGL is:
                    • A 1.0 Standard (as of 3/8/11) released by
                        the Khronos Group
                    • In-browser native (Look ma, no plugins!)




Monday, July 11, 2011
WebGL is:
                    • A 1.0 Standard (as of 3/8/11) released by
                        the Khronos Group
                    • In-browser native (Look ma, no plugins!)
                    • Implementation of OpenGL ES 2.0
                        (OpenGL for embedded systems)




Monday, July 11, 2011
WebGL is:
                    • A 1.0 Standard (as of 3/8/11) released by
                        the Khronos Group
                    • In-browser native (Look ma, no plugins!)
                    • Implementation of OpenGL ES 2.0
                        (OpenGL for embedded systems)
                    • A low level API (We’re not kidding around)

Monday, July 11, 2011
WebGL is:
                    • A 1.0 Standard (as of 3/8/11) released by
                        the Khronos Group
                    • In-browser native (Look ma, no plugins!)
                    • Implementation of OpenGL ES 2.0
                        (OpenGL for embedded systems)
                    • A low level API (We’re not kidding around)
                    • Well Integrated into the DOM - can layer,
                        use textures, etc.
Monday, July 11, 2011
OpenGL ES 2.0




Monday, July 11, 2011
OpenGL ES 2.0
                    • OpenGL for Embedded Systems




Monday, July 11, 2011
OpenGL ES 2.0
                    • OpenGL for Embedded Systems
                    • Well-defined subsets of desktop OpenGL




Monday, July 11, 2011
OpenGL ES 2.0
                    • OpenGL for Embedded Systems
                    • Well-defined subsets of desktop OpenGL
                    • What you’re using playing 3D games on
                        your iPhone 3G (Orig. iPhone, Android are
                        ES 1.0)




Monday, July 11, 2011
OpenGL ES 2.0
                    • OpenGL for Embedded Systems
                    • Well-defined subsets of desktop OpenGL
                    • What you’re using playing 3D games on
                        your iPhone 3G (Orig. iPhone, Android are
                        ES 1.0)
                    • OpenGL ES 1.X is for fixed function
                        hardware. 2.0 is fully programmable vertex
                        and fragement shaders.

Monday, July 11, 2011
WebGL uses shaders for
                       just about everything
                    • Little bits of run-time compiled code that
                        runs on the GPU
                    • GLSL (OpenGL Shading Language)
                    • “High Level” Shader language based on C
                    • Compiled at runtime
                    • Vertex shaders transform vertices
                    • Fragment shaders compute pixel colors
Monday, July 11, 2011
WebGL PipeLine
                             Vertex Operation
                                    ⇓
                               Rasterization
                                    ⇓
                            Fragment Operation
                                    ⇓
                               FrameBuffer




Monday, July 11, 2011
Simple(st) Shaders
     Vertex Shader
      attribute vec3 aVertexPosition;
      void main(void) {
         gl_Position = vec4(aVertexPosition, 1.0);
      }

     Fragment Shader
      void main(void) {
         gl_FragColor = vec4(1.0, 1.0, 1.0, 1.0);
      }


Monday, July 11, 2011
Which gets us...




Monday, July 11, 2011
Simplest Full Example
                             (From Mozilla IAP class)




Monday, July 11, 2011
More Tutorials at
                        LearningWebGl.com
                        • Based on the famous NeHe Open GL
                          Tutorials
                        • Textures: http://learningwebgl.com/
                          lessons/lesson05/index.html
                        • http://learningwebgl.com/blog/?
                          page_id=1217



Monday, July 11, 2011
Has anyone noticed a
                             problem?




Monday, July 11, 2011
Has anyone noticed a
                             problem?
             OpenGL isn’t exactly something you want to have to see on a
                  daily basis, especially as a Javascript Programmer




Monday, July 11, 2011
Abstraction Please...




Monday, July 11, 2011
PhiloGL
                        Relatively new framework from Sencha Labs
                            http://senchalabs.github.com/philogl/




Monday, July 11, 2011
PhiloGL
                    • “PhiloGL code is highly abbreviated
                        compared to WebGL.”
                    • Have transcribed the learningwebgl lessons
                        to PhiloGL
                    • http://senchalabs.github.com/philogl/
                        PhiloGL/examples/lessons/1/
                    • http://senchalabs.github.com/philogl/
                        PhiloGL/examples/lessons/5/
                    • Sort of neat, but kinda meh...
Monday, July 11, 2011
Mr. Doobs Three.js
                           https://github.com/mrdoob/three.js/
                   Generic 3D library that supports a WebGL rendering
                                  as one of the backends.




Monday, July 11, 2011
Three.js




Monday, July 11, 2011
Three.js
                  • Nice, standard OO Abstractions for 3D
                        programming.
                  • No documentation, but lots of examples in
                        the examples directory.
                  • Lots of Demos to look at on the Github
                        Page
                  • May be a little too abstract for performant
                        WebGL games, but they are reworking the
                        WebGL renderer, so who knows.
Monday, July 11, 2011
Copperlicht

                    • Bills itself as “Commercial grade WebGL
                        3D engine with editor”
                    • http://www.ambiera.com/copperlicht/
                    • Quake 3 Level http://bit.ly/fGKoOh


Monday, July 11, 2011
More Frameworks /
                             Engines
                          From the Chronos WebGL Wiki:
                         http://www.khronos.org/webgl/wiki/




Monday, July 11, 2011
glQuery




Monday, July 11, 2011
glQuery doesn’t exist...
                But it should - talk to me if you’re interested in working on
                                 something after the meetup.




Monday, July 11, 2011
Thanks!
                          Pascal Rettig
                        @cykod on Twitter




Monday, July 11, 2011

Más contenido relacionado

La actualidad más candente

GT Logiciel Libre - Convention Systematic 2011
GT Logiciel Libre - Convention Systematic 2011GT Logiciel Libre - Convention Systematic 2011
GT Logiciel Libre - Convention Systematic 2011Stefane Fermigier
 
PyCon 2011 Scaling Disqus
PyCon 2011 Scaling DisqusPyCon 2011 Scaling Disqus
PyCon 2011 Scaling Disquszeeg
 
Plone IDE - the future of Plone development
Plone IDE - the future of Plone developmentPlone IDE - the future of Plone development
Plone IDE - the future of Plone developmentMikko Ohtamaa
 
Alternative Mapping on iOS
Alternative Mapping on iOSAlternative Mapping on iOS
Alternative Mapping on iOSDevelopment Seed
 
Introduction to jQuery Mobile
Introduction to jQuery MobileIntroduction to jQuery Mobile
Introduction to jQuery MobileTroy Miles
 
Chocolatey Goodness: From Fringe to Mainstream #dotnetfringe
Chocolatey Goodness: From Fringe to Mainstream #dotnetfringeChocolatey Goodness: From Fringe to Mainstream #dotnetfringe
Chocolatey Goodness: From Fringe to Mainstream #dotnetfringeRob Reynolds
 

La actualidad más candente (9)

GT Logiciel Libre - Convention Systematic 2011
GT Logiciel Libre - Convention Systematic 2011GT Logiciel Libre - Convention Systematic 2011
GT Logiciel Libre - Convention Systematic 2011
 
PyCon 2011 Scaling Disqus
PyCon 2011 Scaling DisqusPyCon 2011 Scaling Disqus
PyCon 2011 Scaling Disqus
 
Plone IDE - the future of Plone development
Plone IDE - the future of Plone developmentPlone IDE - the future of Plone development
Plone IDE - the future of Plone development
 
Play
PlayPlay
Play
 
HTML5 and Sencha Touch
HTML5 and Sencha TouchHTML5 and Sencha Touch
HTML5 and Sencha Touch
 
Alternative Mapping on iOS
Alternative Mapping on iOSAlternative Mapping on iOS
Alternative Mapping on iOS
 
ISA11 - Bill Scott - Designing Mice Men
ISA11 - Bill Scott - Designing Mice MenISA11 - Bill Scott - Designing Mice Men
ISA11 - Bill Scott - Designing Mice Men
 
Introduction to jQuery Mobile
Introduction to jQuery MobileIntroduction to jQuery Mobile
Introduction to jQuery Mobile
 
Chocolatey Goodness: From Fringe to Mainstream #dotnetfringe
Chocolatey Goodness: From Fringe to Mainstream #dotnetfringeChocolatey Goodness: From Fringe to Mainstream #dotnetfringe
Chocolatey Goodness: From Fringe to Mainstream #dotnetfringe
 

Similar a 3D in the Browser via WebGL: It's Go Time

WebGL Fundamentals
WebGL FundamentalsWebGL Fundamentals
WebGL FundamentalsSencha
 
JavaSE - The road forward
JavaSE - The road forwardJavaSE - The road forward
JavaSE - The road forwardeug3n_cojocaru
 
Javascript Views, Client-side or Server-side with NodeJS
Javascript Views, Client-side or Server-side with NodeJSJavascript Views, Client-side or Server-side with NodeJS
Javascript Views, Client-side or Server-side with NodeJSSylvain Zimmer
 
Conquistando el Servidor con Node.JS
Conquistando el Servidor con Node.JSConquistando el Servidor con Node.JS
Conquistando el Servidor con Node.JSCaridy Patino
 
Designing and developing mobile web applications with Mockup, Sencha Touch an...
Designing and developing mobile web applications with Mockup, Sencha Touch an...Designing and developing mobile web applications with Mockup, Sencha Touch an...
Designing and developing mobile web applications with Mockup, Sencha Touch an...Matteo Collina
 
The Fast, The Slow and the Lazy
The Fast, The Slow and the LazyThe Fast, The Slow and the Lazy
The Fast, The Slow and the LazyMaurício Linhares
 
EFL (Tizen Native Display Layer – Architecture & Usage) - Carsten Haitzler
EFL (Tizen Native Display Layer – Architecture & Usage)  - Carsten HaitzlerEFL (Tizen Native Display Layer – Architecture & Usage)  - Carsten Haitzler
EFL (Tizen Native Display Layer – Architecture & Usage) - Carsten HaitzlerRyo Jin
 
Erlang: Bult for concurrent, distributed systems
Erlang: Bult for concurrent, distributed systemsErlang: Bult for concurrent, distributed systems
Erlang: Bult for concurrent, distributed systemsKen Pratt
 
Develop Gwt application in TDD
Develop Gwt application in TDDDevelop Gwt application in TDD
Develop Gwt application in TDDUberto Barbini
 
Community Code: Xero
Community Code: XeroCommunity Code: Xero
Community Code: XeroSencha
 
2011 JavaOne Fun with EJB 3.1 and OpenEJB
2011 JavaOne Fun with EJB 3.1 and OpenEJB2011 JavaOne Fun with EJB 3.1 and OpenEJB
2011 JavaOne Fun with EJB 3.1 and OpenEJBDavid Blevins
 
node.js for front-end developers
node.js for front-end developersnode.js for front-end developers
node.js for front-end developersGarann Means
 
MongoDB at Sailthru: Scaling and Schema Design
MongoDB at Sailthru: Scaling and Schema DesignMongoDB at Sailthru: Scaling and Schema Design
MongoDB at Sailthru: Scaling and Schema DesignDATAVERSITY
 
Flowdock's full-text search with MongoDB
Flowdock's full-text search with MongoDBFlowdock's full-text search with MongoDB
Flowdock's full-text search with MongoDBFlowdock
 
2011 The Year of Web apps
2011 The Year of Web apps2011 The Year of Web apps
2011 The Year of Web appsJungHyuk Kwon
 
Opera Mobile HTML5 CSS3 Standards
Opera Mobile HTML5 CSS3 StandardsOpera Mobile HTML5 CSS3 Standards
Opera Mobile HTML5 CSS3 StandardsZi Bin Cheah
 
Ruby gvl-improvement at ruby 1.9.3
Ruby gvl-improvement at ruby 1.9.3Ruby gvl-improvement at ruby 1.9.3
Ruby gvl-improvement at ruby 1.9.3Motohiro KOSAKI
 
Clouds against the Floods (RubyConfBR2011)
Clouds against the Floods (RubyConfBR2011) Clouds against the Floods (RubyConfBR2011)
Clouds against the Floods (RubyConfBR2011) Leonardo Borges
 

Similar a 3D in the Browser via WebGL: It's Go Time (20)

WebGL Fundamentals
WebGL FundamentalsWebGL Fundamentals
WebGL Fundamentals
 
JavaSE - The road forward
JavaSE - The road forwardJavaSE - The road forward
JavaSE - The road forward
 
Javascript Views, Client-side or Server-side with NodeJS
Javascript Views, Client-side or Server-side with NodeJSJavascript Views, Client-side or Server-side with NodeJS
Javascript Views, Client-side or Server-side with NodeJS
 
Groke
GrokeGroke
Groke
 
Caridy patino - node-js
Caridy patino - node-jsCaridy patino - node-js
Caridy patino - node-js
 
Conquistando el Servidor con Node.JS
Conquistando el Servidor con Node.JSConquistando el Servidor con Node.JS
Conquistando el Servidor con Node.JS
 
Designing and developing mobile web applications with Mockup, Sencha Touch an...
Designing and developing mobile web applications with Mockup, Sencha Touch an...Designing and developing mobile web applications with Mockup, Sencha Touch an...
Designing and developing mobile web applications with Mockup, Sencha Touch an...
 
The Fast, The Slow and the Lazy
The Fast, The Slow and the LazyThe Fast, The Slow and the Lazy
The Fast, The Slow and the Lazy
 
EFL (Tizen Native Display Layer – Architecture & Usage) - Carsten Haitzler
EFL (Tizen Native Display Layer – Architecture & Usage)  - Carsten HaitzlerEFL (Tizen Native Display Layer – Architecture & Usage)  - Carsten Haitzler
EFL (Tizen Native Display Layer – Architecture & Usage) - Carsten Haitzler
 
Erlang: Bult for concurrent, distributed systems
Erlang: Bult for concurrent, distributed systemsErlang: Bult for concurrent, distributed systems
Erlang: Bult for concurrent, distributed systems
 
Develop Gwt application in TDD
Develop Gwt application in TDDDevelop Gwt application in TDD
Develop Gwt application in TDD
 
Community Code: Xero
Community Code: XeroCommunity Code: Xero
Community Code: Xero
 
2011 JavaOne Fun with EJB 3.1 and OpenEJB
2011 JavaOne Fun with EJB 3.1 and OpenEJB2011 JavaOne Fun with EJB 3.1 and OpenEJB
2011 JavaOne Fun with EJB 3.1 and OpenEJB
 
node.js for front-end developers
node.js for front-end developersnode.js for front-end developers
node.js for front-end developers
 
MongoDB at Sailthru: Scaling and Schema Design
MongoDB at Sailthru: Scaling and Schema DesignMongoDB at Sailthru: Scaling and Schema Design
MongoDB at Sailthru: Scaling and Schema Design
 
Flowdock's full-text search with MongoDB
Flowdock's full-text search with MongoDBFlowdock's full-text search with MongoDB
Flowdock's full-text search with MongoDB
 
2011 The Year of Web apps
2011 The Year of Web apps2011 The Year of Web apps
2011 The Year of Web apps
 
Opera Mobile HTML5 CSS3 Standards
Opera Mobile HTML5 CSS3 StandardsOpera Mobile HTML5 CSS3 Standards
Opera Mobile HTML5 CSS3 Standards
 
Ruby gvl-improvement at ruby 1.9.3
Ruby gvl-improvement at ruby 1.9.3Ruby gvl-improvement at ruby 1.9.3
Ruby gvl-improvement at ruby 1.9.3
 
Clouds against the Floods (RubyConfBR2011)
Clouds against the Floods (RubyConfBR2011) Clouds against the Floods (RubyConfBR2011)
Clouds against the Floods (RubyConfBR2011)
 

Más de Pascal Rettig

Web Typography for Front End Developers
Web Typography for Front End DevelopersWeb Typography for Front End Developers
Web Typography for Front End DevelopersPascal Rettig
 
Javascript Everywhere
Javascript EverywhereJavascript Everywhere
Javascript EverywherePascal Rettig
 
Vector Graphics on the Web: SVG, Canvas, CSS3
Vector Graphics on the Web: SVG, Canvas, CSS3Vector Graphics on the Web: SVG, Canvas, CSS3
Vector Graphics on the Web: SVG, Canvas, CSS3Pascal Rettig
 
Cracking the Customer Acquisition Nut
Cracking the Customer Acquisition NutCracking the Customer Acquisition Nut
Cracking the Customer Acquisition NutPascal Rettig
 
HTML5 Space Invaders
HTML5 Space InvadersHTML5 Space Invaders
HTML5 Space InvadersPascal Rettig
 

Más de Pascal Rettig (6)

Web Typography for Front End Developers
Web Typography for Front End DevelopersWeb Typography for Front End Developers
Web Typography for Front End Developers
 
Semantic chop
Semantic chopSemantic chop
Semantic chop
 
Javascript Everywhere
Javascript EverywhereJavascript Everywhere
Javascript Everywhere
 
Vector Graphics on the Web: SVG, Canvas, CSS3
Vector Graphics on the Web: SVG, Canvas, CSS3Vector Graphics on the Web: SVG, Canvas, CSS3
Vector Graphics on the Web: SVG, Canvas, CSS3
 
Cracking the Customer Acquisition Nut
Cracking the Customer Acquisition NutCracking the Customer Acquisition Nut
Cracking the Customer Acquisition Nut
 
HTML5 Space Invaders
HTML5 Space InvadersHTML5 Space Invaders
HTML5 Space Invaders
 

Último

[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
Infrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platformsInfrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platformsYoss Cohen
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...itnewsafrica
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Landscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdfLandscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdfAarwolf Industries LLC
 
Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Karmanjay Verma
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Kaya Weers
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkPixlogix Infotech
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
A Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxA Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxAna-Maria Mihalceanu
 
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...Jeffrey Haguewood
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsRavi Sanghani
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024TopCSSGallery
 
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)Mark Simos
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentPim van der Noll
 
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...BookNet Canada
 

Último (20)

[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
Infrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platformsInfrared simulation and processing on Nvidia platforms
Infrared simulation and processing on Nvidia platforms
 
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...Zeshan Sattar- Assessing the skill requirements and industry expectations for...
Zeshan Sattar- Assessing the skill requirements and industry expectations for...
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Landscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdfLandscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdf
 
Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#Microservices, Docker deploy and Microservices source code in C#
Microservices, Docker deploy and Microservices source code in C#
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App Framework
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
A Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxA Glance At The Java Performance Toolbox
A Glance At The Java Performance Toolbox
 
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
Email Marketing Automation for Bonterra Impact Management (fka Social Solutio...
 
Potential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and InsightsPotential of AI (Generative AI) in Business: Learnings and Insights
Potential of AI (Generative AI) in Business: Learnings and Insights
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024
 
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
Tampa BSides - The No BS SOC (slides from April 6, 2024 talk)
 
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native developmentEmixa Mendix Meetup 11 April 2024 about Mendix Native development
Emixa Mendix Meetup 11 April 2024 about Mendix Native development
 
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...
Transcript: New from BookNet Canada for 2024: BNC SalesData and LibraryData -...
 

3D in the Browser via WebGL: It's Go Time

  • 1. 3D In the Browser It’s go time. Presented by Pascal Rettig http://cykod.com @cykod Liberally using Material From: Mozilla MIT IAP WebGL Class http://learningwebgl.com Monday, July 11, 2011
  • 2. When last I talked... Monday, July 11, 2011
  • 3. Where We are 1977-84 1985-90 1991-94 1995-2000 Monday, July 11, 2011
  • 4. Where we are Q1 2010 Q4 2010 Q2 2011 Q4 2011 Monday, July 11, 2011
  • 5. I was wrong. Q1 2010 Q4 2010 Q2 2011 Monday, July 11, 2011
  • 6. WebGL is enabled in: • Chrome - Stable • Firefox 4 Beta • Webkit Nightly’s • an Opera Preview Release • IE ...Yeah, not anytime soon. Monday, July 11, 2011
  • 7. By the end of Q2 All major supported browsers should have WebGL turned on by default. Monday, July 11, 2011
  • 8. What can you do with WebGL? http://webglsamples.googlecode.com/hg/aquarium/ aquarium.html http://webglsamples.googlecode.com/hg/spacerocks/ spacerocks.html Monday, July 11, 2011
  • 9. What is WebGL? WebGL is a royalty-free, cross-platform API that brings OpenGL ES 2.0 to the web as a 3D drawing context within HTML, exposed as low-level Document Object Model interfaces. It uses the OpenGL shading language, GLSL ES, and can be cleanly combined with other web content that is layered on top or underneath the 3D content. It is ideally suited for dynamic 3D web applications in the JavaScript programming language, and will be fully integrated in leading web browsers. http://www.khronos.org/ Monday, July 11, 2011
  • 11. WebGL is: • A 1.0 Standard (as of 3/8/11) released by the Khronos Group Monday, July 11, 2011
  • 12. WebGL is: • A 1.0 Standard (as of 3/8/11) released by the Khronos Group • In-browser native (Look ma, no plugins!) Monday, July 11, 2011
  • 13. WebGL is: • A 1.0 Standard (as of 3/8/11) released by the Khronos Group • In-browser native (Look ma, no plugins!) • Implementation of OpenGL ES 2.0 (OpenGL for embedded systems) Monday, July 11, 2011
  • 14. WebGL is: • A 1.0 Standard (as of 3/8/11) released by the Khronos Group • In-browser native (Look ma, no plugins!) • Implementation of OpenGL ES 2.0 (OpenGL for embedded systems) • A low level API (We’re not kidding around) Monday, July 11, 2011
  • 15. WebGL is: • A 1.0 Standard (as of 3/8/11) released by the Khronos Group • In-browser native (Look ma, no plugins!) • Implementation of OpenGL ES 2.0 (OpenGL for embedded systems) • A low level API (We’re not kidding around) • Well Integrated into the DOM - can layer, use textures, etc. Monday, July 11, 2011
  • 16. OpenGL ES 2.0 Monday, July 11, 2011
  • 17. OpenGL ES 2.0 • OpenGL for Embedded Systems Monday, July 11, 2011
  • 18. OpenGL ES 2.0 • OpenGL for Embedded Systems • Well-defined subsets of desktop OpenGL Monday, July 11, 2011
  • 19. OpenGL ES 2.0 • OpenGL for Embedded Systems • Well-defined subsets of desktop OpenGL • What you’re using playing 3D games on your iPhone 3G (Orig. iPhone, Android are ES 1.0) Monday, July 11, 2011
  • 20. OpenGL ES 2.0 • OpenGL for Embedded Systems • Well-defined subsets of desktop OpenGL • What you’re using playing 3D games on your iPhone 3G (Orig. iPhone, Android are ES 1.0) • OpenGL ES 1.X is for fixed function hardware. 2.0 is fully programmable vertex and fragement shaders. Monday, July 11, 2011
  • 21. WebGL uses shaders for just about everything • Little bits of run-time compiled code that runs on the GPU • GLSL (OpenGL Shading Language) • “High Level” Shader language based on C • Compiled at runtime • Vertex shaders transform vertices • Fragment shaders compute pixel colors Monday, July 11, 2011
  • 22. WebGL PipeLine Vertex Operation ⇓ Rasterization ⇓ Fragment Operation ⇓ FrameBuffer Monday, July 11, 2011
  • 23. Simple(st) Shaders Vertex Shader attribute vec3 aVertexPosition; void main(void) { gl_Position = vec4(aVertexPosition, 1.0); } Fragment Shader void main(void) { gl_FragColor = vec4(1.0, 1.0, 1.0, 1.0); } Monday, July 11, 2011
  • 24. Which gets us... Monday, July 11, 2011
  • 25. Simplest Full Example (From Mozilla IAP class) Monday, July 11, 2011
  • 26. More Tutorials at LearningWebGl.com • Based on the famous NeHe Open GL Tutorials • Textures: http://learningwebgl.com/ lessons/lesson05/index.html • http://learningwebgl.com/blog/? page_id=1217 Monday, July 11, 2011
  • 27. Has anyone noticed a problem? Monday, July 11, 2011
  • 28. Has anyone noticed a problem? OpenGL isn’t exactly something you want to have to see on a daily basis, especially as a Javascript Programmer Monday, July 11, 2011
  • 30. PhiloGL Relatively new framework from Sencha Labs http://senchalabs.github.com/philogl/ Monday, July 11, 2011
  • 31. PhiloGL • “PhiloGL code is highly abbreviated compared to WebGL.” • Have transcribed the learningwebgl lessons to PhiloGL • http://senchalabs.github.com/philogl/ PhiloGL/examples/lessons/1/ • http://senchalabs.github.com/philogl/ PhiloGL/examples/lessons/5/ • Sort of neat, but kinda meh... Monday, July 11, 2011
  • 32. Mr. Doobs Three.js https://github.com/mrdoob/three.js/ Generic 3D library that supports a WebGL rendering as one of the backends. Monday, July 11, 2011
  • 34. Three.js • Nice, standard OO Abstractions for 3D programming. • No documentation, but lots of examples in the examples directory. • Lots of Demos to look at on the Github Page • May be a little too abstract for performant WebGL games, but they are reworking the WebGL renderer, so who knows. Monday, July 11, 2011
  • 35. Copperlicht • Bills itself as “Commercial grade WebGL 3D engine with editor” • http://www.ambiera.com/copperlicht/ • Quake 3 Level http://bit.ly/fGKoOh Monday, July 11, 2011
  • 36. More Frameworks / Engines From the Chronos WebGL Wiki: http://www.khronos.org/webgl/wiki/ Monday, July 11, 2011
  • 38. glQuery doesn’t exist... But it should - talk to me if you’re interested in working on something after the meetup. Monday, July 11, 2011
  • 39. Thanks! Pascal Rettig @cykod on Twitter Monday, July 11, 2011

Notas del editor

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n