- first person camera
- multiple instances (naive approach)
- opengl state cacheing to avoid redundant driver calls
- texture sampling provided by fixed set of texture units
(and it all still works!)