With this announcement, NVIDIA is focusing firmly on the GPGPU market, rather than on graphics. No details of the graphics-specific parts of the chip (such as triangle rasterizers and texture units) were even mentioned. The chip looks like it will be significantly more expensive to manufacture than AMD’s chip, and at least some of that extra die area has been devoted to things which will not benefit most graphics applications (such as improved double-precision floating-point support and more general programming models). With full support for indirect branches, a unified address space, and fine-grained exception handling, Fermi is as general purpose as it gets. NVIDIA is even adding C++ support to CUDA (the first iterations of OpenCL and DirectCompute will likely not enable the most general programming models).

The Real-Time Rendering paper session is, of course, most likely to contain papers of interest to readers of this blog. The most interesting paper, Micro-Rendering for Scalable, Parallel Final Gathering, was already discussed in a previous blog post. Since then, I’ve noticed many similarities between the technique described in this paper and the point-based color bleeding techniquePixar implemented in RenderMan. This approach to GPU-accelerated global illumination looks very promising. The other three papers in the session are also of interest: Depth-of-Field Rendering with Multiview Synthesis describes a depth-of-field method which occupies an interesting middle ground between the very high quality (and expensive) multiview methods used in film production and the much cheaper (but low-quality) post-processing methods commonly used in games; after some scaling down and optimizing, it may be appropriate for some real-time applications. Similarly to reprojection papers discussedpreviously, the Amortized Supersampling paper reprojects samples from previous frames to increase quality. Here the goal is anti-aliasing procedural shaders, but the technique could be applied to other types of expensive shaders. The remaining paper from the Real-Time Rendering session, All-Frequency Rendering With Dynamic, Spatially Varying Reflectance, does not yet have a preprint. The short abstract from the conference page does sound intriguing: “A technique for real-time rendering of dynamic, spatially varying BRDFs with all-frequency shadows from environmental and point lights”. Hopefully a preprint will become available soon.

I typically don’t pay very close attention to offline rendering papers, but one in particular looks interesting: Adaptive Wavelet Rendering takes a novel approach to Monte-Carlo ray tracing by rendering into an image-space wavelet basis, instead of rendering into image pixels or samples. This enables them to significantly reduce the number os samples required in certain cases.

The paper Continuity Mapping for Multi-Chart Textures attempts to solve a problem of interest (fixing filtering discontinuities at UV chart seams) but the solution is overly complex for most applications. While the authors claim to address MIP-mapping, their solution does not work well with trilinear filtering since their data structures need to be accessed separately for each MIP-map level and the results blended. They also do not address issues relating to derivative computation. Since their technique requires lots of divergent branching, it is likely to run at low efficiency. This technique might make sense for some specialized applications, but I don’t expect to see it being used for game texture filtering.

There are also some interesting papers on non-rendering topics such as animation and model acquisition. All in all, a very strong papers program this year.

There have beena fewpapers in the last few years doing cool stuff with the vast photographic resources available on the internet. This SIGGRAPH Asia 2009 paper has a particularly neat concept. From a rough sketch with annotations:

The algorithm trawls the internet, stitching together photographs to produce output like this:

We’ve been wanting to add a sidebar to the blog for a while; it was easier to do this with a new WordPress theme (Tarski) and in the process we did a little bit of graphic redesign. The sidebar has various navigational niceties, including a search function, a tag cloud, archives and links to the most recent posts and comments. Hope you like the new look!

I just spent a good part of this week revamping a few pages on this website, namely:

The main resources page: I removed a few dead links with Xenu (great free tool) and folded in resources from a year’s accumulation of 139 links. It barely shows – I don’t highlight the new links like I used to, since most of these have already been posted in the blog. I did spend way too much time updating the list of relevant books and related resources; remember to hit “refresh” on your browser.

The recommended books page: revamped to newer editions, some books added and a few dropped (e.g., I’ve given up waiting for the new Foley & Van Dam, at least on this page). Naty hopes to redo this page at some point when he finds time.

The portal page: the main addition is expansion of the obsessive-compulsive list of blogs I attempt to track.

The intersections page: unfortunately, some links had died and so were removed. One or two minor additions; this area of algorithm exploration seems mostly “done”, despite there being some obscure blank spots on the grid (most having to do with intersecting cones against other things).

Exhausting to do all this, and without a tremendous visual effect, but I’m glad to check it off the list.

