My name is Søren Greiner, I was born in Ringsted, Denmark 1975 and grew up in a little town on Sjælland not far from Copenhagen.|
I have for many years been interested in science, engineering and programming and this was also the path I followed when I was 19 years old and chose to study at the Technical University of Denmark (DTU) in Lyngby, approximately 12 km north of Copenhagen.
At DTU I followed courses within different fields. I have worked with electronics design, both low frequency analog design, digital electronics and high frequency digital electronics over 1GHz, where digital electronics starts to meet analog electronics design. I have also worked a lot with signalprocessing and audio and taking courses in acoustics. One topic that has a special interest for me is optics, holography and Fourier optics and light in general. This interest also has a connection to computer graphics with which I spend a lot of time programming.
During the years I have found many ways to combine my interests. I have spend a lot of time both in my spare time and during courses at DTU with robotics. I have built several robots myself, and have competed in both the DTU Robocup competition and the Eurobot competition in France. Robot designs combines mechanical design, eletronic designs, programming of microcontrollers and optical sensors.
I got my masters degree in electrical engineering (MSc.EE) in Oktober 2001 from DTU. My thesis was a project which involved an optical range sensor for mobile robots. I managed to develop optical models for the sensor and simulations of the same. I implemented a mechanical design. I designed analog and digital electronics for emitting and detection light and communicating data back to a PC, and then processing the captured data.
After DTU I was hired by Maridan, a small danish company that developed AUV's (autonomous underwater vehicles). These AUV's were equipped with different kinds of sonars and other sensors and could be programmed to follow paths over the seafloor and collect seabed data and the like. At Maridan I mostly worked with system design of a automatic underwater pipeline tracking system and programming the AUV using C/C++. I left Maridan when they went bankrupt in november 2002. after some years with financial trouble.
In January 2003 I was hired by ITE which is a danish computer game company. I have during that time been programmer on 4 different titles. My first title was Bukkazoom, a game for the handheld console Nintendo Gameboy Advance. For that title I was on a very small team consisting of a graphics artist, two programmers including me and a project leader. The game was a 2D, (pseudo 3D isometric) racing cart game. I managed to implement multiplayer functionality so up to four players can compete with each others through multilink cable. Next was a small title for the PC, and later I have been involved on 2 titles for the Playstation 2 and PC. The latest released game I have been working with is Cannoncruise which is available at stores in most of Europe for both Playstation 2 and Windows PC.
In the last 4 years my main programming language has been C++. Although I have worked with a number of other programming languages now (Assembly, Pascal, Delphi, Basic, Matlab, Java etc.), C++ has been the language that has taken my projects furthest. I admit that C++ can be quirky at times and that other languages (like C#) have solved some of the problems that one meets with C++. However if one is disciplined I have found that large well structured C++ programs are indeed possible.
The Gray Raytracer is the result of many months of work in my sparetime. I have many times before implemented small algorithms that could render simple objects like spheres and planes, but Gray was the first larger raytracing project I did which could handle multiple objects and millions of polygons. I hope that Gray over time will be improved and maybe one day would be the tool to use for rendering photorealistic computer generated images. The road is long though.