Shade: Visual Programming of Shaders
In 2006 - 2007 I spent my last year as a student in England at the University of Hull for a Master by Research ; it was at this time one of the few places in Europe providing video game courses. I joined a research lab to work on the subject of visual programming for shaders.
Download the Thesis (PDF)
My thesis had two objectives:
The first one is to carry out some research on the topic of 3d graphics and visual programming
The other goal is to write a program - Shade - that provides an effective way to create and design complicated shaders using visual programming for people that have no extended knowledge on shader programming.
At the time of making Shade they were no existing visual programming tool to make shaders. Essentially I made one of the first node-based shader generation tool. However in just a few months it was far from complete, and it was never widely used. I only supported OpenGL & GLSL.
Some of the challenges were:
Creating customizable UI in C++, editable nodes, editable links, friendly interface
Generating the GLSL code, removing duplicated code and minimizing the number of variables used. It’s easy to generate working code, it’s hard to make it efficient, which is very important for a shader
Real-time viewer showing the result at every step, with custom model importer, camera modes, etc.
Node system with atomic nodes (piece of code) and macro nodes (collection of atomic nodes)