Tag Archives: books

Bits of News

Just some quick bits to chew on for breakfast:

  • Microsoft announced Project Natal at E3; the (simulated) video is entertaining. Lionhead Studios’ demo is also worth a look. Somehow a little creepy, and I suspect in practice there’s a high likelihood that a user will quickly run off the rails and not do what’s expected, but still. Considering how limited the Eye Toy is compared to its hype, I’m not holding my breath, but it’s interesting to know & think about. (thanks to Adam Felt for the link)
  • New book out, Graphics Shaders: Theory and Practice. It’s about GLSL, you can find the Table of Contents and other front matter at the book’s site (look to the right side). I hope to get a copy and give a review at some point.
  • I mentioned Mark Haigh-Hutchinson’s Real-Time Cameras book in an earlier post. The, honestly, touching story of its history is republished on Mark DeLoura’s blog at Gamasutra.
  • Nice history of graphics cards, with many pictures.
  • Humus describes a clever particle rendering optimization technique (update), and provides a utility. Basically, make the polygon fit the visible part of the particle to save on fill rate. One of those ideas that I suspect many of us have wondered if it’s worth doing. It is, and it’s great to have someone actually test it out and publish the results.
  • This is an interesting concept: with an NVIDIA card and their new driver you can now turn on ambient occlusion for 22 games that don’t actually use this technique in their shipped shaders. In itself, this feature is a minor plus, but brings up all sorts of questions, such as buying into a particular brand to improve quality, who controls and who can modify the artistic look of a game, etc. (thanks to Mauricio Vives for the link)
  • Old, but if you haven’t seen it before, it’s a must: transparent screens.

Game Engine Gems CFP

As I mentioned in a previous post, Eric Lengyel is heading up a new project, a book series called “Game Engine Gems”. It turns out that we ran across the website before it was announced (moral: there’s no hiding on the internet). He’s sent out an official call for papers today – see the book’s website for basic information.

I’m posting today to mention a few dates not currently shown on the website (though I expect this will change soon):

  • August 1 – Final day to submit article proposals
  • August 15 – Authors notified of acceptance
  • October 15 – Final day to submit completed articles

Contact Eric for more information.

Odds and Ends

It’s 5/7/09, a nice odd sequence, so time for a few odds and ends I’ve collected.

OK, this is worth a few minutes of your life: the elevated demo is awe-inspiring. Terrain generation (be patient when you start it), fly-by’s, and music, all in less than 4096 bytes. By way of comparison, an empty MS Word document is 9834 bytes. (thanks to Steve Worley)

Google has put out a browser-based low-level 3D graphics API called O3D. API here. Demos here. Some initial impressions here. It will be interesting to see if they succeed where so many others have failed.

There is a call for participation out for a new book series called “Game Engine Gems“, edited by Eric Lengyel. (thanks to Marwan Ansari)

The main thing I look at on the SIGGRAPH exhibition floor are the book booths. Good books are such a ridiculous bargain: if a book like Geometric Tools saves a programmer 2 hours of time, it’s paid for itself. One new book that I want to see is Real-Time Cameras, by Mark Haigh-Hutchinson, which came out this April. Looking around for more info, I noticed this sad note. I never met Mark, but we corresponded a few times. He came up with a clever idea to avoid performing division when doing a point in polygon test; I folded this into the CrossingsMultiplyTest Graphics Gems code here, crediting him.

I’ve been looking at GPU capabilities and benchmarking information lately. Some nice resources:

  • You probably know about the benchmarking group Futuremark. Me, I hadn’t realized they had useful stats at their site: see the Futuremark ORB links at the bottom of the page and start clicking.
  • Two applications that tell you a ton about your card’s capabilities: GPU-Z, with a ton of information and a statistics page & cute map of downloads at their site, and GPU Caps, which also includes CUDA-related information and some nice little OpenGL benchmarks.
  • Chris Dragan has a web database that provides a fair amount of data on card support for DirectX capabilities and OpenGL extensions.
  • The Notebook Check site had way too much information about many laptop graphics accelerators.
  • nHancer is a utility for NVIDIA cards. It lets you get at all sorts of different capabilities on your GPU, on a per-game basis. There are also interesting antialiasing and anisotropic filtering comparison pages (click on the radio buttons). (thanks to Mauricio Vives)
