WebGL is an exciting new HTML5 JavaScript API that allows for rendering real-time 3D graphics in your web browser without a plugin. The technology is gaining fast acceptance and is allowing for truly amazing applications to be built in a native browser environment that were once considered impossible. This new API has it challenges, as it requires an understanding of the low-level Graphics Pipeline and OpengGL ES 2.0. This talk will cover the basics of 3D graphics and the JavaScript API allowing the audience to take away the steps required to create, initialize and run a WebGL application. The talk will also discuss the current state of browser acceptance of WebGL along with existing libraries that can get you up and running with WebGL even faster.
2. Who Am I?
! Founder of Game Theory
Labs
! Professor of Game and
Simulation Programming
! Nanoscale Semiconductor
Growth Kinetics
! Flexible Embedded
Electronics for ABL
! SWARM and C4ISR
Embedded Systems
! Building HTML5 Web
Apps Utilizing:
! Cloud Cluster
Computing
! Game Technology
! Artificial Intelligence
Modeling, Learning and
Optimization
What I Do:What I Did:
8. WebGL != Undefined
* **!
* Requires user to enable flag in developer menu
** Requires Plugin (IEWebGL), I know, defeats the point
! IE 11 looks to have WebGL added, WHOO HOO!
14. 3D Basics:
Objects and File Type
! WebGL does not have an
defined model format
! Collada, glTF
! OBJ, FBX, DAE
! Stores
! Relative Position
! Normals
! Texture
! Animation
! Materials
tri.gametheorylabs.com
29. WebGL
Canvas Initialization
! Create HTML Canvas Object
! Set Width Height
! Get 3D Context
! Set Viewport dimensions to match canvas
dimensions
! Set Clear Color (and any other properties)
30. WebGL
Shader Initialization
! Create Shaders
! Get Copy of Shader Code (Vertex and Fragment)
! Create GL Fragment and Vertex Shader Objects
! Add Source to Shader
! Compile Shader
31. WebGL
Shader Initialization
! Create Program
! Create GL Shader Program
! Attach Vertex and Fragment Shaders to Program
! Link Program
! Call useProgram to set Linked Program Active
36. Omega Resistance 0v2
! WebGL
! Gamepad API
! 3D Rigid Body Physics
! AI Autonomous
Movement
! WebWorkers
Blog: goo.gl/5nR0H Game: or.gametheorylabs.com