Category Archives: Resources

Seven Things for July 26th, 2011

The harddrive on my main computer died, which has the odd effect of making me have more time for blogging (and less for screwing around on random stuff). So, seven things:
  • First, if you’re going to HPG 2011, I’ll save you five minutes of searching for where it is: it’s at the Goldcorp Centre for the Arts, Google map here. Note also that things don’t start until 1:30 on Friday.
  • SIGGRAPH parties? I know nothing, except that the official SIGGRAPH reception is 9 to 11 PM Monday at the convention center, and the ACM SIGGRAPH Chapters Party is 8:30 PM to 2 AM on, oh, Monday again. Odd scheduling.
  • Timothy Lottes cannot be stopped: FXAA 3.11 is out (with improvements for thin lines), and 3.12 will soon appear. Note that the shader has a signature change, so your calling shader code will have to change, too.
  • At the Motorola developer site there’s a quick summary of various image compression types used for mobile phones and PCs.
  • Sebastien Hillaire implement the God Rays effect from GPU Gems 3, showing results and problems. Code and executable available for download.
  • I’ve been enjoying some worthwhile articles on patents and copyrights lately, both new and old. Worth a mention: Myrhvold madnessa comic (a bit old but useful) on copyright – a good overview; The Public Domain, a free book by a law professor who helped establish Creative Commons; the July 2011 CACM (behind the paywall, though) had a nice article on why the U.S. dropped “opt-in” copyright back in 1989 (blame Europe). Best idea gleaned, from The Public Domain: the length of copyright is meant to motivate people to create works for payment, so a retroactive increase in the length of copyright  (e.g., to protect Mickey Mouse) makes no sense – it creates no motivation for works already created.
  • Polygon Pictures’ office corridor would be a bad place to be if you worked way too many hours. Otherwise, nice!

Seven Things for July 24th, 2011

Eric has done these until now, but I now find myself with a few small things that fit well into such a post.

FXAA Rules, OK?

So there are those people out there that punch other people’s punchlines. Someone’s three quarters of the way through telling a joke, and a listener says, “oh, right, this one ends ‘to get to the other side'”. You don’t want to be that guy, but that’s a little bit how I feel writing about FXAA, given that there’s a whole course at SIGGRAPH next month about these sorts of antialiasing techniques. I blame Morgan McGuire’s Twitter feed, as he (and 17 others) retweeted Timothy Lottes’ posting that he had released shader code for FXAA. I’d seen FXAA mentioned before, NVIDIA put it in their DirectX 11 SDK. Which, frankly, is sadly misleading – the implication is that it works only on GTX 200-level hardware and above, when in fact it works on DirectX 9 shader model 3.0 hardware, GLSL 1.20, XBox 360, and Playstation 3, to name a few, and is optimized in various ways for newer GPUs. Anyway, seeing this shader code available, I was interested to try it out. Morgan mentioning that he liked it a lot got me a lot more interested. A few hours later…

So what the heck am I blathering about? To start, there are a number of these ??AA methods that are based on post-processing a color (and sometimes, also normal and depth) buffer. MLAA, morphological antialiasing, was the first used for 3D images, back in 2009. The basic idea is “find edges and smooth them”. The devil’s in the details, which is what the SIGGRAPH course will delve into (and I’ll certainly attend): how wide an area do you search to try to find a straight edge? how do you deal with curves and corners? how do you avoid oversmoothing thin edges, blurring them twice? how does it look frame to frame? and, most important if you want to use it interactively, how do you do this efficiently?

