Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Markdown source for Michael Abrash's Graphics Programming Black Book (github.com/jagregory)
112 points by kar1181 on Jan 30, 2014 | hide | past | favorite | 30 comments


This is a great book for 3 reasons: 1) Abrash is actually a good writer. Sometimes, I read the beginnings of chapters just for the stories he tells. 2) It's full of algorithms. Sure, you probably won't be writing your own triangle rasterizer in assembly language, but the algorithms are still important to know. Besides, it has plenty of stuff that's pretty timeless (there is a boyer moore implementation in there). 3) Abrash's philosophy of optimization is the best there is.


Ot: how did they do that header in github-flavored markdown?

Github's preview mode doesn't render it correctly and I can't find anything about it in Github's docs.

Here's the source:

  ---
  title: Michael Abrash's Graphics Programming Black Book,   Special Edition
  author: Michael Abrash
  date: '1997-07-01'
  identifier:
  - scheme: ISBN
    text: 1576101746
  publisher: The Coriolis Group
  category: 'Web and Software Development: Game Development,Web   and Software Development:
    Graphics and Multimedia Development'
  chapter: '01'
  pages: 004-019
  ---
https://github.com/jagregory/abrash-black-book/blob/master/s...


I'm surprised that even turns out as well as it does. Those headers are for pandoc. I guess Github must have a Yaml extension to their Markdown renderer which is picking it up.


Maybe a tangent, but I'm surprised at the choice of Markdown for formatting an entire book. Is that common these days? I guess when your output format is basically "HTML chapter files containing reflowable, resizable text blocks, with UA-selected dimensions" (i.e. ePub), most of the page-based considerations of a language like TeX or SGML go out the window.

A question to anyone on here who has published a technical book, where at least one of the shipped formats was page-based (real paper, or just PDFs): did you, or your editor, do much proofing and fixing to get the content "pretty?" (No hanging lines, no rivers, etc.) If so, do you think your choice of working format affected how much work this was?


When I started on my E-Book about Open Sound Control (http://osc.justthebestparts.com/) I was using markdown and assorted home-rolled tools to convert that into both Web pages, epub, and PDF.

I found that I could not layout and formatting I wanted and when it came time to officially roll-out the release (a bundle of PDF, epub, and mobi) I opted for InDesign to avoid weird breaks and gaps.


Leanpub is using markdown for books. And O'Reilly sometimes uses Asciidoc, which is similar to markdown.


How relevant is this for an aspiring graphics programmer just getting started in the midst of modern APIs, hardware and techniques?


The technology is not that relevant but there's still a lot to learn in how he approaches problems. In that respect, It's much more timeless than a typical technology focused book.

I've learned a lot about what to optimize how to go about it and when to optimize from reading his book and I use a lot of this insight even now when working on performance optimization for web applications.

Together with SICP, it's one of the books that influenced me the most.


I wrote a blog post yesterday that may be of some help to you

www.renderingwithstyle.com/post/74997233849/ten-things-you-should-know-about-shaders


Not relevant at all, unless you are interested in a historical perspective.


Or if you're doing something like implementing a software rendering in a constrained environment ie 4k demo or Java 4k Games contest.


Afaik even 4k demos are mostly shaders these days.

Only remaining place for software rendering seems to be the embedded world. But if you are trying to make quake-level graphics on an µc then ... you are being awesome :)


Does anyone have the compiled epub? make fails with a generic error for me.



Fantastic, thanks.


If it's not too much trouble, could you paste your error into an Issue on Github? I haven't done any testing on the Makefile, so it'd be good to get it fixed up if I've done anything stupid.

https://github.com/jagregory/abrash-black-book/issues

Do you have Pandoc installed?


Maintainer here. Surprised but pleased to see this make it onto HN. I'm glad people find it useful!

I had a desire to read the book over Christmas, but found the PDFs really weren't very useful for reading on my Kindle (and the book being out of print meant it wasn't feasible or cost effective to acquire the paper version). As always, the perfectionist in me kicked in and I spent much longer than necessary converting it, so figured someone else might be interested in the fruits of my labour.


This is great! I just finished reading Masters of Doom so this could not have come at a better time.


Good stuff. This definitely reads better than the tomb that's sitting on my bookshelf..


My book was second hand already so it is showing its age. I like it as a bit of an heirloom but the electronic copy is actually accessible. The original, you need a forklift to remove it from the shelf!


I like it - put the tome in a tomb. ;-)


How exciting! I've been looking for a good copy to read for years. I've uploaded to my kindle for e-book goodness.

Would there be a chance to get it in print with Abrash's permission?


I'd love to do that, but the rights are a bit tricky. I'll talk to him about it, but it's not really his permission to give.


Any recommendations for a modern equivalent?


I don't think there's anything quite like Abrash's tome in breadth or all the other intangibles he eloquently wrote about (I mean the best optimizer is between your ears is worth a book in itself!)

Bur for graphics programming, Foley and Van Damm is probably the canonical text - now in 3rd edition. http://www.amazon.com/Computer-Graphics-Principles-Practice-...


I have to say that Foley, while a good book, is more of textbook compared to something like the black book.

In any case some of the "GPU Gems" [1] books are worth a read.

[1] Available for free on nvidia' website these days: http://http.developer.nvidia.com/GPUGems/gpugems_part01.html https://developer.nvidia.com/content/gpu-gems-2 https://developer.nvidia.com/content/gpu-gems-3


While F&VD does a great job covering many different aspects of image generation, for this kind of work Real-Time Rending[1] is probably more useful. It is firmly grounded in a world of programmable GPUs (shaders & the like), and wastes little time talking about rendering techniques that are not relevant to modern graphics hardware.

[1] http://www.amazon.com/Real-Time-Rendering-Third-Tomas-Akenin...


Second for Real-Time Rendering. As far as I am aware, it's the closest thing to a foundational book on GPU programming for realtime 3D.


The mobi version looks great on my Kindle. This is awesome. Great work!


Great! I had some fun with this, and learned why Mobi is so frowned on by ebook publishers. Glad it turned out ok though. I'm reading it on my Kindle at the moment too.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: