# Pedogogy of Computer Graphics

I’ve been catching up on some graphics stuff within the last few months, and worked my way through a great Vulkan tutorial (https://vulkan-tutorial.com/Introduction) when I can find the time. From my perspective, the mechanics all made sense and I could see why things are the way they are, especially in contrast to OpenGL/GLES/WebGL.
So, I like Vulkan. So much of it makes sense to me. Why? Probably because I’ve already had to grapple with OpenGL for almost 20 years now, and it’s progressed from immediate mode and fixed-functionality to vertex array buffers and shaders and roll your own matrix stack. It would make sense to then move on to command queues and barriers and memory management.
But, it also got thinking about the pedagogy of computer science, particularly computer graphics. OpenGL is byzantine and arcane and difficult to teach. Having TA’ed intro to computer graphics more than once (long ago), there are so many aspects to “debugging” computer graphics, it’s difficult to even start giving helpful hints. And, on top of that, Vulkan derives its power from control, which ultimately increases the cognitive load on the programmer. So, do I like Vulkan only because I’ve had so many years experience and it makes sense? Or, do I like it because it’s a cleaner/clearer API? Most of the time, I go with the latter, but sometimes, I think it’s because Vulkan is actually clearer.
Never the less, computer graphics itself should probably taught with Pete Shirley’s Ray Tracing in One Weekend.








