home page        story       3D-gallery      links         about me

here is the story

Please, click on the item you are most interesting in, or just scroll the page down and enjoy reading the article.

(back to the top of this page)


1. The story
The whole story started some 15 years ago. I was a high-school student attending the Mathematical High school in Zagreb (Croatia). Somebody in my class had a copy of the National Geographic magazine. It was the March 1984 issue with a holographic 3D picture of an eagle on the cover. I was very impressed with the picture and very soon persuaded the owner to sell me that copy. It was my first touch with stereoscopy.

About 10 years later I was a student of the Faculty of Electrical Engineering and Computing, and preparing my diploma thesis. I was given a task to make a computer program that would show that a several microprocessors can run a program faster than only one. I had the "transputer technology" available to make network of several microprocessors.

Transputer is a microprocessor made to be used in the concurrent (parallel) running with other transputers in the network. I was also given the task to think out an example that would illustrate the result in an attractive graphical way. The most interesting and attractive graphical application I could think out was creating of the real 3D motion pictures, similar to those which I had seen in the National Geographic Magazine. Beside that, a real 3D picture requires two 2D pictures (one for each observer's eye), and I had two or more transputers available. The first idea was to make a system where each of two required 2D pictures would be created by its own transputer.
So, I started to work on my idea... As it usually happens, I thought I was the first human being on Earth and maybe the only living creature in the whole Universe who has ever had the idea to make a real 3D picture on a standard computer monitor. Later on, it will turn out that I was fairly wrong about this. Fortunately, at that time, I was unaware of it. So I began to work with a great enthusiasm. I knew there had to be the way to obtain a "picture outside of the screen". The stereoscopic system which I was about to create had two major goals:

 1.) displaying 3D moving pictures

An impression of the third dimension is obtained by presenting pictures in a shape of anaglyphs. This means that pictures are displayed on the screen as red and blue lines or points and you must use an appropriate glasses (with red and blue filter) to be able to see a real 3D picture.

 2.) fast processing of picture

A fast processing is achieved by the use of a parallel processing principle. A multiprocessor system, realized as a transputer network is used therefore. It is able to run parallel (concurrent) programs and to display pictures on a standard computer monitor.

The original task was to make a program for the transputer network, but as time was passing by I was more and more interested in the stereoscopy and less and less in the original task. Very soon I obtained the first 3D pictures "outside of the screen". When some professors saw my "3D cartoons", they told me there was an old professor who also wanted to see those 3D pictures and talk to me. A few days later they brought along the old professor to me. His name was Josip Zupan. Although he had been retired for a long time, he was very respected among other professors. In his trembling hands he held some 3D pictures made in his diploma thesis at the same University almost 50 years ago. Those drawings were made up of red and blue lines on a white paper. He couldn't use any calculator or computer because they simply didn't exist 50 years ago. There was a war (World War II) going on in Croatia when he was working on his diploma thesis. Now, when I was working on my diploma thesis, there was a war going on in Croatia, too. So, our interest in the stereoscopy was not the only similarity in our careers... Some of his drawings I put in my thesis. Later on, after I had graduated, I presented my stereoscopic system at the International Conference on Broadband and Multimedia Workshop, held in Zagreb (November 1996.) at the same University where I had graduated. Sadly, professor Zupan died a year earlier. What a pity he didn't know of the ISU. I'm sure he would be a member...

In that time, I wondered how to continue developing my "3D-idea". I had lots of ideas about possible applications of stereoscopy, especially in the computer science. Should I write the whole program once again in C or C++ for a standard PC? I presumed that some similar programs likely already existed, although I didn't know for it. So I started to search the Internet in order to check if something similar already existed and to get in touch with somebody or some company who was interesting in that subject. That's the way I found ISU and became a member.
(back to the top of this page)

2.  Hardware

2.1.  Global description of the stereoscopic system

The whole system looks like a common personal computer (PC), but there are two monitors instead of one (Fig. 1). It consists of a standard PC, transputer network installed in the PC on a special board and a separated monitor connected directly to the transputer network, (Fig. 2). PC contains its own monitor, keyboard, hard-disc, disc-drive, processor and memory. It is used only for making, storing, and controlling programs that are made for the transputer network. The PC-monitor and the PC-keyboard are also used for communication between the user and the transputer's program. The separated monitor is used only for displaying 3D-pictures directly from the tansputer network. Beside that, the system still requires a special red and blue glasses to be completed and to make observer able to see 3D-pictures.


Fig. 1.  Global look of the system