I’ve wanted an MLAA-like solution for two years, since before HPG 2009 when I noticed the MLAA paper on Ke-Sen’s pages and talked to Alexander Reshetov about it (who was very helpful and forthcoming). I even got a junior programmer to attempt to implement it in a shader, but the implementation was quite slow (due to a very wide search area) and ultimately flawed, and we didn’t have time to get back to it. Last year at SIGGRAPH there was a talk by a group in France, led by Venceslas Biri and Adrien Herubel, about implementing MLAA on the GPU, and they released source code. I spent a bit of time with their code, but it was developed on Linux and I had some problems getting it to work on Windows properly. My “I’ll just take a few hours and see where I get” time was gone, and still no easy solution. There were some other interesting bits out there, like the article in GPU Pro 2, Practical Morphological Anti-Aliasing, with even a github project, but there were different versions for DX9 and 10 (and not OpenGL), lots of files involved, and I didn’t want to get involved. Even Humus had a code sample, but I was still a bit shy to committing more time. (Also, his needs geometric information, and I wanted to antialias NPR edges formed by dilation, i.e., image processing, which have no underlying geometry).

Then the FXAA shader code was released: well-commented, with clear integration instructions, just needs a color buffer, and all in one shader file. FXAA is not the solution to all of life’s problems (or is it?), but for me, it’s wonderful. It took me all of an hour to fold into our system as a shader (and then another three debugging why the heck it wasn’t registering properly – our shader system turns out to be very particular about path names). The code runs on just about everything and has extensive comments. There are control knobs for the fiddlers out there, but I haven’t messed with these – it looks great out of the box to me.

So, after all that breathless buildup, here’s the punchline:

On the left is your typical jaggy image, on the right is FXAA. Sure, it’s not perfect – nearly-vertical lines can look considerably better with a wider edge search area (as seen in MLAA), dropouts could be picked up by supersampling or MSAA, thin lines can have problems – but this shader gives a huge improvement with no extra samples, and just one pretty-quick pass (plus – full disclosure – a preprocess of computing the luminance/luma (grayscale) and shoving it in the alpha channel). Less than 1 millisecond cost per frame on a GTX 480? Works on sRGB and linear? Code’s in the public domain? Sign me up!

See lots more examples on Timoty Lottes’ page. Read his whitepaper for algorithm details and his newer posts for tweaks and improvements. An easy-to-use demo of an earlier version of his shader can be downloaded here – just hit the space bar to toggle FXAA on and off. Enjoy!

Quick SIGGRAPH Roundup

I’m planning a series of more extensive posts on SIGGRAPH content (starting with the courses), but I’ll start with a quick roundup to help people decide on their attendance before the early-bird registration expires at the end of this week. The roundup is focused on those sessions of potential interest to professional game artists, professional game programmers, real-time rendering researchers and real-time rendering students. I’m not listing paper sessions – I typically skip those in favor of other sessions since the papers themselves tend to be readily available. I’ve also skipped the Reception and the various Birds of a Feather sessions for brevity since those tend to be more social (some Birds of a Feather sessions do have presentations, and others might be of particular interest, so it’s probably a good idea to check the BoF list). More information can be found on the individual SIGGRAPH web pages (linked where available) as well as the SIGGRAPH Advance Program.

UPDATES:

  • June 15, 2011: Added SIGGRAPH Dailies! and relevant Exhibitor Tech Talks; added links to individual Panels.
  • June 20, 2011: Added links to individual CAF Production Sessions, The Studio Workshops, The Studio Digital Artistry Sessions, and the Keynote.
  • June 23, 2011: Added links to remaining sessions, and corrected the classification of some of The Studio presentations.
  • June 24, 2011: Removed Reception and Birds of a Feather sessions for brevity; also corrected times of some Studio Talks.
  • July 15, 2011: Added individual NVIDIA Exhibitor Tech Talks.

Multiple Days

  • Electronic Theater (6:00-8:00 on August 8, 9, and 10)
  • Emerging Technologies (2:00-5:30 on August 7; 9:00-5:30 on August 8, 9, and 10; 9:00-1:00 on August 11; also open during Reception)
  • Exhibition (9:30-6:00 on August 9 and 10; 9:30-3:30 on August 11)
  • Posters (12:00-5:30 on August 7; 9:00-5:30 on August 8, 9, 10, and 11)
  • Real-Time Live! (4:30-5:15 on August 8, 9, and 10)
  • The Sandbox (12:00-5:30 on August 7; 9:00-5:30 on August 8,9, and 10; 9:00-1:00 on August 11; also open during Reception)
  • There are also several co-located conferences which may be of interest

