WebGL 2: Vertex Array Objects (VAOs)
It seems everyone recommends you use Vertex Array Objects, but few step through all the reasons why. We'll look at what VAOs are, how to use them, the functions they react to and answer some frequently asked questions. I liked making this video, but I understand if it annoys some people and I apologize to those who I did annoy. The next video won't be like this. I think it just bothers me that most books and tutorials don't really explain VAOs or if they do, they do it at such an advanced stage that most beginners can't benefit from them. That made me a bit spicy, I think. You can find supplementary materials on this video series' GitHub page: https://github.com/scriptfoundry/WebG... This series on WebGL 2 was produced for anyone who, like me, had major problems getting a firm understanding of WebGL's intermediate and advanced concepts. Every video is focused on a single concept. If I've done this well, you shouldn't really need to "get up to speed" before watching any of these videos. There are no external libraries. I'm not building up to a custom API or injecting any abstractions. And I don't expect you to have watched from episode #1 to get "how I'm doing things with WebGL." Complete playlist: • WebGL 2.0 Videos: 1. Creating WebGL Programs ( • WebGL 2: Programs (Hello World) ) 2. Quickie: Precision ( • WebGL 2 Quickie: Precision ) 3. Uniforms (Part 1) ( • WebGL 2: Uniforms (Part 1) ) 4. Attributes Part 1: Basics ( • WebGL 2: Attributes (Part 1) ) 5. Attributes Part 2: Beyond Basics ( • WebGL 2: Attributes (Part 2) ) 6. Attributes Part 3: Element Arrays ( • WebGL 2: Element Arrays & drawElements() ) 7. Objects, Targets & Binding ( • WebGL 2: Objects, Targets & Binding ) 8. Textures Part 1: Basics ( • WebGL 2: Textures (Part 1) ) 9. Textures Part 2: Mipmaps ( • WebGL 2: Mipmaps (Textures Part 2) ) 10. Textures Part 3: Texture Atlases ( • WebGL 2: Vertex Array Objects (VAOs) ) 11. Textures Part 4: Texture Arrays ( • WebGL 2: Texture Arrays (Textures Part 4) ) 12. Vertex Array Objects ( • WebGL 2: Texture Atlases or Sprite Sheets ... ) 13. Instanced Drawing ( • WebGL 2: Instanced Drawing ) 14. Matrix Attributes ( • WebGL 2: Matrix Attributes ) 15. Transparency ( • WegGL 2: Transparency & Depth ) 16. Camera Part 1 ( • WebGL 2: Cameras & Perspective (Part 1) ) 17. Camera Part 2: Clipping & Z-fighting ( • WebGL 2: Visualizing Projection (Camera Pa... ) 18. Lighting Part 1: Directional diffuse lighting ( • WebGL 2: Directional diffuse lighting ) 19. Lighting Part 2: Point lights & Spotlights ( • WebGL 2: Point lights & Spotlights ) 20. Binary model files ( • WebGL 2: Creating binary model files ) 21. Uniform Buffer Objects (Uniforms Part 2) ( • WebGL 2: Uniform Buffer Objects ) 22. Arrays Part 1: Uniforms ( • WebGL 2: Arrays & Uniforms ) 23. Arrays Part 2: UBOs and Hardware Bugs ( • WebGL 2: Hardware Bugs, UBOs & Arrays ) 24. Transform Feedback ( • WebGL 2: Transform Feedback (for Particle ... ) 25. Framebuffer Objects Part 1: The Basics ( • WebGL 2: Framebuffer Objects (The Basics) ) 26. Framebuffer Objects Part 2: The Gnarly Details ( • WebGL 2: Framebuffer Objects (The gnarly d... ) About my setup: Please don't get distracted by any of it. I'm writing to TypeScript files, but you'll probably just use JavaScript files. I'm using VSCode with the GLSL Lint extension, but you should use whatever you are most comfortable using. I'm using Parcel.js for hot-reloading and ts transpilation, but you can use whatever system you like (even if that's just writing to a file on your desktop and hitting Ctrl+R.) Please please please: If you spend more than a minute setting your environment up, that's a minute wasted that you could be learning WebGL. I really hope someone out there will find this series helpful.

WebGL 2: Texture Atlases or Sprite Sheets (Textures Part 3)

WebGL 2: Texture Arrays (Textures Part 4)

WebGL 2: Instanced Drawing

WebGL 2: Variable Gaussian blur (framebuffer object Technique 3)

WebGL 2: Textures (Part 1)

Vertex Array Objects // OpenGL Tutorial #17

65 Unbelievable Aviation Moments Caught on Camera

WebGL 2: Uniform Buffer Objects

Smooth-Maximum, the most useful function

Don't Hang Up On AI Scammers. Do THIS Instead.

WebGL 2: Framebuffer Objects (The Basics)

Unbelievable Smart Worker & Hilarious Fails | Construction Compilation #5 #adamrose #smartworkers

Adobe Is Completely F*cked.

WebGL 2: Uniforms (Part 1)

WebGL 2: Transform Feedback (for Particle Systems etc)

An introduction to Shader Art Coding

The Big Short (2015): The Jenga Scene – Explaining the Financial Collapse

WebGL 2: Cameras & Perspective (Part 1)

