Category Archives: Miscellaneous

Predicting the Past

Inspired by Bing (a person, not a search engine) and by the acrobatics I saw tonight in Shanghai, time for a blog post.

So what’s up with graphics APIs? I’ve been working on a project for a fast 3D graphics system for Autodesk for about 4 years now; the base level (which hides the various flavors of DirectX and OpenGL) is used by Maya, Max, AutoCAD, Inventor, and other products. There are various higher-level optimizations we’ve added (and why Microsoft’s fxc effect compiler suddenly got a lot slower is a mystery), with some particularly nice work by one person here in the area of multithreading. Beyond these techniques, minimizing the raw number of calls to the API is the primary way to increase performance. Our rule of thumb is that you get about 1000-1500 calls a frame (CAD isn’t held to a 60 FPS rule, but we still need to be interactive). The usual tricks are to sort by state, and to shove as much geometry and processing as possible into a single draw call and so avoid the small batch problem. So, how silly is that? The best way to make your GPU run fast is to call it as little as possible? That’s an API with a problem.

This is old news, Tim Sweeney railed against API limitations 3 years ago (sadly, the article’s gone poof). I wrote about his ideas here and added my own two cents. So where are we since then? DirectX 11 has been out awhile, adding three more stages to the pipeline for efficient tessellation of higher-order surfaces. The pipeline’s feeling a bit unwieldy at this point, with a lot of (admittedly optional) stages. There are still some serious headaches for developers, like having to somehow manage to put lighting and material shading in the same pixel shader (one good argument for deferred lighting and similar techniques). Forget about optimization; the arcane API knowledge needed to get even a simple rendering on the screen is considerable.

I haven’t heard anything of a DirectX 12 in the works (except maybe this breathless posting, which I feel obligated to link to since I’m in China this month), nor can I imagine what they’d add of any significance. I expect there will be some minor XBox 72o (or whatever it will be called) -related tweaks specific to that architecture, if and when it exists. With the various CPU+GPU-on-a-chip products coming out – AMD’s Fusion family, NVIDIA’s Tegra 2, and similar from other companies (I think I counted 5, all totaled) – some access costs between the two processors become much cheaper and so change the rules. However, the API still looks to be the bottleneck.

Marketwise, and this is based entirely upon my work in scapulimancy, I see things shifting to mobile. If that isn’t at least the 247th time you’ve heard that, you haven’t been wasting enough time on the internet. But, it has some implications: first, DirectX 12 becomes mostly irrelevant. The GPU pipeline is creaky and overburdened enough right now, PC games are an important niche but not the focus, and mobile (specifically, iPad and other tablets) is fine with the functionality defined thus far by existing APIs. OpenGL ES will continue to evolve, but I doubt we’ll see for a good long while any algorithmically (vs. data-slinging) new elements added to the API that the current OpenGL 4.x and DX11 APIs don’t offer.

Basically, API development feels stalled to me, and that’s how it should be: mobile’s more important, PCs are a (large but slowly evolving) niche, and the current API system feels warped from a programming standpoint, with peculiar constructs like feeding text strings to the API to specify GPU shader effects, and strange contortions performed to avoid calling the API in order to coax the GPU to run fast.

Is there a way out? I felt a glimmer while attending HPG 2011 this year. The paper “High-Performance Software Rasterization on GPUs” by Samuli Laine and Tero Karras was one of my (and many attendees’) favorites, talking about how to efficiently implement a basic rasterizer using CUDA (code’s open sourced). It’s not as fast as dedicated hardware (no surprise there), but it’s at least in the same ball-park, with hardware being anywhere from 1.5x to 8.1x faster for their test cases, median being 3.6x. What I find exciting is the idea that you could actually program the pipeline, vs. it being locked away. They discuss ideas for optimization such as loosening the “first in, first out” rule for triangles currently enforced by all APIs. With its “yet another language” dependency, I can’t say I hope GPGPU is the future (and certainly CUDA isn’t, since it cuts out non-NVIDIA hardware vendors, but from all reports it’s currently the best way to experiment with GPGPU). Still, it’s nice to see that the fixed-function bits of the GPU, while important, are not an insurmountable limit in considering more flexible and general interactive rasterization programming models. Or, ray tracing – always have to stick that in there.

