Introduction



Cutting-edge computer games use different graphics subsystems -- so-called 3D graphics engines. Source (used in Half Life 2), Unreal Engine (Unreal Tournament), idTech 4 (Doom 3), CryENGINE2 (Crysis) or Clever's Paradox engine are well-known among the players and the game industry experts.

It's time to learn a new 3D game engine name: Microsoft Excel.

It is understood that Excel is an all-round office tool, but probably it is unknown that it has a bunch of features that makes Excel a high-class 3D graphics engine.

In this article I will demonstrate Excel's arithmetical facilities, the embedded rendering subsystems (there are two of them!) and the revolutionary approach which might just cause a paradigm shift. I hope you will discover that Excel effectively and efficiently incorporates practicality, tons of features, the multi-platform portability and the high performance with the unique and futuristic 3D engine features.

The chapters even have demo programs and movies created with the Excel 3D engine.

Warning: Only for determined experts!

Arithmetic

Maybe Excel's arithmetic functions need a demonstration least of all. The core functions of the 3D object manipulation (e.g. the four rules of arithmetic, trigonometric functions, matrix algebra) mean the essence of Excel - but it is worth examining them because of their unequalled compactness and its magnificent elegance with which Excel towers above the current entire 3D engine field.



Compactness

It is very likely that not too many game engines solve the whole 3D arithmetic in a half screen size. The upper part of Figure 1 contains the spatial shift, the rotation around X, Y, Z axis and the perspective projection as well. As it can be seen in the demo applications, the polygon visibility, the Z-buffering and the reflection calculation require about the same size.



Figure 1: Essence of the 3D engine



The yellow color marks the user-defined parameters and green color indicates the engine-calculated values. Numbered areas contain the following data:



Parameters of the perspective projection 3D coordinates of the objects' points (relative to their center) Shift and rotation matrix (further details can be found e.g. at http://en.wikipedia.org/wiki/3D_projection) Parameters of the rotation 3D absolute coordinates of the points after the shift and rotation 2D coordinates of the points after the perspective projection Screen coordinates of the points End points of the objects' edges Formula of an element in the shift and rotation matrix. Simplicity and compactness are clearly visible.

Elegance

The development environment of Excel not only allows the programmers to edit a plain or syntax-highlighted source code, but it also provides all of its well-known formatting functions for the engine developers: several fonts can be used simultaneously (with different types and sizes), the cells and texts colored, pop-up notes added, and -- sit down! -- sounds or even entire movies inserted if required.