OpenGL versioning: 2.0 was the paradigm shift 3.0 deprecated a lot of stuff left over from 1.x We've been avoiding deprecated 1.x stuff anyway, no big deal Changes to update to OpenGL 4.5: I decided to change the version number for our wind example Qualifier changes (sorry): in/out instead of varying and attribute It's clearer anyway, just forget the others Other notes: gl_FragColor is deprecated in favor of insanity Bitwise operators were added! The generation, actually working now My mistake had nothing to do with C or nested functions or C++ or glm Tour of the code, in detail Works ok... So, what if we want two of them without adding a second one to GPU memory? Main point here: We're not going to use up extra GPU memory with a second copy We're also not going to send it over the PCI express bus again So we'll just draw it in a different spot! Ok, so now that we can do that: A: Let's make a forest B: Let's add some controls so we can walk around