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.
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.
2. Hardware2.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.
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.
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.
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.
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).
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.
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.
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.
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.