The global concept of the system is made in a very flexible way. The PC could very easily be replaced with a more powerful workstation, or some other kind of computer, without any significant modification on the transputer network or its program. On the other hand, the separated monitor could be replaced with a Head Mounted Display (HMD). Anyhow, the basic idea of this work, that is a parallel processing principle and displaying true 3D moving pictures, can be preserved. So, the system made in this work can be the base, or at least the basic idea for developing a powerful virtual reality (VR) system, 3D TV or a stereoscopic system.

Fig. 2.  Functional description of the system

2.2.  Transputer network

2.2.1.  Simplified configuration

A simplified configuration of the used transputer network consists of two transputers placed on the transputer board and connected with the physical channel. One of them is also connected to the separated monitor and it is able to execute drawing operations on that monitor (Fig. 3). There are a few different programs made in this work for the same transputer network.

Fig. 3.  Simplified configuration of the transputer  network and the separated monitor

Both of the used transputers are of the type IMS T800. The transputer IMS T800 is a 32-bit processor with on-chip floating-point arithmetic unit, capable of 1,5 Mflops. It has direct access to the 2 Mbytes of frame store and also to 2 Mbytes of workspace RAM. This makes it ideal for performing 3D graphical transformations and drawing operations.

  (back to the top of this page)

3.  Software

There is a big difference between programs made for one-processor and programs made for multiprocessor systems. The major difference is that programs made for multiprocessor systems can be consisted of several processes that are executed in the same time, but still make one program.

3.1.  Objects available in the stereoscopic system

There are several objects available in the realized stereoscopic system: a house, a prism, an incomplete pyramid, an octahedron etc. ( Fig. 4).

Fig. 4.  Some of the 3D objects available in this stereoscopic system

It is possible to change the object that is displayed on the screen while the program is running. There are also some functions available in the program that can be applied on the displayed object. These functions are designed especially for stereoscopic researches. By applying them on the displayed object, observer can rotate the object (around any of its axes), move it (left, right, up, down), bring it closer, move it away, or make it bigger/smaller on the same position in the virtual space.

3.2.  Programs designed for the transputer network

3.2.1.  General about the realized programs

There are several programs designed for the same transputer network in this work. Every one of them is designed with a certain purpose and presents similar, but however, a different configuration. Programs Stepro and Object are the most important of them:
 


The both programs are strictly module-structured. This means they are made of program modules that can be easily combined in a few different ways and create a different software structure. Some new program modules can also be added, or some of the old ones can be removed. The programs are written in the programming language OCCAM2. OCCAM2 is a modern and a powerful programming language that supports parallel processing. Some of the advantages of this language, which are applied in this work, are simple and fast matrix operations and commands for communication throw the channels between processes, i.e. transputers.

3.2.2.  Program STEPRO

The name of this program is derived from the expression "STEreoscopic PROjections". This program presents a configuration with two logical channels between transputers in the network, used for a different direction of communication. The main purpose of this program is research of the stereoscopic projections. It is especially suitable for researching an influence of different parameters of the picture to a 3D impression. This program enables variation of these parameters while the program is running. Program STEPRO is consisted of two processes: process GRAF and process MAT. Each of them is loaded and executed in its own transputer, which means that they are executed in the same time, but on the different transputer (Fig. 5). Processes are connected with two one-way logical channels, which makes a two-way communication. Both of the logical channels are realized with the one physical channel.

Fig. 5.  Processes of the program STEPRO

3.2.3.  Program OBJECT

This program displays an incomplete pyramid rotating around its axis, a few centimeters outside of the monitor screen. The program presents a full "pipeline" configuration in a sense of a software and a hardware structure. The main purpose of this program is to obtain as fast processing of picture as it is possible on the given transputer network. Program OBJECT is consisted of two processes: process PGRAF and process PMAT. Each of them is placed and executed on its own transputer. Both processes are executed in the same time, but on the different transputer (Fig. 6). Processes are connected with the one one-way logical channel.

Fig. 6. Processes of the program OBJECT

Execution of this program does not require any communication with observer (remember that it was the case with the program STEPRO). When the current picture is drawn, process PGRAF receives data for the new picture from the process PMAT. The current picture is being erased and the new one is being drawn, while the process PMAT calculates data for the new picture. After that the process PMAT sends data for the new picture to the process PGRAF and the whole process repeats by itself. The program OBJECT starts with initial data for drawing the first picture. Every next picture presents pyramid from the previous picture but rotated for a fixed angle around its vertical axis. Note that this configuration ("pipeline") is especially suitable for application with HMD. Each of two small monitors installed in a HMD, could be connected to its own "pipeline"-chain of transputers and get a picture from it. In that case, the transputer with the process PGRAF on the Fig. 6 would be the last one in the processing chain for that particular small monitor, i.e. for the particular user's eye.

(back to the top of this page)

4.  My observations

