Author Biography So Far...
Here is a timeline summarizing major events about me relating to
computer graphics and the writing of this book. The entries are in
reverse chronological order.
- April, 2003
- I start porting all the sample code for my book to DirectX 9.0 and
update the samples to reflect the new features of the API. I am a
firm believer in having used an API before you can claim to be able to
write about it authoritatively. After I port each C++ sample, I
recast the sample in C# and Visual Basic.Net. Although my book will
not cover the managed Direct3D API in terms of syntax of printed code
excerpts, I discover that the managed API is nearly identical in most
respects to the C++ API. Of course, the concepts haven't changed at
all, making my book very helpful for developers using the managed
API. Porting my working C++ samples to the managed APIs gives me a
chance to get a little more familiar with managed development in both
C# and VB.Net. I start answering more questions on the managed DirectX
- March, 2003
- I make a comprehensive list of all the
changes for DirectX 9.0 to the Direct3D API. I start going over
the existing manuscript and make notes for where things need to change
or where new material has to be added. One comment that I've often
heard when I tell people I'm writing a book on Direct3D is that my
book will be "obsolete" as soon as it comes out. I've always
maintained that if a book explains concepts it lasts forever even
though the API may shift here and there. After all, we still do the
same things in computer graphics that were done in the mid 1970s, we
just use a different API in order to perform the same tasks. As I
mark up my manuscript for places where it needs to be updated to
DirectX 9, my hypothesis is confirmed: the changes are minor and
consist of a few paragraphs or sections here and there. Many chapters
have very minor changes or no changes at all. The big change is the
addition of new chapters to cover new material in DirectX 9, such as
the new animation objects in D3DX or the high level shader language.
I start participating in the DirectX 9 "SDK Update" beta so that my
book will cover the most recent material available.
- February, 2003
- I attend the MVP Summit in February where I meet with a
representative from Microsoft Press. While Microsoft Press has too
full a pipeline, I get a lot of good advice about how best to pursue
the publishing of my book. I terminate my contract with
Addison-Wesley and begin discussions with another publisher. The
content of the book shifts to encompass the most current release of
the DirectX SDK available before the book is finalized. I had hoped
to just "get it done" as 8.1 in the first edition and produce a second
edition as 9.0, but the book industry tells me that making a first
edition that covers an "old" version of the API is pointless. Its not
pointless because consumers won't be interested (my own informal
polling showed a 60/40 split in favor of moving to DirectX 9 for the
content), but that the buyers for the distribution chains who don't
know anything about technology but can see that "9" is more recent
than "8" won't purchase books that are for "8".
I decide to shift the target of the first edition to the most
current release of DirectX 9 as is possible before the book is
- December, 2002
- DirectX 9.0 is released and I'm faced with a tough decision.
Should I finish the book as DirectX 8.1 or update to DirectX 9? I
continue working on a DirectX 8.1 version since I still have a few
chapters to write that won't change in any significant way whether its
DirectX 9.0 or 8.1.
- August, 2002
- I attend SIGGRAPH 2002 and hear about the "demo scene" for the
first time and I'm immediately interested in it. I spend time talking
with Phil Taylor and Vince Scheib to learn more about it. I start
thinking about organizing a demo party in Salt Lake City in 2003.
- January, 2002
- The DirectX 9.0 beta starts up and I log
enough bugs (mostly doc bugs) on one of the release cycles of the beta
to win first prize in the bug contest. I choose a copy of Visual
Studio.Net so that I can give it away to a demo scener.
Most of my free time in 2002 is spent answering questions to make
sure that I know the API inside and out. I work hard on the
manuscript as often as I can, increasing the page count to
approximately 500 pages.
- January, 2002
On January 24th, 2002,
I was awarded status as a Microsoft Most Valuable Professional for answering questions
about Direct3D and Windows Installer.
The MVP program does not
constitute an employment or contractual obligation with Microsoft.
- November, 2001
- DirectX 8.1 is released. Being an incremental change from DirectX
8.0, its easy to update my manuscript to DirectX 8.1. I participated
in the beta, filed a bunch of doc bugs and some bugs on the API.
- August, 2001
- At SIGGRAPH 2001 in Los Angeles, I make 500 promotional flyers for
my book and hand them out during the conference. This generates a
significant amount of interest in my book and even starts some
discussions with professors to use my book as a textbook in their
introductory 3D graphics classes. However, I still need to finish the
book and the warnings from my colleages about the size of my chosen
task start to sink in :-). I talk with Kurt Akeley, author of the
OpenGL 1.0 specification, and he encourages me to finish the project.
- March, 2001
- I attend the "DirectX Developer Day" that Microsoft holds at GDC
2001. This is the first time I get a chance to show my pipeline
poster to members of the Direct3D development team from Microsoft.
They like it enough that they ask that I send them a copy of the Visio
file for large format printing.
- While working on DirectShow related projects at Philips, I attempt
to write my book during my spare time. Its slow going because I'm
writing the book that I would want to buy and I am a
harsh critic of books that don't tell the whole story while referring
you to the SDK documentation or tell it with errors, omissions,
spelling mistakes, etc. I start working on a diagram of the entire
Direct3D graphics processing pipeline.
- March, 2000
- I attend the "DirectX Developer Day" that Microsoft holds at the
Game Developer's Conference 2000.
I get my first exposure to the DirectX 8.0 API in a technology preview
release and I decide to target my book at DirectX 8 instead of DirectX
7. It is clear that the new shader approach to sophisticated
rendering effects is going to be important. I participate in the
DirectX 8.0 beta program.
- December, 1999
Addison-Wesley accepts my proposal, we
sign a contract and work on the book begins in earnest. I begin
writing my book in my free time outside of work.
- August, 1999
- I obtain employment with Philips Digital Networks, building DirectShow
based applications for television news journalists and broadcasting in
general. Meanwhile I'm writing book proposals to publishers for a
book on Direct3D. I first approach O'Reilly and Associates as the
publisher for my book. After a long time spent trying to get their
attention on the project, I eventually give up on them and begin
seeking out other publishers. DirectX 7 is released and I start
studying the Direct3D immediate mode interfaces.
- July, 1999
- I begin posting to the DirectXDev
- April, 1999
- I start posting to the DirectX
- January, 1999
- I take a trip to the Yucatan
peninsula and gather video and photographs for the purpose of buiding
3D reconstructions of Maya cities as an experimental project.
- After working at PTC for three years, I cash out my stock options
(aka "golden handcuffs") and take some time off. During this time I
learn Windows programming starting with "Inside OLE", 2nd edition by
Kraig Brockschmidt, followed by "Win32 Programming" by Rector and
Newcomer. I also read the first edition of "Real-Time Rendering" by Moller and
Haines. Deciding it was time to learn this thing called
"Direct3D" after having used OpenGL for many years, I learn the
DirectX 5 Direct3D immediate mode and retained mode interfaces from
the best book available at the time. I decide that the best book
available stinks so bad that I know I could do better
and begin considering writing my own book.
- After working and going to school simultaneously for too many
years, I get my Master's degree from the University of Utah and get
hired into the 3D Paint application software group at Another Language
studio which hosts a showcase of local artists.
At Evans & Sutherland, I work with
the International AVS Center and
E&S's Digistar II to produce the first rendering of 3D terrains and 3D fractal
visualizations on a planetarium projection graphics system. The
models are shown to thousands of people projected above their heads on
a 30 foot diameter dome at the IAC's booth during SIGGRAPH.
- I prepare a demo for SIGGRAPH that leverages the
antialiased line quality fo the ESV workstation to create renderings
that simulate texture, even though the hardware has no texturing. SGI
personnel see the demo and believe they are seeing textured polygons,
not antialiased polylines.
- I obtain part-time employment at Evans
& Sutherland working on a functional simulator of the
rasterizing ASIC used in their ESV workstation product. This is a
MIPS R3000 based workstation running RISC/os and employing up to 44
AT&T DSP32C signal processing chips that perform transformation,
lighting and scan conversion before sending spans to the ASIC for
rasterization. Later, I develop a feature test program called
"sponge", which draws various polygon representations of the Menger
Sponge fractal, to exercise the shading microcode that runs on the
DSPs. I also worked on the X Window System Server code and integrate
the OSF/Motif UI toolkit into the operating system release.
- I become a graduate student in the computer science department at
the University of Utah to study 3D computer graphics.
- I obtain my BSEE from the University of Delaware and begin a 5
month contracting job in Paris, France. I demonstrate the potential
of multimedia animations on personal computers for promoting and
explaining scientific laboratory products on my Amiga. French customs
make me pay an 8,000 FF cash ("en liquide") deposit in order to
temporarily import my Amiga into France! I'm stunned that quality
technical books are virtually impossible to find in Paris.
Toschlogg helps sell me on buying
my first personal computer of any consequence (the ZX-81
didn't count! :) -- the Amiga. Matt goes on to code up Descent
for Parallax Software. While the Amiga has great graphics and sound
capabilities, it never takes off to any sizeable market share. The IBM
PC has already been out for a few years, but graphics capabilities are
only just beginning to emerge at the time of the Amiga's introduction.
The IBM PC expands the personal computer market to the extent that
"personal computer" eventually becomes synonomous with the IBM PC and
compatibles. The intellectual property created for the Amiga is
purchased about 10 years later by Gateway Computer, which doesn't exist
in 1985. I become acquainted with fractals and am immediatley
- I enter the Electrical Engineering department at the University of
Delaware and do undergraduate research on a machine that provides 4
grayscale workstations with antialiased text and graphics. The device
is the PhD research of John Kelly and I do wirewrap and software
design tasks with John. John Kelly gets his PhD and goes on to become
a researcher at Bell Laboratories (now Lucent Technology).
- My computer graphics career began when I saw my first
graphics simulation. The simulation itself was called "MOONIE" and
was a space simulation where the user controlled a space ship and the
goal was to launch from the Earth and orbit the Moon. This program
was written by Ralph Gonzalez in BASIC-PLUS for a DEC PDP-11/70
running RSTS/E. The graphics output was on a Tektronix 4014 storage scope
display with 4096x4096 addressable points. Ralph Gonzalez goes on to
get his PhD in mathematics and become a professor at Rutgers