The authors try to solve the difficult problem of presenting both the philosophy behind virtual reality (VR) and ways to implement some of these concepts on your home PC. Consequently, the book is split into two major parts. The first part deals with typical VR applications, the history of VR, some physiological aspects of VR, and current topics of research in VR. The second part describes actual techniques for implementing a VR system in C, by touching on many popular three-dimensional graphics algorithms and providing actual C code for them. This code and the executable files are included on a 3.5-inch diskette, which makes it a lot easier to see the programs perform. Appendices give references to literature, ftp sites, and network resources.
The authors’ introduction to VR for novices deserves praise for being up to date, fairly comprehensive, and written at a level that will capture the interest of readers new to the field. They manage to clarify the various interpretations of the term “virtual reality.” The survey of the history of the field helps the reader understand the current trends in VR.
The introductory chapters definitely whet the reader’s appetite for what is supposed to be the real meat of the book: the do-it-yourself section. Unfortunately, the book falls short of these expectations. Many concepts, including sound and haptics, are not mentioned at all in the programming chapters. Thus, the technical section degenerates into an introduction to three-dimensional graphics with some added material on motion and physical simulation. The coverage of three-dimensional graphics itself is not at the same level as in many of the excellent textbooks available on this subject, such as Foley et al. [1] and Harrington [2], both of which are cited by the authors. The exposition of three-dimensional graphics is too brief to serve as material for independent study, and at times topics are introduced but explained only many pages later. To make matters worse, the mathematical notation is sometimes sloppy or inconsistent.
This book is written in a conversational and nontechnical style, which makes it fun to read. It is obviously addressed to readers with some programming background in C who want to learn more about VR. The book is indeed a good and easy-to-understand introduction to the subject. It cannot be recommended for its coverage of three-dimensional graphics, however.