Author Archives: Naty

Deferred lighting approaches

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”.

Continue reading

SIGGRAPH 2009 courses

No sooner had I written about the full SIGGRAPH 2009 course list not being up yet, and bam! there it is.  As I hinted at, there is a lot of stuff there for real-time rendering folks.  Some highlights:

Advances in Real-Time Rendering in 3D Graphics and Games (two-parter; second part here):  This (somewhat awkwardly-named course) has been my favorite thing at SIGGRAPH for the past three years.  Each year it presents all-new material.  Previous courses have seen the debut of important rendering techniques algorithms like SSAO, signed distance-field vector texturing, and wrinkle mapping, as well as details on the rendering secrets behind games like Halo 3, Crysis, Starcraft 2, Half-Life 2, Team Fortress 2, and LittleBigPlanet.  Not much is known about this year’s content, except that it will include details on Crytek’s new global illumination algorithm; but this is one course I know I’m going to!

Beyond Programmable Shading (another two-parter):  GPGPU was promoted by GPU manufacturers in an attempt to find non-graphics uses for their products, and then turned full circle as people realized that drawing pretty pictures is really the best way to use massive general-purpose computing power.  Between CUDA, OpenCL, and Larrabee, this has been a pretty hot topic.  This is the second year that this course has been presented; last year had information on all the major APIs, and some case studies including a presentation on id’s Voxel Octree research.  A subsequent SIGGRAPH Asia presentation added some new material, such as a presentation on real-time implementations of Renderman‘s REYES algorithm.  This year, presenters include people from NVIDIA, AMD, Intel and Stanford; I expect this course to add significant new material, given the rapid development of the field.

Efficient Substitutes for Subdivision Surfaces: Tessellation is another hot topic; Direct3D 11 is mostly designed around this and Compute Shaders (the topic of the previous course).  There has been a lot of work on mapping subdivision surfaces and other types of high-order surface representations to D3D11 hardware.  Including presenters from ILM, Valve, and NVIDIA, this course promises to be a great overview of the state of the art.

Color Imaging: Color is one of the most fundamental topics in rendering.  This course is presented by some of the leading researchers on color and HDR imaging, and should be well worth attending.

Advanced Material Appearance Modeling: Previous versions of this course were the basis for an excellent book on material appearance modeling.  This is a great overview of an important rendering topic, and well worth attending if you haven’t seen it in previous years.

Visual Algorithms in Post-Production: It is well-known that you can find the latest academic rendering research at SIGGRAPH, but there is always a lot of material from the trenches of film effects and animation production as well.  A surprisingly large percentage of this is relevant for real-time and game graphics.  This course has presenters from film production as well as graphics academia describing ways in which academic research is used for film post-production.  I think our community can learn a lot from the film production folks; this course is high on my list.

The Digital Emily Project: Photoreal Facial Modeling and Animation: Last year, Digital Emily was one of the most impressive technology demonstrations; it was the result of a collaboration between Paul Debevec‘s group at USC and Image Metrics, a leading facial capture company.  In this course, presenters from both ICT and Image Metrics describe how this was done, as well as more recent research.

Real-Time Global Illumination for Dynamic Scenes: Real-time global illumination is another active topic of research.  This course is presented by the researchers who have done some of the best (and most practical-looking) work in this area.  It will be interesting to compare the techniques from this course with Crytek’s technique (presented in the “Advances in Real-Time Rendering” course).

SIGGRAPH 2009 papers

Ke-Sen Huang has had a SIGGRAPH 2009 papers page up for a while, and this weekend he’s added a bunch of new papers.

I found two of these to be of direct relevance to real-time rendering:

Gaussian KD-Trees for High-Dimensional Filtering: This paper generalizes the approach used in the SIGGRAPH 2007 bilateral grid paper.  Large-scale image filters are typically performed on downscaled buffers for better performance, but this cannot normally be done for bilateral filters (which are used in real-time rendering for things like filtering SSAO).  The bilateral grid is a three-dimensional low-resolution grid, where the third dimension is the image intensity (it could also be depth or some other scalar quantity).  However, bilateral grids cannot be used to accelerate bilateral filters based on higher-dimensional quantities like RGB color or depth + surface normal; this paper addresses that limitation.

