From the Inside Flap
The book can be read forwards or backwards. For example, if you wish to build up detailed implementation experience, you could start with Chapter 21 (Engine Architecture) familiarise yourself with the engine and development environment, and start writing new plug-ins using the theoretical chapters for reference when required. Alternatively you could take a more conventional approach studying the theoretical aspects first before moving onto to implementation.
Chapters are grouped into sections that are more or less self contained. These are:
Modelling and Foundation Maths
This section deals with the basic mathematics required to handle objects in three-dimensional space and the theory of object representation.
Classical 3D Graphics
Although much of the material in this chapter has migrated onto hardware, it is still necessary to have an appreciation of what the hardware does to be able to use it effectively.
This section deals with the technology developed by the games industry and the virtual reality industry which enable complex scenes to be rendered, to a reasonably high quality, in real time on a low cost graphics processor
Control of Objects
Mainstream techniques used to control the movement of objects are descried in this section. This ranges from simple low level control through to behavioural animation using AI technology. The material on AI is in the form of a debate concerning the potential use of the technology in the future.
A potentially important solution to the complexity problem in 3D graphics, both in terms of the creation cost and the rendering cost is the use of image based rendering techniques.
This section deals with the techniques needed to write a multiplayer game using the currently popular 1st person shooter genre as an example. We examine the software architecture of a games engine and look at the design of the engine. Finally a comprehensive reference manual for the engine is given.
The book is not intended to be a 'how to program' in C++ and OpenGL text and we assume a reasonable knowledge of C or C++. Detailed examples of various algorithms implemented in C++ are sprinkled throughout the text. These are extracted from the engine and are reproduced in the text for convenience. A quick read will give some feel for the structure of the algorithm. In most cases to fully comprehend the code requires them to be studied in conjunction with Chapter 21 and the Reference Manual.
The graphics API/library used is OpenGL. Pentium 3 code is given alongside the C++ equivalent for efficient matrix operation in Chapter 1 and DirectyPlay utilities are used in Chapter 20. Clearly these facilities need separate study and the purpose of the examples is to give a 'flavour' of their use in the applications.
From the Back Cover
This book is a comprehensive treatment of current 3D games technology. It concentrates on:
· real-time rendering, or the necessary enhancements of 3D graphics to enable rendering at interactive rates;
· topics from other areas such as AI, physics and collision detection, that are used in games;
· the software technology of games - engine architecture and multi-player technology.
The text is written around the engine Fly3D (included with a full SDK on the CD) that implements most of the described techniques. Readers can try out their own ideas by writing source code and experiment with existing demonstrations by writing plug-ins and altering existing ones. You can even develop your own game.
Features of the game engine include:
· BSP/PVS render management
· Light Maps for static geometry (pre-computed lighting with soft shadows)
· Normal maps (dot product texture blending) for dynamic objects
· Diffuse and specular vertex lighting for dynamic objects
· Volumetric fog with fog maps
· Detail Textures
· Multi-texture support
· Collision detection
· Dynamic coloured lights with distance attenuation
· Dynamic shadows - lightmap or stencil shadow volumes
· Physically based simulations
· Animated meshes (vertex morph)
· Tri-strips and fans
· Subdivision Surfaces
· Dynamic LODs using bi-quadric Bezier meshes
· Cartoon like rendering with dynamic cartoon lighting
· Multiplayer support (TCP/IP) with client/server architecture (using DirectPlay)
· 3D sound support (using DirectSound)
· Mouse and Keyboard input (using DirectInput)
· Intel ® Pentium III vector and matrix maths optimisation
· Complete plug-in directed
· 3D Max plug-ins for export/import fly bsp levels and creating landscapes and animated meshes
· Editor with real-time preview of game (set up game and object parameters while playing)
Sections of the book have been designed to be self-contained. The areas covered are:
· Modelling and Foundation Maths
· Classical 3D Graphics
· Real-time rendering
· Control of Objects - dynamics - AI
· 2D Technology
· Software technology
· Full Fly3D SDK including source code for Fly3D.dll, front-ends, plug-ins and utilities
· 5 demo levels: car, walk (2 levels), ship (2 levels)
· Engine Reference Manual and tutorials in HTML
· Book images
Go to www.fly3D.com.br for Fly3D SDK updates, new demos, FAQs and message board.
Alan Watt, based at the University of Sheffield, is the author of many successful books including 3D Computer Graphics, Advanced Animation and Rendering Techniques and the Computer Image.
Fabio Policarpo is a software developer and founder of the company Paralelo Computacao based in Rio de Janeiro. He coauthored The Computer Image and is currently working on independent 3D action multiplayer games.