Development history and the result
The roots

It all began with a six month internship in a computer game development company in Spring 2002. One of the developers asked for my help to integrate vertex and pixel shader effects into their own proprietary 3D game engine - an offer I did not want to refuse, of course.

For the lecture "advanced computer graphics" I prepared a paper about classes of textures and their use in virtual 3D environments. During this project, I got in touch with exciting texturing effects like "DOT3 product bump mapping" and "cube environmental mapping". So I was keen on realising these effects and started out to explore the capabilities of shader technology.

The first presentable result was a small demo application showing some effects like diffuse and specular lighting and a nice specular bump mapping. It was just a single window with a rendering view based on the DirectX 8.1 API. Different meshes could be loaded and combined with the predefined effects.

This demo program should convince my professor of my idea to write a diploma thesis about vertex and pixel shaders. What should I say ? He was enthused from the first moment on and always supported my conceptions and visions throughout the entire period of developing the diploma thesis (.. by the way - thank you very much for this, Mr. Lux .. ).

In the end, it was not as easy as it sounds. Instead of accepting this demo as it stands, my professor mentioned that he would appreciate a more interactive environment in which the user can write his/her own vertex and pixel shader code and not only choose between ready-made effects.
"Obviously, he wants the whole package ..", I thought by myself and therefore described the vast potentialities of a shader development environment ... the idea of SolidShaderTool was born ...

The development

Being part of a diploma thesis, the development process of SolidShaderTool proceeded under certain rules and specifications which are essential for scientific workmanship.

The software implementation should be realised with the help of C++ and MFC, so the specifications and characteristics of object oriented analysis and design were obeyed during the phase of conception. Furthermore, the use of a standardized descriptive language like UML was inevitable.

While studying the relevant technical literature, I found an interesting chapter about design patterns. Starting the iterative analysis and design process, it became obvious that the "model-view-controller" pattern perfectly fitted for a possible structure of SolidShaderTool.
So I used this pattern as a basic "framework", extended it step-by-step to a detailled solution and described the structure using the different forms of diagrams and graphs of the UML.

The result

Although I encountered various problems during the development process and had to accept more compromises I thought of before, the result is far on top of anything you may expect from a "normal" single-person diploma thesis.

All relevant parts of the shader effect design were considered from the import of structured mesh data, materials and textures defined in 3D Studio MAX™ to the final output in an interactive rendering view. An important feature provided is the flexibility to handle and combine an unlimited number of meshes and subsets embedded in the imported scene and user customized or predefined shader effects.

So the user is able to focus on the development of the shader instructions while keeping the flexibility and possibility to control all environment parameters and settings.