

Michael Abrash's Graphics Programming Black Book - Who828
http://orangetide.com/graphics_programming_black_book/html/

======
michael_abrash
Thanks for the kind words, everyone - this brings back a lot of memories for
me too. You know, I wrote everything in that book either late at night or on
weekends, and I never really knew if it much mattered to anyone (feedback was
a lot harder to come by in pre-Internet days); reading these comments goes a
long way to making all that work worthwhile.

Oh, and laichzeit0 - my apologies to your dad for the weight of the book.
There have been a few times when I was lugging one around and wishing I had
been more sparing with the words :)

\--Michael

~~~
davidst
It will never be outdated thanks to all the happy memories it holds for me.
Thanks for writing it, Michael. It's one of a few books I will never part
with.

------
laichzeit0
Ah man this brings back memories. I have the book + cdrom sitting here on my
bookshelf. I was 14 and just started learning to program with Turbo Pascal and
assembler by reading Denthor's Tutorials on how to program Demos. My dad
happened to be going on a business trip to the U.S. (we didn't have nice books
like that in South Africa) and when he asked what I wanted I said "the
Graphics Programming Black Book" not knowing how big and heavy that thing was
and he had to lug it around with him.

At the time I didn't understand much of it but I remember the evolution of him
optimizing Boyer Moore string search left quite an impact. That and the
anecdotes of him working with John Carmack at the time they were coding Quake
I. Just browsing through the chapters makes me want to read the whole thing
again.

~~~
dicroce
I remember the Denthor tutorials! Downloaded from a BBS, learned the basics of
graphics programming... Mode 13h... :) I emailed Denthor once and thanked him
(shortly after I got my first job in '96).... I have the Black Book as well,
good memories!

------
polskibus
Here's the original DDJ link:

[http://www.drdobbs.com/parallel/graphics-programming-
black-b...](http://www.drdobbs.com/parallel/graphics-programming-black-
book/184404919)

------
Who828
PDF, HTML(zipped) and the source code
[http://orangetide.com/graphics_programming_black_book/](http://orangetide.com/graphics_programming_black_book/)

~~~
laichzeit0
This link now redirects to Amazon for some reason.

------
comatose_kid
I implemented Bresenham's algorithm in ARM assembly on the gameboy advance
based on reading his 'zen of graphics programming'. Great writer, the
anecdotes at the beginning of each chapter really hooked me in.

~~~
chiph
Jack was my graphics professor. After taking his class, I realized that I was
never going to be a guru in the subject. :( But I did learn that a v1.1 of a C
compiler (Borland Turbo C) produced much slower code than the highly optimized
Turbo Pascal, then at v4.0

------
binarycrusader
See also, Abrash's "Ramblings in Realtime":

[http://www.bluesnews.com/abrash/](http://www.bluesnews.com/abrash/)

------
EdSharkey
Michael wrote an article about quake once that described the inner loop
optimization of the software renderer. I recall he was computing a dot product
or something that was used over an 8 pixel span. The hack was that he started
an fpu divide and then got useful work done on the integer pipeline without a
stall, perfectly timing out when the fpu would have his value ready. What a
brilliant hack. I recall the satisfaction of knowing so much secret knowledge.
:)

------
kr0
I love the comparisons of program speed to Computer hardware available at the
time of writing.

------
melling
This was referenced in a HN article that I read in the past day. I checked out
reviews and it seems like it's a bit dated. Many chapters are done in
assembler, for example. Any recommendations on great books that cover OpenGL
and game programming?

~~~
0x0
Not just a _little_ dated, a lot of the examples are targeting 8086, 286, 386
or 486 CPUs, and EGA or Standard-VGA graphics cards (you know, those with
0.2MB ram) running on 16-bit MS-DOS. :)

Back then this was a goldmine of tricks.

But I'm sure the algorithm parts are still relevant.

~~~
raverbashing
Yes, it's still worth a read, the assembly parts have become somewhat historic
but it's a nice explanation of the "way of thinking" that's still valid today
if you need to optimise in assembly (of course, targeting it for the modern
archs).

Apart from that it's a nice read and some of the outdated parts might be
skipped.

------
atesti
Why is the page redirecting to Amazon now? Does anybody have a mirror?

------
mattschmulen
best technical writer .. brings back memories

------
mortyseinfeld
These days most devs would enjoy Abrash's awesome story telling ability over
the intricacies of long forgotten x86 chip instructions for software
rasterizers.

