Reports

You are currently browsing the archive for the Reports category.

Ken Torrance, 69, passed away unexpectedly February 15. His last name should be familiar to many of you: Torrance-Sparrow and Cook-Torrance are two reflection models that bear it.

He was a professor in the mechanical and aerospace engineering department at Cornell. Don Greenberg, head of the Program of Computer Graphics at Cornell, was his long-time collaborator and was one person who spoke today at a gathering in remembrance of Ken. He talked about how Dr. Torrance was not a man who blew his own horn, how he was humble about his contributions. The main thing for Ken was that he loved to teach. Some early accomplishments Don noted (with my own additions):

  • Published in 1967, Torrance-Sparrow was based on his PhD work (Sparrow was his advisor). It is a reflection model that was based on experimental data combined with theory. Microfacet theory had been around since the 1920′s, but had problems, such as going to infinity at an incidence angle of 90 degrees. Torrance-Sparrow describes off-specular peaks, i.e., the phenomenon where the brightest reflection off of roughened metal is not in the reflection direction. It’s worth noting that Blinn’s reflection model is directly derived from this work, putting it into vector form.
  • Cook-Torrance, in 1981, should be more familiar to computer graphics people, coalescing ideas about microfacet distribution and Fresnel reflectance and bringing in the idea of wavelength dependence. Rob Cook is currently the VP of Software Engineering at Pixar.
  • The idea of using heat transfer theory in computer graphics is Torrance’s idea, along with Greenberg; another great example of how cross-pollination between fields can yield fantastic results. The paper by Goral et al. (including Ken) in 1984 describes computing diffuse-diffuse interaction. It introduced two concepts to the field that have become key elements of global illumination theory and practice: form factors and radiosity. What’s interesting to me in this paper is that it includes something somewhat rare in our field, an explanation of an experimental setup to compare computer-generated results with reality. It’s the paper where the Cornell Cube was first used (empty! It made visibility computations ignorable). If you want to try a form of this experiment, look here.
  • I could go on and on, the themes being simulating light transport and materials along with physically measuring BRDFs and illumination spectral distributions—theory and experiment. You can see some other papers listed here. Here’s the measurements lab in 1995. SIGGRAPH recognized his accomplishments in 1994, giving him the Computer Graphics Achievement Award that year.

I had a passing acquaintance with Professor Torrance over the years. I was working on ray-traced shadows, not radiosity, during my time at the Cornell PCG lab from 1983-85. I recall seeing a photo on a monitor in the lab one night and asking Cindy Goral about it, why it was scanned in. She told me it was an image she had generated with radiosity techniques, which was utterly flabbergasting to me. Dr. Torrance was a smart guy and a nice person, but I didn’t know him much beyond that. All I knew was that he was helping Cindy, and in his life many other students, make astounding images.

If you have a personal memory of Ken, you may wish to leave a note in the family’s guestbook.

Tags: ,

I mentioned this I3D 2010 paper in a blog post a while ago, but there was no preprint for it at the time.  Now the floodgates of information have been opened with the preprint, a video, and an extended paper all available on the first author’s website.  The source code has also been open-sourced with the Apache 2.0 license and posted on Google Code.

I’m not that familiar with previous work in the area, so I don’t know how it stacks up against e.g. Gigavoxels; if anyone has any insight please let me know.  One interesting detail from the paper was the way they enhance each cubical voxel with a pair of bounding planes, which they call contours.

They show that the data structure enables casting rays significantly faster than against a triangle model of equivalent complexity.  Unfortunately, it appears to still be slower than rendering the triangles the “old-fashioned way”.  The technique also requires post-filtering since it does not allow for filtering of color and normal information (which is effectively point-sampled).  Finally, building the data structure takes a fair bit of time, making this not particularly well-suited for dynamic scenes.

Tags: ,

C++, Baby

I was catching up on the Communications of the ACM, and noticed this article, Computer Science in the Conceptual Age. The “catch your eye” text on one page was: “Programming interns/job seekers from our program Spring 2009 (35 interviewed in the game industry) found no companies administering programming tests in Java.”