I’ve have a goal this week (it should be clear by now) of clearing my queue of stored-up RTR links by my birthday, today! (Hint: I want a pony.) So excuse the excessively-long list o’ links. Next task on my list, update the main RTR page itself.

StructureSynth. This looks pretty cool, and I love procedural models (my ancient SPD package was all about this, back in the days when downloading models was oppressively slow). I do wish they just provided an executable – building looks like a pain.

Related to this, I hope Google Books conquers the world (or anyone else doing similar work, as long as it isn’t Apple or Amazon or other overcharging closed-box “we’re just protecting the authors, who get 10% or less for a purely digital sale with nil physical cost to us per unit” retailers – rant over, and I do understand there are fixed start-up costs for the retailer/publisher/etc., but really…). Google Books is so darn handy to look for short articles in books at Google’s repository, such as this one giving a clean way to build an orthonormal basis given a vector, from Graphics Tools: The JGT Editors’ Choice.

You might be sick of Larrabee news (ship one, already!), but I found Phil Taylor’s article pleasantly hype-free and informative.

ATI’s Eyefinity (cute marketing name, I must admit – now I want to use the word everywhere) seems to me to solve a problem that rarely occurs: too much GPU for too few screens. Still, it’s nice to have the option. Eyefinity allows up to six monitors to be driven by a single GPU. I guess Eyefinity is useful when running older flight simulator programs on newer GPUs; otherwise, Eyefinity is pretty irrelevant. Eyefinity, eyefinity, eyefinity. At work I find two displays is plenty, one to run, one to debug. Anyway, the sweet spot for the monitor:GPU ratio is 13:1, as can be seen here:

Humus’ summary of z interpolation is a good summary of the topic. He gives some of the key tricks, e.g., if you’re using floating point, use a near=1.0 and far=0.0 to help preserve precision.

Here’s a basic tutorial on different projection methods used in videogames, with lots of visual examples (add “Zaxxon” and it’s complete, for me). The one new tidbit I learnt from it was about reverse perspective, an effect I’ve made myself once every now and then when I screw up a projection matrix.

While I’ve been on break (one of the reasons I’ve been posting so much – Autodesk gives wonderful 6 week “sabbaticals”, aka “long vacations”, to U.S. employees every four years you’re there; it’s like being French or Swedish every fourth year), the rest of the company’s been busy: this new sketch application for the iPhone looks pretty cool, at the usual $2.99 “cup of coffee” type price.

Caustics can be dangerous. I can attest to this myself; a goofy award Andrew Glassner gave me long ago sat on my windowsill for years (I moved once, as you should discern from the picture), until I noticed what was happening to the base:

LLVM compiler. A number of people at the High Performance Graphics 2009 symposium were impressed, or even using, this new compiler. It’s new, based on recent research on compilers and optimization, and is supposed to be darn good. More here, with page 3 talking about Apple’s use of it for GLSL code optimization.

Very Sleepy CPU Profiler. Free, of course, and works directly on any Windows app with PDBs. Sounds pretty convenient if you don’t have access to a reasonable profiler, or just want to try a different one (I’ve found profilers sometimes have blind spots or peculiar biases). Bonus link at the same site: summaries and links to classic graphics papers. The first sentence on this page made me laugh.

Vista Gadgets. I use the NVIDIA temperature gadget, the memory monitor’s also handy. An alternate temperature gadget is here.

NVIDIA NEXUS. Debugging GPU code with PIX is flakey at best; I have high hopes that this product from NVIDIA will be much better. It’s something NVIDIA will charge for (a first for NVIDIA, I think), and that’s fine by me if it does a noticeably better job.

NVPP. A CUDA library of functions from NVIDIA. I haven’t tried CUDA, but this library looks worthwhile. To be honest, in the long-term OpenCL or compute shaders look like the popular future for commercial products vs. research, since those two are multi-platform. CUDA is much more developed at this point, however, and I’ve heard that whatever techniques you learn using CUDA can almost always be applied to the other two. So, I’m on the fence waiting for a winner, since I have no personal reason to use any of them at this point.

VMMap. A little free application that shows where all the memory went.