Modeling Human Color Perception under Extended Luminance Levels: An understanding of human color perception is fundamental to computer graphics; many rendering processes are perceptual rather than physical (such as tone mapping and color correction), but even physical computations are affected by the properties of human vision (such as the range of visible wavelengths and the fact that human color perception is trichromatic, or three-dimensional).  Most computer graphics people are familiar with color spaces such as CIE XYZ, but color appearance models such as CIECAM02 are less familiar.  These are used to model the effects of adaptation, background, etc. on color perception.  Current color appearance models are based on perceptual experiments performed under relatively low luminance values; this paper extends the experiments to high values, up to about 17,000 candelas per square meter (white paper in noon sunlight), and propose a new color appearance model based on their findings.  I also found the background and related work sections illuminating for their succinct overview of the current state of color science.

Two more papers, although not directly relevant to real-time rendering, are interesting and thought-provoking:

Single Scattering in Refractive Media with Triangle Mesh Boundaries: This paper finds a rapid (although not quite real-time) solution to refraction in objects composed of faceted or smooth triangle meshes.  The methods described here are interesting and look like they could inspire some real-time techniques, perhaps on the next generation of graphics hardware.

Fabricating Microgeometry for Custom Surface Reflectance: This one is not useful for rendering, but is just plain cool.  Instead of using the microfacet model to predict the appearance of surfaces based on their structure, they turn the idea around and construct surfaces so that they have a desired appearance.  One of the examples they show (inspired by Figure 1 in this paper), is a material with a teapot-shaped highlight! Well, with their current fabrication methods it is really a teapot-shaped reflection cast on a wall, but once manufacturers get their hands on this, all kinds of weird and wonderful materials will start showing up.

So far the yield of papers relevant to real-time rendering practitioners is disappointingly low; perhaps more relevant papers will show up when the official list is published.  In any case, the early list of courses has a lot of relevant material, and I have reason to believe the final list will have even more good stuff on it.  In addition, the Talks (formerly Sketches) program always has useful stuff, Will Wright is giving a keynote speech, and the Electronic Theater (which is back, renamed as the Evening Theater) now has real-time content, so there are more than enough reasons to attend SIGGRAPH this year (and it’s in New Orleans!).  Registration has already started!

CryEngine3 presentation

This detailed presentation on Crytek’s latest engine at the regional Triangle Game Conference slipped completely under my radar, but Wolfgang Engel just pointed it out to me.  It’s on Crytek’s presentations page, which has a bunch of other good stuff on it as well.

The presentation includes lots of great information on their new deferred lighting system, which is timely since I am just working on a lengthy blog post on this very subject (hopefully to be finished soon).  They also tease about their new dynamic global illumination system, to be presented at SIGGRAPH 2009.

Computer-modeled stop motion in “Coraline”

This is a bit old, but still cool: the film Coraline (based on a great book by one of my favorite authors) was stop-motion, not CG.  However, the facial animation was extremely smooth, due to a unique process.  The expressions were modeled by computer, exactly as they would have been for a CG animated feature.  Then for each frame, the faces were “printed” out on a “3D printer” (rapid prototyping machine).  These tweened “frame faces” were swapped in for each stop-motion frame.  CGSociety has an article describing the production pipeline for this film, an intriguing combination of CG and stop-motion animation.

Eurographics Workshop on Natural Phenomena 2009

EWNP has had interesting papers in recent years, but when it skipped 2008 I thought it was gone.  However it came back in 2009 with five papers, all of which are online except for one:

Procedural Modeling of Leather Texture with Structural Elements:  Not currently available online, but judging from a previous paper by these authors this appears to be about procedural modeling of the cracks and bumps in leather surfaces.  Most real-time applications will use photographed or manually created textures for this, so it is probably not of wide interest to real-time developers.

Interactive Modeling of Virtual Ecosystems: Automatic modeling of plants taking lighting, obstacles, etc. into account.  Might be useful as an automatic modeling tool.

A Geometric Algorithm for Snow Distribution in Virtual Scenes: What the title says; might be useful for automated scene modeling, but probably not for runtime use.

Corotated SPH for Deformable Solids: Smoothed Particle Hydrodynamics (SPH) is commonly used in film production for liquids, smoke, etc.  This paper discusses how to extend the technique to model deformable solids.  Probably not real-time anytime soon.

Real-Time Open Water Environments with Interacting Objects:  This combines the Tessendorf FFT-based method for ambient waves with a different method for interactive waves (waves interacting with dynamic objects).  This is the most relevant paper for real-time rendering; worth a read.

Tessendorf’s FFT method is the current gold standard for non-interactive ocean waves, and is widely used in game and film production.  A description of it can be found on his publication page, under Simulating Ocean Surface.  Tessendorf’s publication page has many more papers of interest, including an algorithm (called iWave) for interactive waves and reports on particle and volume rendering for film production.

Insomniac have a particularly efficient and flexible implementation of a variant of Tessendorf’s method, which they extended to support interactive waves as well.  This method was used in the game Resistance 2, and Insomniac Games have kindly published not just a white paper on the technique, but actual working code! This is part of their admirable Noctural Initiative for technology sharing.  The Noctural Initiative website is highly recommended, as it includes code which has been used in successful game projects by one of the most highly-regarded studios in the industry.

Another interesting approach to interactive waves is Wave Particles, which is described here.

Graphics Interface 2009 papers

The list of papers accepted to Graphics Interface 2009 (with abstracts) is now online.  Graphics Interface has had some pretty good real-time rendering papers: here is a handful of examples from the last few years.  Judging from this year’s abstracts, the following look particularly interesting:

Fast Visualization of Complex 3D Models Using Displacement Mapping: This looks like a combination of the “sparse voxel ray casting” approach popularized by id software with “relief mapping” approaches.

Depth of Field Postprocessing for Layered Scenes Using Constant-Time Rectangle Spreading: This is closely related to one of my favorite I3D 2009 posters, “Faster Filter Spreading and Its Applications”.  The basic idea (which has also been discussed in this paper by Dan Piponi) is to “splat” rectangles in constant time (independent of the rectangle size!) by “splatting” just the corners into a buffer, from which a summed-area table is constructed (using existing fast methods), yielding the desired image.  This can be extended to more general splats.  Although there is no preprint yet, the tech report is available.

An Analytical Approach to Single Scattering for Anisotropic Media and Light Distributions:  A follow-on paper to one published in Eurographics 2009, it adds anisotropic phase functions and more general lighting.  The basic solution is similar to an earlier paper by Bo Sun and others, but using a slightly different approach that enables increased precision.

Rendering the Effect of Labradorescence: This is of interest to me as an optical reflectance geek, but I doubt anyone will be using it in a game anytime soon.  This paper presents a physically-based method of rendering a complex optical phenomena that exists in gems such as Labradorite and Spectrolite.

Ke-Sen Huang’s Graphics Interface 2009 page should be a good place to hunt for preprints of these papers as they appear.

Good list of classic graphics papers

Old graphics papers don’t get enough respect nowadays; for example, Porter and Duff’s original paper is still the best place to get a good understanding of alpha blending (which too many people get wrong nowadays). There are many more gems to be found in papers from the 70s and 80s.  A while ago, I pointed out Pixar’s online paper library, which includes a lot of “golden oldies” (as well as good new stuff).  I just saw this great list of old papers on the codersnotes blog. I heartily concur with Kayamon’s assessment of the value of an ACM digital library subscription, though I wish ACM would find a way to go the Open Access route.  It’s not just a matter of expense; the registration wall adds a huge amount of friction to the process of finding information.