GDC 2011 – Approximating Translucency for a Fast, Cheap and Convincing Subsurface Scattering Look

This year, I’ll be presenting at GDC (Game Developers Conference), along other great speakers from EA (especially DICE).

The talk is about a very cheap and fast approximation of translucency that will allow developers to add convincing subsurface scattering to their scenes with minimal impact on performance. The technique is excellent in a wide variety of scenes, using anything from minimal to massive numbers of lights. Here’s a quick summary of my talk, which you can also find on the GDC website.


Approximating translucency for a Fast, Cheap, and convincing Subsurface Scattering Look


In real-time computer graphics, the interaction of light and matter is often reduced to local reflection described by Bidirectional Reflectance Distribution Functions (BRDFs). While this mathematical model is valid for describing surface reflectance of opaque objects, many objects in nature are partly translucent: light travels within the surface. To simulate translucent properties of objects in real-time, such as subsurface scattering (in human skin and other surfaces), developers rely on complex and expensive techniques. Conversely, this talk presents a fast and scalable approximation of translucency for a convincing subsurface scattering look which can be implemented on current and next generation video gaming systems.


Developers attending this session will be able to improve their game’s visuals by adding real-time translucency to their scenes with minimal impact on the run-time, as demonstrated using EA DICE’s Frostbite engine. Moreover, this effect, once limited to offline rendering, will undeniably help developers in creating a more complete and immersive gaming experience.

[Intended Audience]

Reaching stakeholders from several disciplines of video game development, this talk is intended for all individuals that share common goals in terms of real-time graphics and that strive towards improving the visual quality of tomorrow’s games: rendering programmers, technical artists, art directors and technical art directors.

Visit this website for more info on other great talks to be presented.

See you at GDC!

Tools of The Trade: RockScroll & MetalScroll

Every once in a while you stumble onto a tool that makes your life (as a software developer) so much easier. What’s even better is when the tool is so great that you can’t  (or really hard to) work without it anymore! Over the years, many have fallen into this category. I recall when I was first introduced to Whole Tomato Software’s Visual Assist X and Perforce (coming from the pre-changelist era SCMs): it was hard to even consider working on a project without the latter (especially side projects at home – luckily these are affordable/available for home/side projects). So many people have made so many great add-ons for current IDEs and external tools, finding some that suit your code poet style will definitely make your life easier.

This new addition to my list of must-haves is called RockScroll:

Developed by Rocky Downs from Microsoft and publicly released by Scott Hanselman, Rockscroll is an add-on for Microsoft’s Visual Studio which replaces the scroll bar with a zoomed-out/graphic view of the file you’re currently editing. Acting as a graphic replacement to the default scroll bar, the current section of code you’re editing is highlighted, allowing you to quickly identify where you’re positioned in that file. This is especially useful for big files in which you keep scrolling from section to section. As you work, you will recognize the various sections from the zoomed-out image/bar (i.e. sections of comments, big blocks of code, etc), and instinctively jump to them as you progress with your modifications. Additionally, the bar will update itself and show supplementary information as required. For example, if you double-click on a word or variable, it will highlight all the other sections of code that have that same word/variable. Also, RockScroll will show differences in color based on saved/unsaved code.

RockScroll is free and available here.

In parallel, Mihnea Balta has released an open-source and improved version: MetalScroll. Here are some of the improvements, taken from the Google Code page where this nifty variation resides:

  • double-clicking the scrollbar brings up an options dialog where the color scheme and various other things can be configured.
  • the width of the scrollbar is configurable.
  • the widget at the top of the scrollbar which splits the editor into two panes is still usable when the add-in is active.
  • you must hold down ALT when double-clicking a word to highlight all its occurrences in the file. RockScroll highlights words on regular double-click, which can be annoying when you actually meant to use drag&drop text editing, for example when dragging a variable to the watches window. People who prefer the old behavior can disable this in the options dialog.
  • pressing ESC clears the highlight markers.
  • lines containing highlighted words are marked with 5×5 pixel blocks on the right edge of the scrollbar, to make them easier to find (similar to breakpoints and bookmarks).
  • multiline comments are recognized.
  • hidden text regions and word wrapping are supported.
  • it works in split windows.
  • middle-clicking the scrollbar shows a preview of the code around the clicked line
  • it’s open source, so people who want to change stuff or add features can do so themselves.

Whether you settle for the original RockScroll or the improved MetalScroll, you will never want to code without these ever again. Luckily, both are free, so you should definitely check them out, and see which one you prefer.

Happy coding, and Happy Holidays 🙂