Sunday, August 7th

12:00-1:45:

12:30-1:45:

2:00-3:30:

2:00-5:15:

3:00-3:30:

3:45-4:15:

3:45-5:15:

4:30-5:00:

5:00–5:30:

6:00-8:00:

Monday, August 8th

9:00-9:30:

9:00-10:00:

9:00-10:30:

9:00-12:15:

9:30-10:30:

10:15-11:15:

10:40-12:10:

11:00-1:00:

11:30-12:30:

12:00-1:00:

12:45-1:30:

1:45-3:00:

2:00-2:30:

2:00-3:30:

2:00-5:15:

3:15-4:15:

3:45-4:15:

3:45-5:00:

3:45-5:15:

4:30-5:00:

4:30- 5:30:

5:00-5:30:

Tuesday, August 9th

9:00-9:30:

9:00-10:30:

9:00-12:15:

10:30-11:30:

10:40-12:15:

10:45-12:15:

12:30-1:45:

1:15-1:45:

2:00-3:30:

2:00-3:30:

2:00-5:15:

3:00-3:30:

3:45-4:15:

3:45-4:40:

3:45-5:00:

3:45-5:15:

4:30-5:00:

Wednesday, August 10th

9:00-9:30:

9:00-10:30:

9:00-12:15:

9:45-10:45:

10:30-11:30:

10:40-12:10:

10:45-12:15:

11:15-12:15:

11:30-12:00:

12:30-1:45:

2:00-3:30:

2:00-5:15:

2:15-3:15:

3:45-5:00:

3:45-5:15:

4:30-5:00:

  • The Visual Style of “Legend of the Guardians: The Owls of Ga’Hoole” (The Studio Talk)

6:00-7:30:

Thursday, August 11th

9:00-10:30:

9:00-12:15:

10:40-12:15:

10:45-12:15:

2:00-3:30:

2:00-5:15:

3:45–5:15:

Loosening of ACM’s copyright policy

We’ve talked about this before, how ACM’s copyright policy stated that they, not you, control the copyright of any images you publish in their journals, proceedings, or other publications. For example, if your hometown newspaper wants to publish a story of “local boy makes good” and wish to include samples of your work, they needed to ask the ACM for permission (and pay the ACM $28 per image). Not a huge problem, but it’s a bureaucratic roadblock for a reasonable request. Researchers are usually surprised to hear they have lost this right.

While it was possible to be assertive and push to retain copyright to your images (or even article) and just grant ACM unlimited permission – certainly firms such as Pixar and Disney have done so with their content – the default was to give the ACM this copyright control.

James O’Brien brought it to our attention that this policy has been revised, and I asked Stephen Spencer (SIGGRAPH’s Director of Publications) for details. His explanation follows.

ACM has recently changed its copyright policy to include the option, under certain circumstances, of retaining copyright on embedded content in material published by ACM. Embedded content can now fall into one of three categories: copyright of the content is transferred to ACM as part of the rest of the paper (the default), the content is “third-party” material (not created by the author(s)), or the content is considered an “artistic image.”

The revised copyright form includes this definition of “artistic images”:

“An exception to copyright transfer is allowed for images or figures in your paper which have ‘independent artistic value.’ You or your employer may retain copyright to the artistic images or figures which you created for some purpose other than to illustrate a point in this paper and which you wish to exploit in other contexts.”

The ACM Copyright Policy page also documents this change in policy.

ACM’s electronic copyright system is being updated to implement this change; authors who wish to declare one or more pieces of embedded content in their papers as “artistic images” should contact Stephen Spencer (at <spencer@cs.washington.edu>) to receive a PDF version of the revised copyright form.

The copyright form includes instructions for declaring embedded content as “artistic images,” both in your paper and on the copyright form.

—-

