Programming: Group project, GLSL IDE


OpenGL interactive development environment



 I had the pleasure of working with several people for a programming group assignment at the NCCA, Bournemouth University, creating a GLSL IDE. My roles were to find a method of reading data in a Json file to load to the shader manager (not shown), reading and writing data via XML files, and the camera and usability of the viewport for the user. The NGL graphics library was used, created by Jon Macey.

The user can:

  • edit the vertex and fragment shader uniforms to create new shaders, and recieve real-time visual response.
  • Inport/ Export Obj and view normals.
  • Pivot around the object in a manner that’s familiar to 3D software, adjust the camera settings such as FOV, change orthographic view.
  • Input into the text editor which contains syntax highlighing, auto-complete and more, similar to text editors such as gedit.
  • Save and load vertex shaders as .xml files and load them.
  • Export uniform data as .txt files to be read by other programs

Below is the final product:

Peers: Phil Rouse, Jonathan Flynn, Adam Ting, Jonathan Lyddon-Towl, Anand Hotwani, Alaxander La-Tourelle

Ellie Ansell:

  • Reading/ writing .xml files and saving and loading projects.
  • Managing cameras and viewport usability.
  • Json import/ export, loading shaders from json. (not implemented)

Jonathan Flynn:

  • Project Lead
  • User interface
  • Error handling

Anand Hotwani:

  • Transfer text from the editor to the shader manager
  • Adapting NGL to allow for compile error catching
  • NGL scene convenience functions
  • Texture Mapping
  • Sample shaders

Sandy La Tourelle:

  • Shader Manager
  • Project Class
  • Importing GLSL files
  • Sample Shaders

Jonathan Lyddon:

  • Processing uniform data for editing
  • Dynamic widgets to allow user to modify these uniforms

Phil Rouse:

  • QScintilla implementation
  • GLSL Lexer using a Flex scanner