There are other chewy bits, such as: “The USC experience is that 100% of its students interviewed for programming positions are given three-to-four-hour-long programming tests, with almost all companies administering the tests in C++.”

Also, this: “The game industry will also tell you that it wants the first four programming classes in C++, not Java, according to M.M. McGill and my own private communications with directors of human resources in major game-development companies.”

One final morsel: “Many game companies say they will not interview or hire someone whose first programming language is Java.”

Wow, that last one’s harsh, especially since my experience with two teenage sons (one in high school, the other a freshman computer science major) is that Java is the norm for the first “real” language taught (I don’t count Scheme as a real, “you’ll get paid programming in it” type of language). I don’t think I’d rule someone out for knowing Java first, though having gone from C++ to Java and then back, the transition from Java to C++ is like being thrown out of the promised land: you suddenly again spend half your time messing with memory in one form or another. C# and Java are darn productive in that way. And, no, for me at least, those auto-pointer classes in C++ never quite seem to work—they need a different sort of discipline I don’t appear to have. I also love that my first Java program, from 1997, still works on the web; some of my C++ programs from back then won’t run on Vista or Windows 7 because the WinG DLLs are not a part of those operating systems (thanks, Microsoft).

Nonetheless, the article’s right: at Autodesk we’ve dabbled with Java and C#, I’ve seen Python used for UI control around the fringes of a program, but the heart of client-side graphical programs is almost always C++ (or isn’t, with regrets and cancellation often soon following—been there myself, though Java was only a little bit to blame, to be fair). Also, XNA, which uses C#, does not have a 64 bit version. In addition, Microsoft’s managed code support usually lags behind the “real” DirectX, i.e., the one for C++.

Looking around, I did find an open-source project, SlimDX, that does support 64-bit assemblies for interfacing with DirectX. Interestingly, they claim one AAA game title shipped using SlimDX, but no mention of which. So I asked. They’re keeping the information confidential, which is fine, but the other comment sounds about right: “The large majority of professional commercial PC/console games are still developed in C++ because of the sheer amount of legacy code the studios developing those games have that is already in C++ (and because of the generally poor support from major console vendors for languages other than C or C++, which contributes to lock-in).”

Long and short: it’s C++, baby.

Tags: , , , , ,

Oops – I forgot to include Christophe Hery in the point-based color bleeding award below.  This has now been fixed; apologies and congratulations to Christophe.  Many thanks to Margarita Bratkova for pointing out the error!

Last week, the Academy of Motion Pictures Arts and Sciences (most known for its annual Academy Awards, or “Oscars”) announced the winners of it’s 2009 Scientific & Technical Awards.  No Awards of Merit (the highest award level) were given this year – those are the ones that come with an “Oscar” statuette and are shown in the Academy Awards telecast (Renderman and Maya have won Awards of Merit in previous years).

Two computer graphics-related Scientific and Engineering Awards were given this year; these are the second-highest award level and come with a bronze tablet:

  • Per Christensen, Michael Bunnell and Christophe Hery for point-based indirect illumination; an an interesting inversion of usual practice, this fast approximate global illumination / ambient occlusion technique started out as a real-time GPU technique and ended up as an offline rendering CPU technique (first used in Pirates of the Caribbean: Dead Man’s Chest, it is now a standard part of Pixar’s Renderman).  A recent SIGGRAPH Asia paper describes a closely related technique.
  • Paul Debevec, Tim Hawkins, John Monos and Mark Sagar for Light Stage and image-based character relighting.  The work done by Paul Debevec and his team at USC’s Institute for Creative Technologies on image-based capture and lighting has been hugely influential, resulting in widespread adoption of light probes, multi-exposure HDR image capture, and many other techniques commonly used in games as well as film.

