# Fastgraph 3D Tutorial

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.

Introduction
Changes in Fastgraph 6.0.

Chapter 1 Coordinate Systems
Defining a 3D coordinate system. Establishing your point of view. The extents of your vision.

Chapter 2 Displaying Objects in 3D Space
World space and object space. Rotation, translation and projection. Example source code.

Chapter 3 Keeping Objects in Order
Backface removal, z buffering and z clipping. Setting the render mode.

Defining texture maps. Perspective textures. Gouraud shading.

Chapter 5 Working with Direct3D
Features. Pros and cons. Initializing. Example program.

Chapter 6 Advanced Rotation and Motion Techniques
Absolute and relative moves and rotations. The trouble with Euler angles.

Chapter 7 Image Processing with Fastgraph
Alpha blending, gamma correction. Example program.

Appendix 1 Doing the Math
Rotation and translation. How to build a transform matrix.

Appendix 2 Fastgraph Quick Reference Chart
Functions sorted by functionality.

Appendix 3 Absolute Beginners Guide to Programming with Fastgraph
A few more tips for getting started.

## Introduction

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:

• 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.

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.