Vertex Array Objects // OpenGL Tutorial #17

Опубликовано: 05 Октябрь 2024
на канале: OGLDEV
14,668
294

AEJuice Free Plugins https://aejuice.com/free-plugins/?ref...
AEJuice I Want It All Bundle https://aejuice.com/product/i-want-it...
AEJuice YouTube Channel    / @aejuice  

In this video I will show you how to use Vertex Array Objects (VAO) in OpenGL in order to make it simpler to switch between groups of vertices that are characterized by different source buffers and different vertex layouts. I will also describe the compatibility and core profiles, show how to enable the core profile using FreeGLUT and describe how they affect the VAO. Finally, I'll review some changes that I've made in order to move most of the application code into a class.

🔥 I'm using the following books as background information for my tutorials and I highly recommend them for learning more about OpenGL and Vulkan.
These are affiliate links so if you use them to buy the books the price is the same for you and I will get a small commision (thank-you!).

📖 OpenGL 4 Shading Language Cookbook - Third Edition: Build high-quality, real-time 3D graphics with OpenGL 4.6, GLSL 4.6 and C++17 3rd ed. Edition: https://amzn.to/3XO2J3S

📖 3D Graphics Rendering Cookbook: A comprehensive guide to exploring rendering algorithms in modern OpenGL and Vulkan: https://amzn.to/3MMJQbf
(Watch my short video review on this book:    • The 2nd book I'm using for my Vulkan ...  )

📖 Vulkan Programming Guide: The Official Guide to Learning Vulkan: https://amzn.to/3XwBjhr
(Watch my short video review on this book:    • The book I'm using for my Vulkan seri...  )

Make sure to watch all the previous tutorials in the "OpenGL For Beginners" playlist at    • OpenGL for Beginners  

Please visit https://ogldev.org to see more of my tutorials on modern OpenGL.

Link to source: https://github.com/emeiri/ogldev/blob...
If you want to get the same version that was used in the video checkout the tag TUT_17_VAO.

OpenGL 4.6 specification: https://www.khronos.org/registry/Open...

Timecodes:
0:00 Intro
0:14 Background
0:57 Multiple meshes
1:23 Vertex Array Objects
2:10 Compatibility and core profiles
2:58 VAOs and the profiles
3:19 How the enable the core profile in FreeGLUT
4:06 Start of code review
4:30 The Tutorial17 class
5:02 FreeGLUT callbacks
6:03 Using the VAO
8:10 Rest of the Init method
8:41 The render loop
9:03 Getting the current VAO from the OpenGL runtime
9:22 The keyboard callback function
9:43 Object cleanup
10:41 Changes to the main function
10:56 Run the demo
11:14 Conclusion

Feel free to comment below.

Contact:
Email: [email protected]
Facebook:   / ogldev-188319114585587  
Github: https://github.com/emeiri/ogldev.git
Twitter: @ogldev
One time donations (Paypal): https://ogldev.org/donate.html
Patreon:   / ogldev  

Enjoy,

Etay Meiri

#opengl #ogldev #opengtutorials