One of the Technical Achievement Awards (the third level, which comes with a certificate) is also of interest to readers of this blog:

  • Hayden Landis, Ken McGaugh and Hilmar Koch for ambient occlusion.  The pioneering work on ambient occlusion for film production was done by these guys at ILM; first publication was at the Renderman in Production course at SIGGRAPH 2002 (the relevant chapter of the course notes can be found here).  Of course, ambient occlusion is heavily used in real-time applications as well.

In an interesting related development, eight separate Scientific and Engineering Awards and two Technical Achievement were given for achievements related to the digital intermediate process (digital scanning and processing of film data), many of them for look-up-table (LUT) based color correction (LUTs have also been used for color correction in games).  The Academy tends to batch up awards in this way for technologies whose “time has come” (two years ago there were a lot of fluid simulation awards).  Given that another of the Technical Achievement Awards was for a motion capture system, we can see how quickly digital technology has come to dominate the film industry.  As recently as 2005, most of the awards were for things like camera systems; this year only one of the awards (for a lens motor system) was for non-digital technology.

Congratulations to all the winners!

Tags: , , ,

More on Larrabee

I wrote earlier on Larrabee being delayed. A coworker pointed out this article from Jon Peddie Research, who know (and usually charge) more than I do. It makes a plausible case that cancelling this first version of Larrabee was the correct move by Intel, and that the experience gained is not wasted. JPR argues that the high-performance computing market is also high-margin, so needs fewer sales to be profitable. There are other gains from the project to date – anyway, a worthwhile read. I’ll be interested to see what’s next for Larrabee.

The magic of marketing and price differentials is fascinating to me. Books like The Underground Economist have some entertaining tales of how prices are set. Here’s a marketing story I heard (elsewhere), and it might even be true: HP had two versions of the series 800 workstation in the late 80′s/early 90′s, the only difference being, literally, one bit on a ROM chip. If the bit was set, then HP-UX could not be run on the workstation. Amazingly, the price for this version of the workstation was higher, even though it was seemingly less capable. This version was marketed to hospital administration, which at the time didn’t use HP-UX (so didn’t care); the workstations that could run HP-UX were sold to engineers. HP could honestly say there was a difference between the two workstations, say that one was tailored to hospital admin and the other to engineers, and so justify the price differential. If anyone wants to confirm or deny, great!

Tags: , ,

The news for the day is that the current hardware version of Larrabee, Intel’s new graphics processor, for the consumer market has been delayed (or cancelled, depending on what you mean by “cancelled”). Intel is not commenting on possible future Larrabee hardware, so the Larrabee project itself exists. I don’t see an official press release (yet) from Intel. The few solid quotes I’ve seen (in CNET) is:

“Larrabee silicon and software development are behind where we hoped to be at this point in the project,” Intel spokesperson Nick Knupffer said Friday. “As a result, our first Larrabee product will not be launched as a standalone discrete graphics product,” he said.

along with this:

Intel would not give a projected date for the Larrabee software development platform and is only saying “next year.”

The Washington Post gives this semi-quote:

Intel now plans its first Larrabee product to be used as a software development platform for both graphic and high performance computing, Knupffer said.

See more from The Inquirer, CNET, ZDNet, Washington Post, and the Wall Street Journal. Many more versions via Google News.

In my opinion, Intel has a tough row to hoe: catch up in the field of high-performance graphics, when all they’ve had before is the ~$2 chip low-end GMA series. This series probably has a larger market share in terms of units sold than NVIDIA and AMD GPUs combined (basically, any Intel computer without a GPU card has one), but I assume makes pennies per unit and by its nature is limited in a number of ways. Markets like high-performance computing, which make the most sense for Larrabee (since it appears to have the most flexibility vs. NVIDIA or AMD’s GPUs, e.g. it’s programmable in C++), is a tiny piece of the market compared to “I just want DirectX to run as fast as possible”. The people I know on the Larrabee team are highly competent, so I don’t think the problem was there. I’d love to learn what hurdles were encountered in the areas of design, management, algorithms, resources, etc. Even all the architectural choices of Larrabee are not understood in their particulars (though we have some good guesses), since it’s unreleased. Sadly, we’re unlikely to know most of the story; writing “The Soul of An Unreleased Machine” is not an inspiring tale, though perhaps a fascinating one.

