SlideShare a Scribd company logo
WebGL
The native 3D API
Native API
● javascript API
● brings typed arrays
● immediate mode graphical API
● no plugins needed
OpenGL legacy
● based on OpenGL ES 2.0
● shader based pipeline
● uses GLSL 1.0 for shaders
● shaders are compiled
How to get it
● create a <canvas> element
● retrieve the desired context
o myCanvasDOMElem.getContext(“3d”);
● access WebGL methods through context
And what about shaders?
● passed as strings. Very long strings.
● C like syntax and statically typed
● two flavors: vertex and fragment shader
● native matrix and vector operators
● shader based pipeline
● vertex shader to control vertices properties
● fragment shader to control pixels properties
● allow us to keep control of the pipeline
Why?
Dealing with complexity
● WebGL uses points, lines and triangles
● geometries can have thousands of triangles
● lot of boilerplate even for trivial examples
● string composition in JS? Really?
JS Frameworks for WebGL
● ThreeJS
● OSGJS
● BabylonJS
● ...yet another JS (SceneJS, ...)
ThreeJS
● originally written in ActionScript
● the most famous one
● tons of tutorials and workshops
OSGJS
● porting of OpenSceneGraph (C++)
● texture pipeline very close to Blender
● good support through forums
● production use: Sketchfab
BabylonJS
● Microsoft’s WebGL framework
● based on a Silverlight game engine
● good support and demos
● extended physics support
Let’s sell it tomorrow!
● Not just a modern browser, but a cool one
● not a HTML5 standard. Yet.
● powerful GPU is strongly suggested
Let’s sell it tomorrow!
● Depends on the whole stack
o video adapter
o OS and drivers
o browser version, vendor, build...
o blacklists, security paranoias, luck

More Related Content

PDF
Introduction to QML
PPTX
Asynchronous programming in C#
PPTX
An evening with Angular 2
PPTX
Interactive 3D graphics for web with three.js, Andrey Vedilin, DataArt
PDF
Modern front-end Workflow
PPTX
Javascript basics
PDF
When Javascript isn't Javascript
Introduction to QML
Asynchronous programming in C#
An evening with Angular 2
Interactive 3D graphics for web with three.js, Andrey Vedilin, DataArt
Modern front-end Workflow
Javascript basics
When Javascript isn't Javascript

What's hot (10)

PPTX
Node.js 201: building real-world applications in pure JavaScript
PDF
KDE 4.1 Plasma widgets
PPTX
Autolab Workshop
PPTX
Presentation on angular 5
PPTX
Declarative JavaScript concepts and implemetation
PPTX
RxJS and Reactive Programming - Modern Web UI - May 2015
PDF
How Shit Works - Source Maps
PDF
The Bunny Slopes of SVG Mountain - Naomi Kennedy (Penguin Random House) - ebo...
PPTX
JS Fest 2019/Autumn. Виталий Кухар. Сравнение кластеризации HTTP, TCP и UDP н...
PDF
JS Fest 2019: Comparing Node.js processes and threads for clustering HTTP, TC...
Node.js 201: building real-world applications in pure JavaScript
KDE 4.1 Plasma widgets
Autolab Workshop
Presentation on angular 5
Declarative JavaScript concepts and implemetation
RxJS and Reactive Programming - Modern Web UI - May 2015
How Shit Works - Source Maps
The Bunny Slopes of SVG Mountain - Naomi Kennedy (Penguin Random House) - ebo...
JS Fest 2019/Autumn. Виталий Кухар. Сравнение кластеризации HTTP, TCP и UDP н...
JS Fest 2019: Comparing Node.js processes and threads for clustering HTTP, TC...
Ad

Viewers also liked (12)

PDF
WebGL 3D player
PDF
Demystifying the 3d web - Codemotion 2016
PDF
Begin three.js.key
PDF
3D Web Programming [Thanh Loc Vo , CTO Epsilon Mobile ]
PPTX
Immersive 3D Platform: Oculus Rift + Leap Motion + 3D Print
PPTX
HTML5DevConf - Unleash the power of 3D with babylon.js
PDF
Project Zephyr: Final Presentation
PPTX
JIRA Zephyr - Test Management
PDF
(Js) Export your own WebGL Viewer
PDF
Augmented reality in web rtc browser
KEY
pygame sharing pyhug
PPT
Shading
WebGL 3D player
Demystifying the 3d web - Codemotion 2016
Begin three.js.key
3D Web Programming [Thanh Loc Vo , CTO Epsilon Mobile ]
Immersive 3D Platform: Oculus Rift + Leap Motion + 3D Print
HTML5DevConf - Unleash the power of 3D with babylon.js
Project Zephyr: Final Presentation
JIRA Zephyr - Test Management
(Js) Export your own WebGL Viewer
Augmented reality in web rtc browser
pygame sharing pyhug
Shading
Ad

Similar to Demistifying the 3D Web - part 2 (20)

PPT
openGL basics for sample program (1).ppt
PPT
openGL basics for sample program.ppt
PDF
Introduction of openGL
PDF
Power of WebGL (FSTO 2014)
PDF
Computer Graphics - Lecture 01 - 3D Programming I
PPTX
React native introduction (Mobile Warsaw)
PPTX
OpenGL Shading Language
PPTX
OpenGL ES EGL Spec&APIs
PDF
CeedMath & CeedGL, Let's talk 3D...
PPTX
.NET compiler platform codename Roslyn
PDF
GraphQL (Graphene-Django)
PDF
Getting Started with Spring for GraphQL
PPTX
UNIT 1 OPENGL_UPDATED .pptx
KEY
Getting Started with WebGL
PDF
State of the Art OpenGL and Qt
 
