The Awesome Power of Direct3D/DirectX

Peter J. Kovach

1997 | 840 pages
ISBN: 1884777473

$49.95 Softbound print  

RESOURCES

DESCRIPTION

If you are programming real-time 3D applications for siumlations, games, marketing, demonstrations or computer-animated videos using Microsoft's Direct3D Software Development Kit, this book is for you. Unlike other books, The Awesome Power of Direct3D/DirectX shows you how to build a complete working 3D application, including 3D sound, joystick input, animation, textures, shadows, and even collision detection!

It shows you how to write code using both Retained Mode and Immediate Mode. It does not bury the code in "wrappers" that hide the nuances of the SDK. Nothing is hidden.

What's inside:

REVISED PRINTING JUST OUT! Includes 100 new pages covering the new DirectX 5 commands and an expanded CD containing the complete DirectX 5 distribution and all of the demonstration projects. All of the subprojects for the tutorial chapters have been reorganized and rebuilt with MSVC++5.0 and DirectX 5.

CD-ROM contains:

WHAT THE EXPERTS SAY ABOUT THIS BOOK...

"I like the style of explaining the code as it is revealed and not hiding it from the reader."
-Jeff Lander, Darwin 3D

"A great book for the technically proficient-- has an excellent reference section with lots of technical information."
-Kyle Lussier, author, Power-3D

"The way the book is divided into a how-to section and a reference section meets the needs ot both less and more experienced programmers and avoids the necessity of keeping around multiple manuals."
-Kevin Hamilton, Georgia Tech

"One of the best of the new books... chock full of useful information and sample code."
-Phil Taylor, Microsoft DRG

ABOUT THE AUTHOR...

An independent developer of 3D graphics applications ane games, Peter J. Kovach has been a vice president with a national developer of virtual reality and arcade systems and CEO of a corporation developing 3D systems for advertising and product development.

Sample Chapters

Two sample chapters are available for download.

Chapter 3
Chapter 17

Introduction

The purpose of this book is to help programmers learn how to program 3D applications for such uses as simulations, games, marketing, demonstrations, and computer animated videos. This book describes how to program graphics applications using Microsoft's Direct3D Software Development Kit (SDK).

Many of the books that are released today attempt to make it "easy" for the reader to create his or her first application by developing libraries of commands. These commands are in fact encapsulated command sequences that manage to hide the code design from the end user. Although for the casual experimenter such an approach can be a nice time saver, the end effect is that the user never learns how to properly code in the target environment.

Other books give you numerous little applets, each showing you how to use one, or maybe two, of the features available in the SDK. The problem with these is that they fail to teach you how to use the available commands together to create a real application!

My intent in this book is to provide you with the grounding necessary to develop serious 3D applications using the Direct3D SDK. By showing you how the various commands are to be used, and how they interact with one another, you will learn not just which are the commands available but why they do what they do and how you can best put them to use.

This book will show you how the library of 3D graphic commands in the Direct3D SDK can be used to produce a high quality, high performance, 3D application. A detailed Retained-Mode application is shown and the step-by-step creation process is discussed in detail. This main code example demonstrates how to construct a full first-person perspective walk-around demonstration game scenario in Retained Mode, including full, variable shape object, collision detection.

This first major 3D tutorial application is designed to teach the user how to create Direct3D Retained-Mode applications step-by-step. The user is lead from the creation of the DirectDraw and Direct3D interfaces through the addition of lighting, 3D object loading, mouse/keyboard control, joystick control, 3D object creation, 3D object/viewpoint animation, collision detection, sound, animated objects, shadows, and fog. At the completion of the tutorial, you will have gained the knowledge necessary to create complete Direct3D applications. Only your imagination and time will then limit or enable you to produce awesome 3D applications on your own home PC.

The remaining applications demonstrate critical areas such as shadows and full-screen mode. A second, shorter, tutorial covers the use of Immediate Mode to create an application. This tutorial shows you a step-by-step description of how to write your first Immediate Mode application. I will show you all of the code steps necessary, and there are a lot!

The book also provides a source CD containing the code defined in the body of this text. In addition, 129 excellent 3D objects in both DirectX and 3D Studio format (.x and .3ds) have been included for your use in developing Direct3D based applications. Many of these are better than the objects you would pay more than $100 for commercially. I have also included fifty-two superb textures which you can apply to these objects. A list of the objects, and the textures, included on the CD can be found in the appendix at the back of this book.

You will also notice that I mention 3D Studio several times in this book. This is because it is the easiest tool to use for generating both static and animated objects. These objects can then easily be converted to DirectX File Format using the conv3ds tool included as part of the DirectX SDK on the CD accompanying this book.

Skill level

Because this book takes an exhaustive look at the Retained Mode of the Direct3D SDK, and a detailed look at the Immediate Mode, it will appeal to anyone in the simulation and gaming/graphic world. It will assist any person who has the desire to develop new detailed, high speed, 3D simulations, games, or environments, including artists and designers.