Tags:

In January, AMD and OToy announced Fusion Render Cloud, a centralized rendering server system which would perform rendering tasks for film and even games, compressing the resulting video and sending it over the internet.  In March, OnLive announced a similar system, but for the entire game, not just rendering.  Now NVIDIA has announced another cloud rendering system, called RealityServer, running on racks of Tesla GPUs (presumably using Fermi in future iterations).  This utilizes the iray ray tracing system developed by mental images, who also make mental ray (mental images has been owned by NVIDIA since 2007).

The compression is going to be key, since it has to be incredibly fast, extremely low bit rate and very high quality for this to work well.  I’m a bit skeptical of cloud rendering at the moment but maybe all these companies (and investors) know something I don’t…

Tags: , , ,

HPG 2009 Report

I got to attend HPG this year, which was a fun experience.  At smaller, more focused conferences like EGSR and HPG you can actually meet all the other attendees.  The papers are also more likely to be relevant than at SIGGRAPH, where the subject matter of the papers has become so broad that they rarely seem to relate to graphics at all.

I’ve written about the HGP 2009 papers twice before, but six of the papers lacked preprints and so it was hard to judge their relevance.  With the proceedings, I can take a closer look.  The “Configurable Filtering Unit” paper is now available on Ke-Sen Huang’s webpage, and the rest are available at the ACM digital library.  The presentation slides for most of the papers (including three of these six) are available at the conference program webpage.

A Directionally Adaptive Edge Anti-Aliasing Filter – This paper describes an improved MSAA mode AMD has implemented in their drivers.  It does not require changing how the samples are generated, only how they are resolved into final pixel colors; this technique can be implemented on any system (such as DX10.1-class PCs, or certain consoles) where shaders can access individual samples.  In a nutshell, the technique inspects samples in adjacent pixels to more accurately compute edge location and orientation.

Image Space Gathering – This paper from NVIDIA describes a technique where sharp shadows and reflections are rendered into offscreen buffers, upon which an edge-aware blur operation (similar to a cross bilateral filter) is used to simulate soft shadows and glossy reflections.  The paper was targeted for ray-tracing applications, but the soft shadow technique would work well with game rasterization engines (the glossy reflection technique doesn’t make sense for the texture-based reflections used in game engines, since MIP-mapping the reflection textures is faster and more accurate).

Scaling of 3D Game Engine Workloads on Modern Multi-GPU Systems – systems with multiple GPUs used to be extremely rare, but they are becoming more common (mostly in the form of multi-GPU cards rather than multi-card systems).  This paper appears to do a through analysis of the scaling of game workloads on these systems, but the workloads used are unfortunately pretty old (the newest game analyzed was released in 2006).

Bucket Depth Peeling – I’m not a big fan of depth peeling systems, since they invest massive resources (rendering the scene multiple times) to solve a problem which is pretty marginal (order-independent transparency).  This paper solves the multi-pass issue, but is profligate with a different resource – bandwidth.  It uses extremely fat frame buffers (128 bytes per pixel).

CFU: Multi-purpose Configurable Filtering Unit for Mobile Multimedia Applications on Graphics Hardware – This paper proposes that hardware manufacturers (and API owners) add a set of extensions to fixed-function texture hardware.  The extensions are quite useful, and enable accelerating a variety of applications significantly (around 2X).  Seems like a good idea to me, but Microsoft/NVIDIA/AMD/etc. may be harder to convince…

Embedded Function Composition – The first two authors on this paper are Turner Whitted (inventor of hierarchical ray tracing) and Jim Kajiya (who defined the rendering equation).  So what are they up to nowadays?  They describe a hardware system where configurable hardware for 2D image operations is embedded in the display device, after the frame buffer output.  The system is targeted to applications such as font and 2D overlays.  The method in which operations are defined is quite interesting, resembling FPGA configuration more than shader programming.