So it’s “forward to the past”, looking at traditional algorithms like rasterization and ray tracing and how to gain efficiency (both in raw speed and in development time) on various modern architectures. That’s ultimately what it’s about for me, at least: spending lots of time fighting the API, gluing together strings to make shaders, and all the other craziness is a distraction and a time-waster. That said, there’s a cost/benefit calculation implicit in all of this. For example, using C# or Java is way more productive than C++, I’d say about 2x, mostly because you’re not tracking down memory problems like leaks and access uninitialized or non-existent values. But, there’s so much legacy C++ code around that it’s still the language of graphics, as previously discussed here. Which means I expect none of the API weirdness to change for a solid decade, at the minimum. Please do go ahead and prove me wrong – I’d be thrilled!

Oh, and acrobatics? Hover your cursor over the image. BTW, the ERA show in Shanghai is wonderful, unlike current APIs.

CFP: IEEE CG&A special issue on material appearance

Passing on the word:

IEEE CGA special issue

Modeling and Rendering Material Appearance

Final submissions due: 1 July 2011
Publication date: March/April 2012

Modeling and rendering the appearance of materials is important in many computer graphics applications. Understanding material appearance draws on methods from diverse fields including the physics of light interaction with material (including models of BRDF, bidirectional reflectance distribution functions, and BSSRDF, bidirectional subsurface scattering reflection distribution functions), human perception of materials, and efficient data structures and algorithms.

This special issue will cover all aspects of material appearance in graphics, ranging from theory to application. Possible topics include (but are not limited to)

  • first-principle models for BRDF and BSSRDF;
  • procedural models of materials;
  • modeling of mesoscale material features including bumps, ridges, and so on;
  • measurement of material appearance including BRDF, BSSRDF, and BTF (bidirectional texture functions);
  • numerical simulation of material appearance;
  • new instruments for measuring appearance;
  • material-appearance models from photo collections;
  • new data structures for representing material appearance;
  • efficient rendering of BTF and BSSRDF;
  • new interfaces for designing material appearance;
  • methods for printing hard copies of material appearance;
  • psychophysics of material appearance with application to computer modeling;
  • material-appearance applications in industry such as the design of paints and coatings; and
  • nonphotorealistic rendering of material appearance.

Questions?

Contact Holly Rushmeier (holly@acm.org) or  Pierre Poulin (poulin@iro.umontreal.ca)

Submission Guidelines

Articles should be no more than 8,000 words, with each figure counting as 200 words. Cite only the 12 most relevant references, and consider providing technical background in sidebars for nonexpert readers. Color images are preferable and should be limited to 10. Visit CG&A style and length guidelines at www.computer.org/cga/author.html.

Please submit your article using the online manuscript submission service at https://mc.manuscriptcentral.com/cs-ieee. When uploading your article, select the appropriate special-issue title under the category “Manuscript Type.” Also include complete contact information for all authors. If you have any questions about submitting your article, contact the peer review coordinator at cga-ma@computer.org.

SIGGRAPH Asia 2011 Call for Submissions

The call for submissions for SIGGRAPH Asia 2011 has recently gone live. This fourth iteration of the SIGGRAPH Asia conference will take place in Hong Kong between December 12th and 15th. In previous years, the sketches and course programs have been of similar quality (if reduced quantity) compared to their North American counterparts. The SIGGRAPH Asia Technical Papers have been really good, better in my opinion than the relatively abstruse SIGGRAPH Technical Papers. If you want to see for yourself, the incomparable Ke-Sen Huang has your back, with paper link pages for SIGGRAPH Asia 2008, 2009 and 2010. Ke-Sen deserves an outstanding service award from ACM, instead of the more negative attentions he has received from them.