Some interesting libraries I ran across lately:
  • GTS is an open-source mesh manipulation package.
  • Box2D is a 2D physics engine.
  • Touchlib is a multitouch development kit. (thanks to Morgan McGuire)

Coincidental world: it turns out there’s a different “Eric Haines” out there that made a well-received 3D graphics game for the iPhone, Realmaze 3D. I’m not sure how it compares to his The Magical Flying Pink Pony Game, which looks awesome. (thanks to Nikolai Sander)

I’ve seen similar real-world illusions, but still thought this one was pretty great. (Addendum: Morgan McGuire found this even-better video of the effect.)

ShaderX^8 CFP – proposals due May 17

Will there be a GPU Gems 4? I don’t know. But I do know there will be a ShaderX^7 and, with your help, a ShaderX^8. The timeline and information about this next volume is at the ShaderX^8 site. If you’re interested in submitting, one detail (currently) missing from this site is that an example ShaderX proposal, writing guidelines, and a FAQ can be downloaded from here. The key bit: proposals are due May 17th. I’m not currently associated with this series (though I was for volumes 3 & 4), I just like to see them get good submissions.

The existence of these book series – Game Programming Gems, ShaderX, GPU Gems – is a fascinating phenomenon. Conferences like SIGGRAPH are heavy on theory and cutting-edge research, light on practical advice. Books like ours can be more applied, but are survey-oriented by their nature, not spending a lot of time on any given topic. Code samples and white papers on the web from NVIDIA, AMD/ATI, etc., and independents such as Humus, they’re great stuff, but are produced by particular groups of people with specific interests. Also, sometimes just finding relevant code samples on these sites can be a serious challenge (“search” sometimes works less well than I would like).

These book series fill the gap: they go through a review and editing process, improving quality and presentation. This in turn makes them of higher average interest to the reader, vs. a random article on the web of unknown quality. They won’t disappear if someone’s domain expires or interest wanes. They can be easily accessed years later, unlike material published in ephemeral venues such as Game Developer Magazine or GDC proceedings. The titles, at least, can be surveyed in one place by sites such as IntroGameDev (though this one appears to no longer receiving updates, unfortunately, e.g. ShaderX^6 is not listed).

The major downside of these books is that they’re only available on paper, not as searchable PDFs (except the first few ShaderX books). Well, almost the entire GPU Gems series is, wonderfully, online for free, but is still not easily searchable. Now if someone could just figure out a Steam-like system that let people buy books in electronic form while protecting publishers’ monetary interests. Hmmm, maybe eye-implanted bar-code readers that check if you have access to a given piece of digital content, that’ll be non-intrusive… Anyway, this is the challenge ahead for publishers. Maybe the Kindle is the best solution, but I like the Steam games model better, where something you’ve purchased is available on any computer attached to the Internet.

Best of all for consumers is free & digital, of course, but this does trim back the pool of authors pretty drastically, as a royalty percentage of 0% is not much of an incentive (I’ve been reading too many popularized economics books late, e.g. Naked Economics, so have been thinking more in economics-speak, like “incentives”). We wrote our book for the love of the subject, but I can’t complain about also, to my surprise, earning a bit of money (enough to allow me to, what else, upgrade my computer and graphics card on a regular basis). Enough rambling, but the subject of electronic publication is one that’s been on my mind for a few decades now. I expect a solution from you all by the end of the week, then let’s create a startup and we’ll sell out by next March and make a mint.

Gift Books