To utilize the information within this book effectively in your own project, you must possess a reasonable knowledge of C and it helps to have a minimal familiarity with C++. This text assumes an intermediate level of experience in the area and does not attempt to teach you C/C++ basics. If you feel you need a refresher on C, you may wish to get a copy of a good C book such as The C Programming Language by Brian W. Kernighan and Dennis M. Ritchie.

This book is designed so that even the most graphically inexperienced reader can understand the subject matter. Advanced graphics programmers will learn the difficult nuances of Direct3D which will greatly assist their development efforts. It is intended that this book help entice the reader to begin or continue to view the development of a graphic application as an exciting endeavor rather than an overwhelming challenge.

Target audience

Professionals: Developers who like to have a reference library on hand to remind them of previously learned knowledge or to enhance their current level of 3D graphic expertise in the usage of Direct3D.

New professionals: Individuals who have recently entered the professional field in the graphics domain. This book will assist these users in learning a new, high performance, graphic library for use in programming advanced 3D applications.

Shareware or hobby programmers: Those who do not have much time for the research but enjoy doing the development. This book will provide a detailed understanding, as well as sample code, to program a 3D application using Microsoft's Direct3D.

A little about myself

I have been involved with computers since the advent of the personal computer. I have owned every type of home computer created, including the original Elf, Exidy Sorcerer, Pet, Apple, Macintosh, every Tandy machine made (literally), and numerous IBM machines/clones, from the 8086 to the Pentium family. I have also owned many of the workstation class machines such as the Silicon Graphics Indigo II Extremes, and so forth.

I have always been fascinated with computer graphics and have been developing systems and algorithms since the 1970s. I started my professional career developing autonomous vehicle and flight simulators for such vehicles as F-15s, F-16s, and Apache helicopters. Recently, I was the vice president of a national firm involved in the development of virtual reality exercise equipment and arcade systems. I am now spending much of my time writing 3D graphic applications and developing 3D animations.

I hope you enjoy this book and find it a valuable resource for your future software development efforts.

Feel free to contact me at kovach@imageman.com or at my website which can be reached from http://www.manning.com/Kovach. I would be happy to discuss the book, 3D animation, or any other graphic issues. I will also continue to post free Direct3D objects, textures, code samples, and tutorials on my website.

Peter Kovach

WHAT REVIEWERS ARE SAYING

This is the most detailed book on the market covering Direct3D Retained Mode (RM). In addition, it provides an overview of other DirectX technologies, such as Direct3D Immediate Mode, DirectDraw, DirectInput, and DirectSound. This book is part developer's guide and part reference.

--Reviewed on Clipcode.com

I recently purchased your book and I have been very pleased with its content. Thank you for bringing some real-life application details to an otherwise 'mystical' API.

- Adam J. Stokes
Senior programmer


Your book certainly deserves the highest ratings. In the Direct3D newsgroups and mailing lists I participate in anytime someone asks for the name of a book to learn DirectX everyone responds with the title of your book. I just read a message where someone was announcing that it just got in stores in England... Thanks for writing such an informative book.

- Albert Reed
Software developer


Hi, I'm writing you from Germany. I bought your great book on an trip to the states..... Really the first book, that gives detailed information beyond the documentation that comes with the Direct 3D dev-kit anyway. (That's the only stuff that other books usually contain...)

- Markus Rahlf


My name is Pablo de Heras Ciechomski and I'm a computer engineering student at the Lund Institute of Technology in Sweden. I'm a computer hobbyist and former demo graphics programmer. I have been used to doing all the dirty work directly to the video registers and therefore D3D/DX is a real blast. Although I'm used to finding information on the web especially, I find your book to be very filled with much crucial information. DX isn't very well documented but you prove that wrong with this book. Now I don't have to cruise the web for hours on end getting confusing information.

- Pablo de Heras Ciechomski
aka Paulus of Prophets


What I liked most about the book beside the content itself, of course, was the code layout for detailed explanation. At the beginning I wanted to see the complete piece of code for each routine, but afterwards I realize that your approach was better although not standard.

- Elkin Ng Fung


I am especially interested in the chapter on terrain...

It appears as though you went to a lot of work to carry the reader thru the process - in each chapter! Nice.

Do you have another book planned? I hope so. It is hard to find good computer books these days.

- Charles W. Howard, Ph.D.


Finally, a book that shows you nothing but the real DirectX/Direct3D! It has a permanent place on my desk next to my monitor.

- Mike Hershberg
Independent shareware author


Well congratulations and many thanks. I was up late last night reading your book, and I think it is an excellent learning tool and reference. Definitely the best I've seen on DirectX.

I was most impressed with the collision detection. It was very straighforward and easy to understand.

- Steven Miers


I must say that I am really enjoying it. I think you got the blend just right. . . Hope you will bring more out in the near future. Books like this are a boon to people like myself who have to train students straight out of university, who have no idea about the real world.

- Keith Hook, UK