Note that this change is “going forward”; if you have already given ACM the copyright, you cannot get it back. Understandable, as otherwise there could be a flood of requests for recategorization.

I’m happy to see this change, it is a good step in the right direction.

More Free GDC 2011 Content in Vault

In my previous GDC links post, I briefly mentioned the free section of the GDC Vault, and listed individual links to a few of the many videos and presentation slides available there. I’ll list more links to free Vault content in this post, mostly stuff of interest to readers of this blog that isn’t otherwise available online.

Videos (many of these have presentation slides available from one of the links included in my previous post):

Slides (skipping any talks linked in my previous post):

GDC 2011 Links

Since it’s quite a long time after GDC 2011 and I never found the time to do a proper conference report, I thought I’d at least do a link roundup.

First, the GDC Vault has a Free Section with many presentation slides. Video for most talks is behind a paywall, but several notable talks have freely available video:

There are several other talks with free video, mostly sponsored by companies such as Intel and NVIDIA.

The rest of this post will cover talks where the authors or their companies have made materials available outside the Vault – I haven’t checked, but I suspect there is a fair bit of overlap with the free section in the Vault.

Presentations from the “Advanced Visual Effects with DirectX 11” tutorial day:

These are hosted on the AMD conference presentations page, which also has a few other AMD presentations:

Presentations from the “Physics for Game Programmers” tutorial day (these are only some of the presentations, it looks like the rest are up on the Vault’s free section):

Presentations from the Technical Artist Bootcamp can be found here – links to individual presentations follow:

DICE had quite a few presentations at GDC, many related to real-time rendering. All DICE presentations can be found on their publications page.

One DICE presentation of particular interest, Approximating Translucency for a Fast, Cheap and Convincing Subsurface Scattering Look (Colin Barre-Brisebois) can also be found on the author’s blog, along with an addendum.

NVIDIA also had a good number of presentations, to be found on their GDC 2011 page. An especially notable one (jointly presented with covered the Epic “Samaritan” demo, intended both to show off the Unreal Engine’s DX11 feature set, and to set a quality bar for the makers of next-generation consoles (the demo was shown on a machine with three GeForce GTX 580 cards connected via SLI, so definitely a “futuristic” system). Online material for the Samaritan demo includes the presentation slides, video of the demo, and some additional technical details on the underlying technology.

Intel also has a dedicated web page for their GDC 2011 presentations. Two especially interesting ones covered Order-Independent Transparency and Dynamic Resolution Rendering. Additional organizations with multiple talks at GDC included AutoDesk and Khronos.

The talk Mega Meshes: Modeling, Rendering and Lighting a World Made of 100 Billion Polygons (Ben Sugden & Michal Iwanicki, Lionhead) presented some unique rendering technology they developed for the (cancelled) game, Milo & Kate. Additional online materials include a video and a second video.

Other rendering talks with online materials include Anti-Aliasing From a Different Perspective (Dmitry Andreev, LucasArts), Practical Occlusion Culling on PS3 (Will Vale, Second Intention), Normal Offset Shadows (poster by Daniel Holbert, High Moon), HTML5 and Other Modern Browser Game Tech (Vincent Scheib, Google), and several presentations that Wolfgang Engel (Confetti) gave at the Intel booth.

Two animation talks also have online materials: The Animation of Halo: Reach: Raising the Bar (Joe Spataro & Tam Armstrong, Bungie), and An Automated Pipeline for Generating Run-Time Rigs (Adam Mechtley, Candlelight Interactive), as well as three non-graphics engineering talks: Forensic Debugging: How To Autopsy, Repair, and Reanimate a Release-built Game (Elan Ruskin, Valve), I Shot You First! Gameplay Networking in Halo: Reach (David Aldridge, Bungie) (there is also a much smaller file without video), and Message Queuing on a Large Scale (Jon Watte, IMVU).

For the sake of completeness, I’ll also list the design, production, and business presentations and videos I found online:

If you find any other presentations online, please put a link in the comments to this post.