What with Saturnalia and Festivus coming up, I’ve been buying books. Here are some of the more visually-related titles I’ve found:

  • Mars 3-D – a book of 3D red/blue stereograms of pictures of Mars. I like the way that you cannot lose the glasses: they’re built into the cover of the book.
  • ABC3D – Officially a kid’s alphabet book, it’s actually a well-crafted (and relatively inexpensive) pop-out book with clever little mechanisms and visual tricks throughout.
  • Gallop – This one really is a kid’s book, but the animation mechanism is fun. You can also get a set of greeting cards of the book. Swing is another by the same author.
The main reason GPUs are so numerous and so cheap is games, of course. My current addiction is Left4Dead, but I hope to play a lot of good board games during the holiday break. Some books I’m passing out this year:
  • Game Design Workshop – My older son hopes to do a class project of designing a board game, and this looks like a book that will help. I wish Game Developer magazine would gather its game design articles into book form.
  • The Game Maker’s Apprentice – I hope to lure my younger son into making simple videogames with this, a good book of tutorials for the Gamemaker software, which itself is free to download.
  • One Jump Ahead – About a computer program to play checkers and so much more, by the person who eventually solved checkers. Longer review here. I just love this book on so many levels. I don’t know what the new edition adds; the older edition is noticeably cheaper on half.com.
OK, enough diversion from the main topic of this blog; I’ll get back to that next post.

More Free Books

GPU Gems 3NVIDIA’s done it again, they’re releasing GPU Gems 3 to the web. It’s being done in the installment plan, I expect so that there’s something to announce every few weeks, which is fine. Eventually the whole book will be available, so much better to have this “section a month” scheme than not at all. NVIDIA’s to be complimented on their progressive attitude. GPU Gems 3 is less than a year and a half old, so could still make a few dollars, but NVIDIA’s goal is to get the information out there.


ShaderXThis summer Wolfgang Engel and I tracked down authors of the ShaderX and ShaderX^2 books and secured releases. The ShaderX^2 books quickly found a home at gamedev.net, but Wolfgang had to dig around for the PDF for the first ShaderX book, then find a place to host it, plus the dog ate my homework, etc. Long and short, the original ShaderX book is now free for download here: http://tog.acm.org/resources/shaderx/ – I decided to host it on the ACM TOG site, as it’s a valuable resource, despite its hoary old age. Just ignore the first chunk about using 1.x shaders and enjoy the rest.

I do wish the GPU Gems books were available as PDFs (hint, hint, NVIDIA), as they would be much easier to search for those “I know I saw this in one of these books” moments.

Interesting bits

I’ve been collecting links via del.icio.us of things for the blog. Let’s go:

Antialiasing thick lines by using textures is an old technique. Areakkusu’s site is nice in that it has good examples and code.

The Level of Detail blog has a great pointer to Slisesix’s amazing demo. “Demo” as in “Demoscene,” where his program is a mere 4k bytes in size. It’s not animated, not real-time, but shows how distance fields could be used for ambient occlusion approximation. Definitely check out all the links: Alex Evan (of LittleBIGPlanet) has a worthwhile talk, and Iñigo’s presentation is even better: good technical content and real-time programs running inside the slides.

I’d rather avoid logrolling in this blog, but did want to mention enjoying Christer Ericson’s post on graphical shader systems. I have to agree that such systems are bad for creating efficient shaders, but these tools do at least allow a wider range of people to experiment and explore. There are a lot of worthwhile followup comments on this thread.

Oogst has a clever trick he calls interior mapping, for rendering walls, floors, and ceilings for buildings seen from the outside. Define a texture to be used for each interior element, and have the pixel shader compute from the eye direction what would be seen inside. There’s no actual geometry, it’s all just computing the ray intersection using (wait for it) a floor function. Humus has demo code available for this technique, using DirectX 10. Admittedly, the various tiles repeat and there are other limits, but actual interiors are vastly superior to the usual dirty or reflective windows currently used in games, with no extra geometry added.

Bavoil and Sainz have a new approach for Screen-Space Ambient Occlusion, using a more elaborate form of horizon mapping: http://developer.nvidia.com/object/siggraph-2008-HBAO.html. Code’s available in NVIDIA’s DX 10 SDK.

