Welcome to the Fastgraph 3D tutorial! Whether you are a current Fastgraph
user, or just want to learn more about 3D programming, you will find
interesting information here.
Table of Contents
Changes in Fastgraph 6.0.
Defining a 3D coordinate system. Establishing your point of view.
The extents of your vision.
Displaying Objects in 3D Space
World space and object space. Rotation, translation and projection.
Example source code.
Keeping Objects in Order
Backface removal, z buffering and z clipping. Setting the render mode.
Textures and Shades
Defining texture maps. Perspective textures. Gouraud shading.
Working with Direct3D
Features. Pros and cons. Initializing. Example program.
Advanced Rotation and Motion Techniques
Absolute and relative moves and rotations. The trouble with Euler angles.
Image Processing with Fastgraph
Alpha blending, gamma correction. Example program.
Doing the Math
Rotation and translation. How to build a transform matrix.
Fastgraph Quick Reference Chart
Functions sorted by functionality.
Absolute Beginners Guide to Programming with Fastgraph
A few more tips for getting started.
Before diving in to 3D theory, let me say a few words about Fastgraph 6.0.
Fastgraph 6.0 was designed to greatly simplify 3D programming for the
average programmer. The functions described here will, for the most part,
shield you from the intense mathematics that can bog down 3D development.
I'd like to thank members of the Fastgraph discussion list for their
contributions to Fastgraph 6.0. I would especially like to thank Todd
Porter, David Freeman, John De Goes, and Mike Kelleghan for their
ideas and contributions.
Speaking of contributions to Fastgraph, I'm pleased to report I am now
listed as a co-author of Fastgraph. Although Ted still wrote all the assembly
language code, he is generously giving me credit for my work on the 3D
functionality. Much of the 3D technology was researched, designed and written by
me in C++, and then ported to assembler by Ted.
I beta tested the 3D code by writing a game editor called FRED. FRED
stands for Fastgraph Rendering EDitor. It is not a
full-blown game editor yet (I'm still working on it) but you may find it
interesting. You are welcome to play with it and use it to build sample levels.
You are also welcome contribute code to it. Fred was built using
Borland C++Builder 4.0, an exceptionally good compiler in my opinion.
Here are some other changes in Fastgraph 6.0:
We have spent nearly two years developing Fastgraph 6.0 for Windows. It is our
most ambitious upgrade to date. Fastgraph 6.0 is new and improved,
but its most important features, its speed, reliability, and
ease of use have not changed. I hope you enjoy will your Fastgraph experience.
Fastgraph 6.0 supports 32-bit Windows operating systems only. That includes
Windows 95, 98, Me, NT4, 2000, and XP.
There is no Fastgraph 6.0 for DOS. We will continue to support Fastgraph 5.0
for DOS. If you are using Fastgraph 5.0 in an embedded system, you do not need to
upgrade. We will provide free maintenance updates as in the past, particularly when we add
support for new video cards. The 3D functions in Fastgraph 6.0 will not work
under DOS, though.
Fastgraph 6.0 comes with an online manual. There are several reasons for this:
keeping costs down, saving trees, and allowing incremental upgrades. Manuals will
be provided in several formats, including Adobe Acrobat PDF files, Windows help
files, and web pages. If you want a printed manual, you can print it.
Fastgraph 6.0 supports Direct3D Immediate Mode. D3D is an option, not a
requirement. Pros and cons of using DirectX are discussed in Chapter 5.
Fastgraph now supports powerful image processing functions. Alpha blending,
gamma correction, grayscale and so on are discussed in Chapter 6. This doesn't
really belong in a 3D tutorial, but I wrote a cool demo program and I felt
like talking about it.
Fastgraph now supports AVI files. Displaying an AVI file couldn't be simpler
with fg_showavi(). If you want more control of your AVI files, for
example if you want to show one frame at a time, you can use Fastgraph's
low-level AVI file functions.
Are we done yet? Not by a long shot. Fastgraph 6.0 is designed to be added to.
We still have a wish list (PNG files, anyone?) and we plan to continue development.
Check back for periodic updates, and feel free to email feature requests.
As always, Fastgraph comes with free technical support, and assembly language
source code is available at an additional price.