PDF
Angular2 - A story from the trenches
PDF
Node.js Presentation
PDF
Opengl basics
PDF
Open gl
PPTX
13th kandroid OpenGL and EGL
openGL basics for sample program (1).ppt
openGL basics for sample program.ppt
Introduction of openGL
Power of WebGL (FSTO 2014)
Computer Graphics - Lecture 01 - 3D Programming I
React native introduction (Mobile Warsaw)
OpenGL Shading Language
OpenGL ES EGL Spec&APIs
CeedMath & CeedGL, Let's talk 3D...
.NET compiler platform codename Roslyn
GraphQL (Graphene-Django)
Getting Started with Spring for GraphQL
UNIT 1 OPENGL_UPDATED .pptx
Getting Started with WebGL
State of the Art OpenGL and Qt
 
Angular2 - A story from the trenches
Node.js Presentation
Opengl basics
Open gl
13th kandroid OpenGL and EGL

Recently uploaded (20)

PPTX
Geodesy 1.pptx...............................................
PDF
Evaluating the Democratization of the Turkish Armed Forces from a Normative P...
PPTX
OOP with Java - Java Introduction (Basics)
PDF
Operating System & Kernel Study Guide-1 - converted.pdf
PPTX
Safety Seminar civil to be ensured for safe working.
PDF
R24 SURVEYING LAB MANUAL for civil enggi
PPTX
Construction Project Organization Group 2.pptx
PDF
PREDICTION OF DIABETES FROM ELECTRONIC HEALTH RECORDS
PDF
III.4.1.2_The_Space_Environment.p pdffdf
PDF
Enhancing Cyber Defense Against Zero-Day Attacks using Ensemble Neural Networks
PDF
The CXO Playbook 2025 – Future-Ready Strategies for C-Suite Leaders Cerebrai...
PPTX
web development for engineering and engineering
PPTX
UNIT-1 - COAL BASED THERMAL POWER PLANTS
DOCX
573137875-Attendance-Management-System-original
PPTX
Foundation to blockchain - A guide to Blockchain Tech
PDF
Well-logging-methods_new................
PPT
Project quality management in manufacturing
PPTX
Fundamentals of safety and accident prevention -final (1).pptx
PPTX
bas. eng. economics group 4 presentation 1.pptx
PDF
BIO-INSPIRED HORMONAL MODULATION AND ADAPTIVE ORCHESTRATION IN S-AI-GPT
Geodesy 1.pptx...............................................
Evaluating the Democratization of the Turkish Armed Forces from a Normative P...
OOP with Java - Java Introduction (Basics)
Operating System & Kernel Study Guide-1 - converted.pdf
Safety Seminar civil to be ensured for safe working.
R24 SURVEYING LAB MANUAL for civil enggi
Construction Project Organization Group 2.pptx
PREDICTION OF DIABETES FROM ELECTRONIC HEALTH RECORDS
III.4.1.2_The_Space_Environment.p pdffdf
Enhancing Cyber Defense Against Zero-Day Attacks using Ensemble Neural Networks
The CXO Playbook 2025 – Future-Ready Strategies for C-Suite Leaders Cerebrai...
web development for engineering and engineering
UNIT-1 - COAL BASED THERMAL POWER PLANTS
573137875-Attendance-Management-System-original
Foundation to blockchain - A guide to Blockchain Tech
Well-logging-methods_new................
Project quality management in manufacturing
Fundamentals of safety and accident prevention -final (1).pptx
bas. eng. economics group 4 presentation 1.pptx
BIO-INSPIRED HORMONAL MODULATION AND ADAPTIVE ORCHESTRATION IN S-AI-GPT

Demistifying the 3D Web - part 2

  • 2. Native API ● javascript API ● brings typed arrays ● immediate mode graphical API ● no plugins needed
  • 3. OpenGL legacy ● based on OpenGL ES 2.0 ● shader based pipeline ● uses GLSL 1.0 for shaders ● shaders are compiled
  • 4. How to get it ● create a <canvas> element ● retrieve the desired context o myCanvasDOMElem.getContext(“3d”); ● access WebGL methods through context
  • 5. And what about shaders? ● passed as strings. Very long strings. ● C like syntax and statically typed ● two flavors: vertex and fragment shader ● native matrix and vector operators
  • 6. ● shader based pipeline ● vertex shader to control vertices properties ● fragment shader to control pixels properties ● allow us to keep control of the pipeline Why?
  • 7. Dealing with complexity ● WebGL uses points, lines and triangles ● geometries can have thousands of triangles ● lot of boilerplate even for trivial examples ● string composition in JS? Really?
  • 8. JS Frameworks for WebGL ● ThreeJS ● OSGJS ● BabylonJS ● ...yet another JS (SceneJS, ...)
  • 9. ThreeJS ● originally written in ActionScript ● the most famous one ● tons of tutorials and workshops
  • 10. OSGJS ● porting of OpenSceneGraph (C++) ● texture pipeline very close to Blender ● good support through forums ● production use: Sketchfab
  • 11. BabylonJS ● Microsoft’s WebGL framework ● based on a Silverlight game engine ● good support and demos ● extended physics support
  • 12. Let’s sell it tomorrow! ● Not just a modern browser, but a cool one ● not a HTML5 standard. Yet. ● powerful GPU is strongly suggested
  • 13. Let’s sell it tomorrow! ● Depends on the whole stack o video adapter o OS and drivers o browser version, vendor, build... o blacklists, security paranoias, luck