[ Home | Direct3D Graphics Pipeline | Author Biography ]

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

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

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 mailing list.

April, 1999
I start posting to the DirectX related newsgroups.

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.

Matt 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 hooked!

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