High-level to Low-level in Unity with GPU Shader Programming

Dimitrij Hmeljak · Proceedings of the 53rd ACM Technical Symposium on Computer Science Education V. 2 · 2022

Real-time rendering of Computer Graphics algorithms is achieved through GPU shader programming. Modern graphics APIs provide efficient access to GPU-based processing, but require a complex setup that represent a high entry barrier to students. In designing an introductory Computer Graphics course, the debate is often about choosing between a top-down approach relying on fixed graphics pipeline functionalities, or whether to start by teaching GPU shader programming first. This poster presents a set of Computer Graphics assignments that include both CPU-based and GPU-based implementations in the Unity game development engine. Selected algorithms are shown first in the form of C# scripts that interface with the Unity scene editor, at a higher level of abstraction. The same concepts are subsequently revisited with the introduction of parallel processing and GPU programming concepts, by leveraging Unity's built-in interface to lower-level GPU shaders.

Read the paper · More papers on PaperTik