Here is the 2011 CFS text (a slightly more detailed version can be found here):

SIGGRAPH Asia 2011 sees the return of the Art Gallery and Emerging Technologies programs. Also calling for submissions are: Computer Animation Festival, Courses, Technical Papers, Technical Sketches & Posters.

Submit your research, theories, and innovations and you might be the next to have the valuable opportunity to present your work to audience-packed halls at SIGGRAPH Asia 2011 conference in Hong Kong this December.

For more information on SIGGRAPH Asia 2011, please visit www.siggraph.org/asia2011/.

Just two weeks until the SIGGRAPH General Submission deadline!

SIGGRAPH 2011 will be in Vancouver, on August 7-11, 2011. I’ve given presentations at SIGGRAPH several times; each time was a great experience where I learned a lot and met some pretty awesome graphics people from the world’s top research institutions, film production companies, and game development studios.

SIGGRAPH has several programs at which game developers can show their work; I wanted to point out that two of the most important (Talks and Dailies) have deadlines on February 18th, less than two weeks away! Fortunately submitting a proposal to one of these programs doesn’t take much time. However, getting approval from your boss may take a while, so you don’t want to wait.

SIGGRAPH Talks are 20-minute long presentations which typically contain “nuggets” of novel film or game production tech. These can be rendering or shading techniques, tools for artists, enhancements done to support a tricky character design, etc. If it’s something a programmer or technical artist is proud of having done and it’s at least tangentially graphics-related, chances are it would make a good Talk submission. Submitting a talk only requires creating a one-page abstract; if the talk is accepted, you have until August to make 20 minutes worth of slides – not too bad. To get an idea of the level of detail expected in the abstract, and of the variety of possible talks, here are some film and game Talk abstracts from 2009 and 2010: Houdini in a Games Pipeline, Spore API: Accessing a Unique Database of Player Creativity, Radially-Symmetric Reflection Maps, Underground Cave Sequence for Land of the Lost, Hatching an Imaginary Bird, Fast Furry Ray Gathering, and NPR Gabor Noise for Coherent Stylization. If you are reading this, please consider submitted the coolest thing you’ve done last year as a Talk; the small time investment will repay itself many times over.

SIGGRAPH Dailies are relatively new (first introduced at SIGGRAPH 2010). These are very short (under two minutes!) presentations of individual art assets, such as models, animations, particle effects, shaders, etc. Unlike the rest of SIGGRAPH which emphasizes novel techniques, Dailies emphasize excellence in the result. Every good game or movie has many individual bits of excellence, each the result of an artist’s talent, imagination and sweat. These are often overlooked, or unknown outside the studio; Dailies aim to correct that. Dailies submissions are even easier than Talk submissions. All that is required is a short (60-90 second) video of the art asset, no audio, just something simple like an animation loop or model turntable. You will also need a short backstory; something that gives a feeling for the effort that went into the work, including any notable production frustrations, unlikely inspirations, sudden strokes of genius, etc. Don’t write too much – it should take about as long to say as the video length (60-90 seconds). To get a better idea of what a Dailies presentation looks like, here are two examples. The list of Dailies presented at SIGGRAPH 2010 can be found here: it runs the gamut from Pixar and Disney movies to student projects. I suspect not many artists read this blog, so any game programmers reading this, please forward it to the artists at your studio.

Good luck with your submissions!

NPAR Call For Papers

The ACM Non-Photorealistic Animation and Rendering Symposium has put out its call for papers. NPAR alternates its location each year between Annency, France (which is lovely) or colocated with SIGGRAPH (which is convenient for many of us). This is a SIGGRAPH year, in Vancouver (lovely and convenient). NPAR takes place the weekend before, colocated with Sketch-Based Interfaces and Modelling (SBIM) and (new this year) Computational Aesthetics (CAe).

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

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

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.