4.1.  Moving of observer
The whole stereoscopic system is made for a still observer who is sitting on a certain distance from the monitor screen and has got a certain distance between his eyes. This means that 3D-pictures are made according to the supposed position of the observer's eyes. However, in this work it is found that observer can move from his supposed position and still be able to see a 3D-picture as well. As he moves around, picture looks as it moves with him and as it follows him around. Although the picture looks a little bit different, sense for the third dimension stays preserved, no matter of the observer's position and deformation of the picture. If there are a few observers who are watching the same 3D picture, each of them will see a little bit different picture, depending of his position in front of the monitor screen.

4.2.  Influence of the distance between the pictures
An impression of the third dimension is obtained by displaying two pictures and providing that each observer's eye gets only one of these two pictures. So, a sense for the third dimension is directly dependent on a distance between displayed pictures. That distance was implemented in a program as a variable parameter, so it was easy to change it during the program execution and to study influence of that variation to a sense for the third dimension. It was discovered that a bigger distance makes a better sense for the third dimension. However, that distance between pictures mustn't exceed a distance between the observer's eyes. Otherwise, a picture cannot be recognized as a 3D-object.

4.3.  More complicated objects look better
Pictures realized in this work are very simple. They are made up of points and lines drawn on the screen (Fig. 4). It is found that more complicated pictures are easier to be recognized as 3D objects placed in a virtual space. Especially attractive are 3D-objects consisted of many edges and that rotate around its axis.

4.4.  A range of the best sense for the third dimension
It is discovered that the best sense for the third dimension is obtained at a distance of about 20-80 cm from the observer's eyes. The possible reason for that is the fact that this is the range of space that we can reach with our hands, so we have the best practical experience just in that range. Observer can very easily determine the position of every 3D-object that is placed in that range. It's obvious which object is close to or distant from the observer. Especially interesting are objects that are placed in that range, but outside of the monitor (i.e. between the screen and the observer). It looks like you can touch or grab that object. Since the program on the PC-monitor always displays an accurate distance (given in centimeters) from the plane of the monitor screen, observer can always compare his own sense of the object's position with an accurate amount of that distance. For a distance close to the plane of the screen (e.g. 10 cm inside / outside of the screen) observer's sense for a distance almost always dovetails with an accurate distance. It is very easy to bring the object exactly on the plane of the screen, so that one part of the object is inside, and the other one is outside of the monitor.

4.5.  Swap of the left and the right picture
An impression of the third dimension is obtained by displaying two pictures, the left one and the right one in different colors (red and blue) on the screen. Using a special red-and-blue glasses provides that each of these pictures is brought to the particular observer's eye. Simply swap of the left and the right glass causes a swap of the left and the right picture in the observer's eyes. Obtained picture is a 3D-negative of the original picture. All points of a virtual object that were closer to the observer, now look as they are on a distant from him and vice versa. The object still looks as a 3D-object, but compared with the original one, it's inverted in space. It also looks very deformed because a calculation of perspective has been made for the original picture, not for the inverted one.

4.6.  Changing of the background color
System basically displays a red and a blue picture on the black monitor screen. In order to make an experiment with a background color, a special program mode with a white background color has been created. In this mode, colors of the left and the right picture (blue and red) must be swapped. Obtained result is quite good, but however, not as good as it was the previous one obtained with a black background. Reason for that phenomenon is a different intensity of the background light (white), visible through the red and the blue glass of the glasses. The best result, considering the background color, is obtained with the black background in the dark room.

4.7.  Difference between reduction and moving away
Especially interesting is a difference between decreasing the object and moving the object away from the observer. If a picture weren't three dimensional, those actions would look almost the same. But observer who sees in three dimensions can judge about the real size of the object according to his distance from it, i.e. according to the object's position in the virtual space. A 3D vision makes the observer able to distinguish between increasing and approaching the object.

4.8.  Bottleneck of the used transputer network
The transputer network (Fig. 3) is used in order to attain as fast processing of picture as possible. The slowest part of processing-chain is drawing on the screen. Since only one transputer can write to video memory (VideoRAM) of the separated monitor, process of drawing cannot be split to a few concurred processes and cannot be executed by more then one transputer at a time. In the applied configuration of the transputer network and the separated monitor (Fig. 3), transputer connected to the monitor is a bottleneck of the whole configuration. So, acceleration of that process would significantly increase the speed of the whole chain of processing. If it had been possible to use two separated monitors (one for each picture), a great increase of speed would have been reached. Therefore, much better results would have been obtained if HMD (Head Mounted Display) had been used. In that case, each of two pictures, required for a 3D vision, is brought to its own small monitor that is the part of the HMD. Since two small monitors are completely separated, each of them can be controlled by its own transputer (or it's own chain of transputers). That all makes transputer technology ideal for application in VR systems.


(back to the top of this page)