Shader Environment Builder


Brief info on the project

My Role

Director, User Interface, Error Handling

Time Frame

6 Months

# of People

6 Programmers


Mac and Linux


C++11 compiled with 64-bit Clang++


Qt 5.6

About the Project

A run-down of what the project is
A group programming project: an OpenGL Shading Language(GLSL) Interactive Development Environment(IDE) created using C++ and OpenGL. Currently only for the use of Vertex and Fragment GLSL shaders. Shader Environment Builder (SEB) utilizes an advanced text editor, an OpenGL Context for rendering Vertex-Fragment shaders, the loading of textures and meshes into the shaders, and the changing of uniforms in real-time. It also incorporates a project management system for saving, opening and exporting shaders, and also full logging of GLSL errors into the GUI.

The program allows for creating new projects from pre-existing shader segments and whole shader files that can be used as a basis. The text editor has all the features required for advanced text editing such as auto-completion, text highlighting, error line markers, brace matching, auto indentation, line commenting, a search function, and brace auto-completion. You can edit all the Vec3s, Vec4s and scalar uniforms of the shader program that is running the GLSL as well as modify the camera settings. There are also debug options for viewing the Normals and Wireframe of the model.

This was my first group C++ programming project and I feel it was a huge success. The whole team managed to work closely and effectively together. We managed to produce a functioning program that is both useful and allows for creating shaders in a much more efficient manner.

The Team

The amazing team that worked with me on this project

Ellie Ansell

JSON & XML Import/Export, Camera Manager

Anand Hotwani

Compile Error Handling, Texture Mapping

Sandy la Tourelle

Shader Manager, Projects, Importing GLSL Files

Jonny Lyddon

Processing Uniforms, Dynamic widgets for user edits

Phil Rouse

QScintilla Implementation, GLSL Lexer using Flex

Adam Ting

Parsing Uniform Values, Managing Uniform Data, Importing OBJ files


Where you can access this project
This project is under the GNU General Public License v3.0. Click here for more information.


Screenshots of the project

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

The Forager

The Forager is a platform, puzzle game of a creature with botanical abilities that explores and traverses an infected forest. By exploiting the enchanted ways of the environment, the Forager must reach the heart of the forest, the Tree of Life, to unveil the reason behind this unexplained corruption.

About Me

Gameplay Programmer and former Technical Artist at Splash Damage and a first class honours graduate at the NCCA, Bournemouth University after studying a BA (Hons) Computer Visualisation & Animation. (now BA (Hons) Computer Animation Technical Arts)

All the Socials!
Follow by Email
%d bloggers like this: