Monthly Archives: December 2010

I3D 2011 Details

Ke-Sen’s I3D 2011 papers page now has the full list. At the moment there are only 8 author preprints available out of 24 papers, but I’m sure more will appear soon. Some of the paper titles look very intriguing – I’ll write a followup blog post about them soon.

In addition, the I3D conference registration page is now up. Early registration prices range from $200-550, depending on whether you are a student, ACM member, etc. Judging from previous years, the quality of the conference is likely to be well worth the cost of attending, especially if you live in the San Francisco Bay Area and don’t have to worry about airfare and hotels.

The conference registration page also has details on hotel registration – the conference is at the Marriott Fisherman’s Wharf in San Francisco and there is a discount rate ($129 per night, only guaranteed until Jan 21, 2011). There are two ways to book a room with the discount rate:

  1. By phone: call 1-800-525-0956 and ask for the ACM Group rate.
  2. Online: go to the hotel registration webpage, enter your arrival/departure dates, Marriott reward number (if applicable), and then one of the following three codes in the ‘Group code’ option: ASSASSA (for single/double occupancy), ASSASSB (for triple occupancy), or ASSASSC (for quadruple occupancy).

Digital Foundry interview with Halo: Reach developers

Halo: Reach was one of the big game releases of 2010, so I was pleased to see a detailed technical interview with some of the developers on Eurogamer‘s Digital Foundry website. I recommend you read the whole thing, but I’ll summarize some of the notable rendering tidbits (the interview also covered multiplayer, AI, and animation):

  • The previous two games (Halo 3 and Halo 3: ODST) used a “semi-deferred” approach, not for deferred lighting or shading but for decals. It sounds like they rendered a cut-down g-buffer (probably just diffuse color) in the first geometry pass (skipping small decoration objects like grass and pebbles), then blended decals into this buffer, and finally rendered the geometry a second time to do the lighting. Halo: Reach changed to a deferred lighting approach. Some lights were deferred and some weren’t, objects without decals or deferred lighting were only rendered once (this “hybrid deferred lighting” sounds similar to what Naughty Dog used for the Uncharted series).
  • Halo 3 used spherical harmonics in lightmaps to store directional lighting information (detailed in a GDC 2008 talk, as well as a SIGGRAPH 2008 course – see slides and course notes). For Halo: Reach, Bungie developed an improved light map representation that gave them “the same support for area light sources, improved contrast, fewer artifacts, a smaller memory footprint and much better performance”. This sounds really interesting; I hope they will describe this further in a conference presentation or article.
  • They developed a particle system which performs scene collisions on the GPU, using the depth and normal buffers as an approximate scene description. it can do tens of thousands of collisions / bounces per frame in 0.3 milliseconds (their previous CPU-based colliding particle system had a budget of 7 collisions per frame!). This system will be presented at GDC 2011 (the presentation will also discuss optimizations to their atmospheric effects system).  This is a great idea – techniques like SSAO use depth/normal buffers as approximate scene descriptions for rendering, but this is the first time I have heard of this being done for simulation.
  • Halo 3 used two 8-bit-per-channel frame buffers with different exposure values for HDR effects (primarily bloom). Bungie described this scheme in a presentation called “HDR the Bungie Way” at two Gamefest conferences: USA in 2006 and Europe in 2007 – the 2006 (giant) zip file also contains an audio recording, but the 2007 one has more updated slides (including screenshots). The GDC 2008 talk mentioned above also discusses this scheme briefly towards the end. In contrast, Halo: Reach uses a single 7e3 buffer; this yields higher performance and frees up more EDRAM for shadow buffers but has less dynamic range (the primary result of this is loss of color in some bloom regions).
  • Instead of MSAA, Halo: Reach uses a simple temporal anti-aliasing method. The camera is offset by a half-pixel in alternate frames, and the last two frames are selectively blended (the blending is turned off on pixels that have moved significantly since the last frame).
  • They developed a new LOD system (to be presented at GDC 2011) which automatically generates low-cost models to be used far from the camera. Combined with improved occlusion culling and GPU occlusion queries, this enabled a significant increase in draw distance.

cppcheck: free, easy, and great

Jari Komppa pointed this tool out to me while we were talking about my previous post on gDEBugger being free. The tool: cppcheck (download here). It’s free, it’s very simple to use, and it’s effective. Install, then run it like so:

cppcheck -q theRootDirectoryOfAllCodeYouWantToCheck

It will then plow through all your C++ files in this directory on down and look for memory allocation/deallocation problems, use of unallocated array elements, and other defects. “-q” means “show me just the errors found”. It does the things your compiler should find but probably doesn’t (someone will no doubt correct me about this for gcc or somesuch, but  I use MS Visual Studio and it’s definitely true for that). For our current project it found about 15 problems, one pretty serious. For an investment of just a few minutes, this free tool caught a number of flaws that weren’t getting caught by other means. One particularly nice feature is that it tries all possible “#ifdef” paths, checking to see if any combinations cause code problems like undefined variables or similar.

I particularly love the fact that I didn’t have to do the usual thing of telling it all about the various include file paths and the eighteen other things I usually have to do to get similar programs working. It was so easy to run that I spent a whole two minutes more and tried it on another group’s project for which I had the code. It turned up a bunch of spots where the codebase needs some repair. Nice! About the only drawback is that the error messages are sometimes a bit terse and take some decoding. It’s open source, and they have specifically asked for help with documentation, so I expect this area will improve over time.

Gran Turismo on Playstation, PSP, PS2, and PS3

This video was published by Eurogamer‘s Digital Foundry department about two weeks ago; it shows footage captured from various games in the Gran Turismo series. What is remarkable about this video is that the same cars and tracks are shown on the original Playstation, the PSP, the Playstation 2 and Playstation 3. Since the developer (Polyphony Digital) has a reputation for squeezing the best visuals out of Sony’s platforms, this promises a rare “apples-to-apples” comparison across multiple hardware generations.

To my eyes, the display resolution changes drown out the more subtle differences in modeling, shading and lighting; it is also apparent to me that Polyphony no longer sits on the graphics throne in this generation. Other first-party PS3 titles such as Uncharted 2 and God of War III look better, in my opinion. The shadows are a particular weak spot: in places their resolution seems no higher than on the original Playstation!

More information on how the video was captured (as well as high-quality download links) can be found in Digital Foundry’s blog post.

HPG 2011 Call for Participation

High-Performance Graphics, although a relatively new conference in its current form, has had a large impact on the field; it is the venue of choice for breaking research on new antialiasing techniques, micropolygon rendering, and novel uses of GPUs for graphics. HPG 2011 will be co-located with SIGGRAPH 2011 in Vancouver, and is looking for paper, presentation, and poster submissions. The full CFP is included after the break:

Continue reading

gDEBugger is now free!

Just noticed this on Morgan McGuire’s twitter feed. I don’t know why, but gDEBugger, sort of the PIX equivalent for OpenGL, is now free, go here for a license. They’ll be putting out a newer free version (5.8) by the end of the year, so it’s not like they’re discontinuing the product. Maybe it’s the “get them hooked” business model. Also, there’s talk that the current version doesn’t work that well with OpenGL 3.2 and above. Nonetheless, it’s an excellent product overall. Anyway, screen shots here.

To quote their literature: gDEBugger is an OpenGL, OpenGL ES, and OpenCL Debugger, Profiler and memory analyzer. It traces application activity on top of the OpenGL API to provide the application behavior information you need to find bugs and to optimize application performance. gDEBugger transforms the debugging task of graphic application from a “Black box” into a White box model; using gDEBugger you can peer inside the OpenGL usage to see how individual commands affect the graphic pipeline implementation. gDEBugger has a lot of “standard debugger” abilities, but also contains many special features for graphics software developers: view render context state variables, view allocated textures, textures properties and image data, Shaders programs and source code, break on OpenGL errors. In addition, using its profiling abilities, gDEBugger enables you to pinpoint easily the exact location of the application’s graphic pipeline performance bottleneck to let you optimize the application performance.

Update: Jari Komppa wrote, “This may shed some light on things: http://www.export.gov.il/Eng/_Articles/Article.asp?CategoryID=461&ArticleID=12274

Full text:

AMD to buy Israel’s Graphic Remedy company

The American chip manufacturer AMD is buying Israel’s Graphic Remedy company, the Calcalist financial website reports.

It appears that AMD – Intel’s competitor in manufacturing PC and server chips – will pay a relatively low amount for Graphic Remedy, some $4-5 million.

Graphic Remedy, founded six years ago, is a small company with seven employees. It gained renown for its series of simulation and debugging applications for graphic programs and computer games and became dominant among Cronus’ [sic – they mean Khronos Group’s] Open GL platform developers.

According to Calcalist, AMD seems to be buying Graphic Remedy in an attempt to expand its presence in the home and business graphic
processors market.

What’s in a name?

Now that I3D reviews are over (and my Minecraft addiction is beginning to wane), back to blogging. So I was reading “Yes!“, which is a pretty fun bathroom book. It’s a bunch of short articles on various recent bits of social psychology. The “you can use this in your business” tone of this book is annoying, unlike the same authors’ wonderful book, “Influence“. Nonetheless, there are cool little ideas that make you see the world in a different way.

One chapter I just finished was “When is your name your game”. It turns out that if you’re named Dennis, you’re 43% more likely to become a dentist than some random guy. If you’re name George or Geoffrey, you’re more likely to go into the geosciences such as geology. Your name also influences where you live: there are a disproportionate number of Louises in Louisiana and Florences in Florida. Someone named Washington is more likely to live on Washington Street. Even first letters matter: if your name starts with an A, you’re more likely to like Almond Joy than someone without that initial A. Of course, you say you’d never take on any of these sorts of biases, that’s what everyone in these studies says, but the statistics say different.

This seems true for at least one acquaintance of mine, Rod G. Bogart. With initials like that, not to mention a first name that goes with “and cones”, his name is perfectly suited to computer graphics work. Now if he just had friends named Roy G. Biv and Hugh St. Val, life would be complete.

So, be careful naming your kids. I highly recommend for a boy the name Raymond Tracey, “Ray” for short. Or Norman Victor might help point him in the right direction. If you’re more into math, perhaps Algy (though with a name like that, expect him to get beat up a lot, unless he can hang out with the cool kids and be called “Algy, bro”). For girls, Alfa Belinda could work, though names like Polly Nomial clearly give away what you’re up to, and could have a backlash effect; she might go into the study of implicit surfaces (shudder), just to rebel against you.