We need a clean C++ starting point with error handling Why? STL is often very useful for vertex management STL vector can be copied directly with glBufferData cglm is often considered cumbersome compared to glm A lot of people are used to cout, C++11 threads, auto, etc It's nice to have classes if we want them It can do just about everything C can anyway But it's a terrible idea! Struct initialization is cumbersome C++ has two types of strings, which get confused C++ encourages use of obscure features C compiles faster C memory management is more direct C++ often hides details like heap vs. stack storage in strings Anyway, about that starting point: I'm waffling about whether it's an in-class demo or canned in-class pros: I'll actually explain it You all can make suggestions that can be part of it in-class cons: You'll end up watching me type, debug, make mistakes, etc It'll take more class time canned pros: It'll be ready and work right away I'll probably do a better job and take less shortcuts Might even comment it... I'm leaning toward canned. Anyone have an opinion here? Let's make a cube model! Once we've got a cube to play with: Can we make a set of stairs? Each vertex gets used more than once Rendering by elements instead of strictly by vertices How about a staircase? Not bad at all, with instanced rendering What if we were to make an array of MVP matrices? Which is bigger, anyway, a cube or an MVP? Fair question. Our cube is pretty simple... Could we just feed in an array of center points instead? And, are we wasting GPU cycles to avoid wasting GPU memory? The future: geometry shaders! Can we turn the cube into a ball? Do you want to build a snowman? A note on generating stuff: Is it really a good idea? pro: Saves a lot of GPU memory Doesn't require us to learn modeling software Easy to adjust how things come out Can incorporate randomness to add some variety Is cool con: Less flexible for making a model of something specific Complicated geometry shaders might take a while to run Can't move down the pipeline until they finish Video game answer: Generate models, keep shaders simple But what if you wanted fur...