Willy Nolan


Project Title Description

The evolution of OpenGL basically goes like this: Immediate mode -> Modern OpenGL (3.0+) -> Direct State Access -> Vulkan. As the APIs have progressed, progressively more control has been given the the programmer.

Direct State Access provides a nice balance between verbosity and control. In particular, getting rid of the “state-machine” construct makes interacting with the GPU feel much more similar to native C++.

Early OpenGL does not provide enough control to the user, but Vulkan can make getting started with graphics very intimidating and prototyping / experimenting with the GPU challenging.

The research I did resulted in applications that explore many of the ways in which DSA leads to a more elegant programming experience.

The featured images show just a few examples of applications made easier with DSA. These include (in order) tessellation, an example of the Phong Illumincation Model and a realtime raytracer.