If you missed Jon Olick’s talk at SIGGRAPH about voxel octree representation, Timothy Farrar has a summary. Personally, I think Jon’s research is very much that-research, not something that is immediately practical-but I love seeing how changing capabilities and increased flexibility can lead to different approaches.

On Amazon: 4 graphics books for the price of 2, minus the papery bits. Pharr and Humphrey’s “Physically Based Rendering” (PBR) and Luebke’s “Level of Detail for 3D Graphics” are certainly worthwhile, the other two I don’t know about (though look worthwhile and are well-rated). I don’t know a thing about the electronic media used; I’m guessing the books are DRM’ed, not naked PDFs. Searchable is certainly nice. While it’s too bad you can’t just buy the ones you want (I smell a marketing department having some “what can we get them to pay for what bundle?” meetings, given the negligible physical cost), I did notice an interesting thing on Amazon I hadn’t seen before for each book except PBR: “Upgrade this book for $18.39 more, and you can read, search, and annotate every page online.” You can also upgrade books you’ve previously purchased on Amazon.

On Gamasutra, an article summarizing DirectX 11. I liked it: to the point, and with some useful figures.

Every once in awhile someone will say he has a new graphics rendering method that’s awesome, but won’t explain it because of some reason (usually involving money or fame). Here’s one, from Sunfish Studio: no micropolygons, no point sampling. OK, so that leaves-what?-voxels? If anyone knows what this is about, please comment; I’m curious.

GameDeveloperTools.com is a new site that tracks news and has users rate books. To be honest, a lot more voting needs to happen to make the ratings useful-I’d stick with Amazon for now. The main use is that you can look at specific categories, which are a bit better than Amazon’s somewhat random sorting of graphics books (e.g., our book is in three categories on Amazon, competing against artists’ books on using mental ray and RenderMan).

Finally, this, well, this is not interactive graphics, but is just so cool: parking signs understandable from only certain locations.

ShaderX^2 books available for free download

Wolfgang Engel (editor in chief of the ShaderX series) kindly sent me copies of the two ShaderX^2 books last year, so that I could read through them and reference useful articles in writing the third edition of Real-Time Rendering (RTR3). He also provided us with the contents of the then-unpublished ShaderX^6 – he was a huge help in making RTR3 up-to-date.

While writing, I learnt that Wolfgang was willing to release the ShaderX^2 books electronically for free. However, he was advised by the publisher to check with the authors to see if they had any reservations. I like these books; some of the articles are dated, but there’s still solid material in many that should be made widely available. Also, I hated referencing articles in RTR3 that few people could actually go look up. Finally, I found that the PDFs of these two books were already being distributed illegally through a torrent. It struck me as unreasonable that the two ways to obtain these out-of-print books was through illegal downloading or through rather exorbitant prices in used-book markets (currently the prices are down in the $30 range; at one point last year the lowest price I saw for one of the books was $100).

Wolfgang didn’t have the time this Spring to gather permissions (he was busy at the time with GTA IV and other projects), and I wanted to begin to repay him for all his help. So, I spent some time these past two months getting permission release forms signed for the ShaderX^2 books. 66 article clearances later, I’m done! There were no objections from the authors, usually just the opposite, so the books are now generously being hosted for free download by gamedev.net:

ShaderX2: Introduction & Tutorials with DirectX 9

ShaderX2: Shader Programming Tips and Tricks with DirectX 9

The books are “ancient”, four years old, but there is some great material in them. Greg James’ article about rendering thick volumes has been cited by a number of later papers. I particularly enjoyed the articles by Mitchell et al. and Ansari in the Image Space section, as I love post-processing effects. They present lots of code snippets alongside solid theory. Which reminds me, we should also work on putting the CD-ROM’s contents up on the web – next task.

Also, the first ShaderX book has also been cleared for free download. Wolfgang is digging through his archives for a PDF version of this book, and I hope it will be available soon. In the meantime, all of the articles from authors at ATI (at the time) are available on the AMD/ATI website.

Update: see the ShaderX Books page at the ACM TOG site for a link to the first book and other related free resources.