i
i
i
i
i
i
i
i
18.5. A Multi-Projector VR Theater System 515
and the two peripheral sections are displayed by a slave computer under the
remote control of the master. This arrangement is described in Figure 18.6.
As we have noted before, it is necessary to arrange some overlap between the
images. This complication necessitates sending more than one half of the
image to each of the two pairs of projectors.
We don’t have space here to go into a line-by-line discussion of how the
code works. As you might guess, however, we have already encountered most
of the coding concepts we need to use
3
in previous chapters. It is now only
a matter of bringing it together and adapting the code we need. By knowing
the overall design of the project software, you should be able to follow the
fine detail from the documentation on the CD and comments in the code.
18.5.1 Hardware and Software Design
Sincewearegoingtobedrivingfourprojectors,wewillneedtwoPCs,each
with a dual-output graphics adapter. The PCs will be connected together
through their Ethernet [2] interfaces. YoucanjointhePCsinback-to-back
fashion or use a switch/hub or any other network route. In our program, we
assume that the PCs are part of a private network and have designated private
IP addresses [5] of 192.168.1.1 and 192.168.1.2. The two machines will
operate in a client-server model with one of them designated the server and
the other the client. On the server machine, a program termed the master will
execute continuously, and on the client machine another program termed the
slave will do the work. It is the job of the master program to load the images
(or movies), display their central portion and serve the peripheral part out to
the slave. It is the job of the slave to acquire the peripheral part of the image
(or movie) from the master and display it
4
.
Whilst the same principles apply to presenting images, movies or interac-
tive 3D content across the multi-projector panorama, we will first discuss the
display of wide-screen stereoscopic images. The software design is given in
block outline in Figure 18.7. In Section 18.5.3, we will comment on how the
same principles may be used to present panoramic movies and 3D graphics.
3
Actually, we have not discussed Windo ws sockets and TCP/IP programming before but
will indicate the basic principles in this section.
4
Wedon’twanttocomplicatetheissuehere,butontheCDyouwillfindacoupleofother
utilities that let us control both the master and the slave program remotely over the Internet.
You will also see that the architecture of the master program is such that it can be configured
to farm out the display to two slave programs on different client machines. It could even be
easily adapted to serve out the display among four, e ight or more machines.