Besides the papers, HPG also had two excellent keynotes.  I missed Tim Sweeney’s keynote (the slides are available here), but I was able to see Larry Gritz’s keynote.  The slides for Larry’s keynote (on high-performance rendering for film) are also available, but are a bit sparse, so I will summarize the important points.

Larry started by discussing the differences between film and game rendering.  Perhaps the most obvious one is that games have fixed performance requirements, and quality is negotiable; film has fixed quality requirements, and performance is negotiable.  However, there are also less obvious differences.  Film shots are quite short – about 100-200 frames at most; this means that any precomputation, loading or overhead must be very fast since it is amortized over so few frames (it is rare that any precomputation or overhead from one shot can be shared with another).  Game levels last for many tens of thousands of frames, so loading time is amortized more effiiciently.  More importantly, those frames are multiplied by hundreds of thousands of users, so precomputation can be quite extensive and still pay off.  Larry makes the point that comparing the 5-10 hours/frame which is typical of film rendering with the game frame rate (60 or 30 fps) is misleading; a fair comparison would include game scene loading times, tool precomputations, etc.  The important bottleneck for film rendering (equivalent to frame rate for games) is artist time.

Larry also discussed why film rendering doesn’t use GPUs; the data for a single frame doesn’t fit in video memory, rooms full of CPU blades are very efficient (in terms of both Watts and dollars), and the programming models for GPUs have yet to stabilize.  Larry then discussed the reasons that, in his opinion, ray tracing is better suited for film rendering than the REYES algorithm used in Pixar’s Renderman.  As background, it should be noted that Larry presides over Sony Pictures Imageworks’ implementation of the Arnold ray tracing renderer which they are using to replace Renderman.  An argument for replacing Renderman with a full ray-tracing renderer is especially notable coming from Larry Gritz; Larry was the lead architect of Renderman for some time, and has written one of the more important books popularizing it.  Larry’s main points are that REYES has inherent inefficiencies, it is harder to parallelize, effects such as shadows and reflections require a hodgepodge of effects, and once global illumination is included (now common in Renderman projects) most of REYES inherent advantages go away.  After switching to ray-tracing, SPI found that they need to render fewer passes, lighting is simpler, the code is more straightforward, and the artists are more productive.  The main downside is that displacing geometric detail is no longer “free” as it was with REYES.

Finally, Larry discussed why current approaches to shader programming do not work that well with ray tracing; they have developed a new shading language which works better.  Interestingly, SPI is making this available under an open-source license; details on this and other SPI open-source projects can be found here.

I had a chance to chat with Larry after the keynote, so I asked him about hybrid approaches that use rasterization for primary visibility, and ray-tracing for shadows, reflections, etc.  He said such approaches have several drawbacks for film production.  Having two different representations of the scene introduces the risk of precision issues and mismatches, rays originating under the geometry, etc.  Renderers such as REYES shade on vertices, and corners and crevices are particularly bad as ray origins.  Having to maintain what are essentially two seperate codebases is another issue.  Finally, once you use GI then the primary intersections are a relatively minor part of the overall frame rendering time, so it’s not worth the hassle.

In summary, HPG was a great conference, well worth attending.  Next year it will be co-located with EGSR.  The combination of both conferences will make attendance very attractive, especially for people who are relatively close (both conferences will take place in Saarbrucken, Germany).  In 2011, HPG will again be co-located with SIGGRAPH.

Tags:

ShaderX7

ShaderX7 has been out for a few months now, but due to its size (at 773 pages, it is by far the largest of the series) I haven’t been able to finish going through it until recently.  Here are the chapters I found most interesting (click the link for the rest of this post): Read the rest of this entry »

Tags:

In Section 7.9.2 of Real-Time Rendering, we discussed deferred rendering approaches, including “partially-deferred” methods where some subset of shader properties are written to buffers.  Since publication, a particular type of partially-deferred method has gained some popularity.  There are a few different variants of this approach that are worth discussing; more details “under the fold”.

Read the rest of this entry »

Tags: , ,

« Older entries § Newer entries »