WebGL: yesterday, today, tomorrow
Bogdan Gorpynchuk
NWG studios, co-founder & core developer
WebGL - one of many
• WebAudioApi
• FileAPI
• WebRTC
• WebWorkers
• WebSockets
• and lots more!
WebGL ?
• JS API to OpenGL ES [v2.0]
• Drawing to a canvas using special context
• Low-level drawing [buffers, textures, shaders]
• Accelerated by GPU
• 3D and 2D
Yesterday
2011-2015
What we had…
• Chrome WebGL support 10+
• Firefox WebGL support 4+
• IE 10+ [poor support]
• Almost no mobile support [till recent time]
• Low performance
Pros and cons
• Low support
• Quite slow
• No mobile [almost]
• Not enough features
• But it’s FUN and looks nice
Main projects
• Three.js
• Chrome experiments
• PlayCanvas
• HexGL
Today
Improvements ?
• Working stable 1.0 WebGL release
• Full browser support [and mostly mobile]
• Nice performance
• Lots of examples, tools and frameworks
• Large community
Engines
• Three.js (threejs.org)
• Goo engine (goocreate.com)
• PlayCanvas (playcanvas.com)
• Artillery Engine (artillery.com)
• Scene.js (scenejs.org)
• BabylonJS (babylonjs.com)
Tools
• ShaderToy
• WebGL inspector [chrome extension]
• Chrome webGL profiler
• WebGL <-> node.js npm plugins
• And lots more
Unity and Unreal + asm.js
• FF support
• Chrome performance improvements
• LLVM compilers [C++ / Python / Ruby support]
• But has some problems…
asm.js
asm.js as it is…
• Awesome for newbies
• Documentation
• Extreme amount of examples
• Largest webGL community
• OpenSource [nicest js code I have ever seen]
Three.js (by mr.doom)
Basic scene
Some VAR’s
Create scene and
camera
Setup renderer
Add cube object
Rotate / render
And THE hidden part
Allmost 500 lines of code!
vs. 37 using three.js
Tomorrow
2015+
WebGL 2.0
• Moving to OpenGL ES 3.0
• More gl extensions [instancing, VAO, Fragment depth]
• 3D Textures
• Sampler Objects
• Uniform Buffer Objects
• Sync/Query Objects.. and more!
Future is here?
• WebGL 2.0 still has a long way to go.
• WebAssembly! New way of asm.js-ing!
• Still has problems with support [minor, but problems]
• Still developing libs / frameworks / tools, and it’s
not bad!
NOPE!
DemoTime
QA?Bogdan Gorpynchuk
http://nwgstudios.com
Skype: le.sung
e-mail: hot.surnuk@gmail.com

WebGL: Yesterday, Today, Tomorrow

  • 1.
    WebGL: yesterday, today,tomorrow Bogdan Gorpynchuk NWG studios, co-founder & core developer
  • 2.
    WebGL - oneof many • WebAudioApi • FileAPI • WebRTC • WebWorkers • WebSockets • and lots more!
  • 3.
    WebGL ? • JSAPI to OpenGL ES [v2.0] • Drawing to a canvas using special context • Low-level drawing [buffers, textures, shaders] • Accelerated by GPU • 3D and 2D
  • 4.
  • 5.
    What we had… •Chrome WebGL support 10+ • Firefox WebGL support 4+ • IE 10+ [poor support] • Almost no mobile support [till recent time] • Low performance
  • 6.
    Pros and cons •Low support • Quite slow • No mobile [almost] • Not enough features • But it’s FUN and looks nice
  • 7.
    Main projects • Three.js •Chrome experiments • PlayCanvas • HexGL
  • 8.
  • 9.
    Improvements ? • Workingstable 1.0 WebGL release • Full browser support [and mostly mobile] • Nice performance • Lots of examples, tools and frameworks • Large community
  • 10.
    Engines • Three.js (threejs.org) •Goo engine (goocreate.com) • PlayCanvas (playcanvas.com) • Artillery Engine (artillery.com) • Scene.js (scenejs.org) • BabylonJS (babylonjs.com)
  • 11.
    Tools • ShaderToy • WebGLinspector [chrome extension] • Chrome webGL profiler • WebGL <-> node.js npm plugins • And lots more
  • 12.
    Unity and Unreal+ asm.js • FF support • Chrome performance improvements • LLVM compilers [C++ / Python / Ruby support] • But has some problems…
  • 13.
  • 14.
  • 15.
    • Awesome fornewbies • Documentation • Extreme amount of examples • Largest webGL community • OpenSource [nicest js code I have ever seen] Three.js (by mr.doom)
  • 16.
    Basic scene Some VAR’s Createscene and camera Setup renderer Add cube object Rotate / render
  • 17.
    And THE hiddenpart Allmost 500 lines of code! vs. 37 using three.js
  • 18.
  • 19.
    WebGL 2.0 • Movingto OpenGL ES 3.0 • More gl extensions [instancing, VAO, Fragment depth] • 3D Textures • Sampler Objects • Uniform Buffer Objects • Sync/Query Objects.. and more!
  • 20.
    Future is here? •WebGL 2.0 still has a long way to go. • WebAssembly! New way of asm.js-ing! • Still has problems with support [minor, but problems] • Still developing libs / frameworks / tools, and it’s not bad! NOPE!
  • 21.
  • 22.