OverClock Checking Tool. I kinda forgot people still overclock. This utility is interesting even if you don’t, if nothing else than to check if things are working. It’s a bit exciting to hear my GPU’s fan kick into overdrive as the temperature climbs to 87 degrees Celsius (188.6 Fahrenheit). I also learnt a little more about my Intel Core 2 Quad CPU: it “idles” at 2.0 GHz, but jumps up to 2.66 GHz when running something serious. I wimped out on going ahead with the Power Supply test, as their warning kept me away.

RapidMind is now a part of Intel. Which I think is a good fit; RapidMind does some interesting multicore techniques. Anything that makes multicore programming easier for a larger group of people is all to the good.

Carmack on the iPhone 3GS. Now the iPhone begins to face the same problem PC developers have to deal with: different levels of GPU support. At least there will be only one line of Apple phones, vs. multiple IHVs with a wide range of offerings at different price points, etc.

Mendeley Bibliographic Database. Manny Ko mentioned this one to me, and it looks interesting: a number of tools to pull in PDFs, get their references, let you annotate them, etc.

O’Reilly’s author guide. A surprisingly open and honest guide to how you as an author deal with publishers, specifically O’Reilly. Many publishers consider their contracts and royalty terms to be trade secrets, so it’s refreshing to see this information given in a straightforward manner.

aM Laboratory ToneMatrix. Pretty fun, and it reminds me of an experimental device seen at SIGGRAPH a few years ago. To see the most elaborate (and beautiful) web app ever, click on the AudioTool link, Start AudioTool, then pick DrumNBass. Scroll around. Click the menu in the lower left corner. Amazing.

After all the heavy lifting Naty’s been doing in covering conferences, I thought I’d make a light posting of fun visual stuff.

The first one’s not particularly visual, I include it just because the cover and book description was put on the web just a few days ago:

In short, the ShaderX series has moved publishers, from Charles River Media to A.K. Peters. Unfortunately for everyone else in the world, CRM retains the rights to the ShaderX name, hence the confusing rename. This book isShaderX8, under a new title.

This resource is possibly handy: a map of game studios and educational institutions, searchable by state, city, etc. That said, it’s a bit funky: search by “Massachusetts” and you get a few reasonable hits, plus the Bermuda Triangle. Search on “MA” for State and you get lots of additional hits, mostly mall stores. But, major developers like Harmonix (in Cambridge) don’t show up. So, take it with a grain of salt, but it might be handy in turning up a place or two you might not have found otherwise.

I enjoy collecting images of reality that look like they have rendering artifacts. Here’s one from photos by Morgan McGuire, from the Seattle public library. The ground shadow look undersampled and banded, like someone was trying to get soft shadows by just adding a bunch of point light sources. What’s great is that reality is allowed to get away with artifacts – if this effect was seen in a synthetic image it would come across as unconvincing.

The best thing about reality is that it’s real, not photoshopped. I also enjoy photos where reality looks like computer graphics. Here’s a fine example by Benedict Radcliffe from this entertaining collection:

My one non-visual link for this posting is to Jos Stam’s essay on how photography and photorealism is not necessarily the best way to portray reality.

There are tons of visual toys on the web, a few in true 3D. Some (sent on by John McCormack) I played with for up to a whole minute or more: ECO ZOO – click on everything and know it’s all 3D, don’t forget to rotate around; the author’s bio and info is at ROXIK – needs more polygons, but click and drag on the face. In the end, give your eyes a rest with this instant screen saver (actually, it’s also a bit interactive). This last was done using Papervision3D, an open source library which controls 3D in Flash. More demos here. Maybe there’s actually something to this idea of 3D on the web after all… nah, crazy dream.

OK, I’m done with things that are in some way vaguely, almost educational. Here’s a video, 8 Bit Trip, that’s been making the rounds; a little more info here. Not fantastically entertaining, but I admire the amazing dedication to stop motion animation. 1500 hours?!

I love that new illusions are being developed all the time nowadays. I found this next one here; unfortunately, to quote Tom Parmenter, “digital technology is the universal solvent of intellectual property rights” (Copyright 1995). No credit is given at that site, so I don’t know who actually made this one, but it’s lovely:

One last illusion, from here (again, author unknown), included since it’s such a retina-burner:

If you hanker for something real and physical after all these, you might consider making a pseudoscope (instructions here). To be honest, I tried, and I’ll tell you that mirrors from the local craft store are truly bad for this project. So, I can’t say I’ve seen the effect desired yet. Next step for me is finding a good, cheap store for front surface mirrors (the link in the article is broken) – if anyone has suggestions, please let me know.