Posts tagged as:

graphics

Microsoft has announced the system requirements for Office 2010.

That’s news in and of itself. Once upon a time, system requirements (at least, ones that anyone paid attention to) were strictly for high-end professional software, cutting-edge games and the like: software that actually needed powerful hardware. But the real news here is that Office 2010 requires a DirectX-compatible graphics card.

Now, I don’t think Word is going to be offloading word counts to a GPU anytime soon. But Microsoft’s announcement is making waves nontheless — and I think it’s actually great. It means we’ve reached a point where our computing history is so mature that even our mass-market word processors have achieved a level of sophistication that we need to make sure of their compatibility. That’s exciting!

Certainly, Excel is an obvious candidate for hardware acceleration, which, besides accelerating simple tasks like opening large files and parallel tasks like running many equations, could finally bring true vector operations to the versatile software.

But there is bad news. I’ll let Microsoft break it to you:

If your computer has a GPU, it lets us perform graphics rendering tasks (like drawing charts in Excel, or transitions in PowerPoint) in the GPU instead of in the CPU, which parallelizes work and speeds up performance. This is particularly relevant for users of PowerPoint 2010, which will introduce some awesome new graphics and video integration features (more info at the PowerPoint team blog).

Yes, the true motivation behind the graphics upgrade is supercharging those awful 3D pie charts we know and despise.

(If you click the PowerPoint link, you’ll notice that Powerpoint 2010 looks a lot like Keynote. Just sayin’.)

{ 0 comments }

Slate has posted a great interview with James Cameron and Peter Jackson – arguably the two leading directors when it comes to special effects in film (in fact, Jackson’s Weta Workshop executed most of the FX shots for Cameron’s Avatar).

Of course, the discussion centers on an enthusiastic embrace of CGI, reflecting a belief that it is nothing more than a new form of makeup or costume and requires as much if not more labor and care to execute properly. Most blatantly, Cameron states:

If I did Titanic today, I’d do it very differently. There wouldn’t be a 750-foot-long set. There would be small set pieces integrated into a large CGI set. I wouldn’t have to wait seven days to get the perfect sunset for the kiss scene. We’d shoot it in front of a green screen, and we’d choose our sunset.

They admit that some filmmakers may have run ahead of solid plots and characters to play with their toys (here’s looking at you, Star Wars prequels), but it’s clear they want their audiences to realize that CGI is not a shortcut or gimmick; it’s an intense process which gives the filmmaker total control and requires the actors to more fully abstract the essence of their performance, when done properly. From a technical standpoint, only in the last decade has processing power approached a point where CGI can be used believably amidst – or to replace – live action shots.

(Via Kenny Herman)

{ 0 comments }

I’ve spent a couple days reading all about relief mapping (or a very similar algorithm called steep parallax mapping). Essentially these techniques implement ray tracing inside a texture map, resulting in dramatic representations of geometry without the need to render additional polygons. Key benefits include parallax tracking, occlusion, and self-shadowing again all without rendering extra modeling.

Pictures are worth 1000 words, so here you go. Note how the cobblestones appear to have real volume when the parallax mapping is used (click to zoom):

Steep parallax mapping

I grabbed this image from this paper presented at the 2006 I3D conference.

The best part is that the procedure is (relatively) cheap, and easily implemented in realtime when offloaded to a GPU.

I think the advantage here is that the relief map doesn’t support “caves” or overhanging architecture, which greatly simplifies the ray tracing problem. Otherwise, why not simply implement the ray tracer everywhere?

The downside that I’ve observed is that the simulated geometry doesn’t interact well with other objects in the world. For example, shadows cast by other objects may not follow the relief map. This is more a limitation of the rasterization procedure and could probably be overcome by clever shader programming.

{ 0 comments }

Overcharting

June 2, 2009 in Data

An article in Friday’s NYT called “Let the Kid Be” was accompanied by this graphic:

I don’t like this presentation because I think it is misleading. But first, a little history:

You may remember last year a JP Morgan chart was circulated which showed the deterioration of bank’s market values. The old and new market values were represented by shaded circles. Unfortunately, JP Morgan chose to scale each circle’s radius with regard to the market values, rather than the circles’ areas, which made the decline appear much more dramatic than it actually was (since area is proportional to the square of the radius). The firm caught a lot of flak for this mistake and reissued the chart with the circles properly scaled.

It’s a similar problem to that faced by the NYT’s graphic artists. And here’s the truth – the NYT chart is technically correct. The area of the inside boxes is in the proper proportion to the are of the grey outer boxes. But if I showed you the red box in the upper left, with no label, and asked you what percentage of the grey box’s area it represented, would you say 58%? I would have said somewhere between 80% and 90%, and way overestimated the proportion.

The truth is, I feel that both the JP Morgan and NYT charts are very wrong. Each chart is attempting to communicate a 1-dimenional value (meaning it is just that: a singular value). Why, then, are they using 2-dimensional diagrams? I call it “over-charting” and I disagree with it. If any of the measured variables changed, these charts would change in a non-obvious (meaning non-linear) way, because they divide the change in that variable across two different dimensions. For example, if the number of people in the NYT’s “Less” category went from 4% to 8%, then the area of the square would double. But it would do so by increasing each of its two dimensions – its length and width – by a factor of the square root of two. Hardly intuitive.

Both charts should display their values using one-dimensional metrics like line charts, bar charts, or pie charts. “Wait a second!” you cry, “Bar charts and pie charts are two dimensional, as they represent values with areas!” That’s true, but they only contain quantitative data along one of their dimensions. The other dimension is purely for differentiating between qualitative variables. This means a change in the values will get reflected completely and linearly in only one dimension, not two. If we really want to start considering pie charts as two dimensional, than the NYT graphic above is surely three dimensional: it uses two dimensions (height and width) to display percentages, and a third dimension (space) to differentiate among the three categories.

So, glossing over the necessary dimensionality to differntitate between qualitative variables, a one-dimensional chart is one that only reflects quantitative changes in one dimension. An optional second dimension is purely for visual purposes, and may be disregarded as long as it is constant across all variables. Consider this representation of the NYT data:

Bar chartVery simple and easy to understand, isn’t it? Note that each of the bars is indeed a two-dimensional object. But they only contain quantitative information in one dimension: height. If more people were in the “Less” category, its bar would grow taller; if the number of  ”More” responders decreased, its bar would get shorter. No bar ever gets wider, and so the graph updates in only one dimension.

A pie chart is very similar in construction:Pie chartAgain, the values are represented by areas which are visually two dimensional. But unlike the JP Morgan chart’s circles, they only change in one dimension: angle. Critically, the change in angle linearly impacts the area reflected in the chart. 50% area is represented by an angle of 180 degrees. Want to show just a 25% area? Cut the angle in half to 90 degrees. Simple. As with the NYT example, the JP Morgan chart would have had to decrease its radius by the square root of 2 in order to reflect a halving in market value.

By now it should be becoming clear why the NYT chart is misleading – it distributes its values over more dimensions than necessary. It’s a simple heuristic, and an important one in accurately conveying data: only use as many dimensions as you need. There’s actually something called the Curse of Dimensionality and while it doesn’t have much to do with this example, it’s message rings clear: don’t use more dimensions than you have to. Even if it looks cool.

{ 2 comments }

and an old man’s suit.

{ 0 comments }

The next great hurdle in consumer graphics technology is the successful implementation of self-shadowing.

In every successive generation of graphics technology, programmers have made massive steps toward approximating the rendering equation. We’ve moved from simple vertices and shaded polygons to advanced geometry and multi-pass shader engines. But real-time graphics remain stuck in an uncanny valley and I believe self-shadowing is the reason.

But of course I do, since I am a major proponent of ray-traced graphics over rasterized ones. Self-shadowing is an oft-ignored advantage of ray-tracing, which I find interesting because a central argument in the ray-trace/rasterize debate is that ray-tracing engines are aware of the global scene while rasterization engines are only aware of individual vertices – so obviously self-shadowing is difficult for a rasterization engine; it isn’t aware of any occlusion!

Yes, developers have found wonderful shortcuts via normal mapping, baked radiosity, and basic occlusion testing (which I think is just ray-tracing by another name), but until engines faithfully reproduce this extraordinarily simple visual nuance, the state of graphics realism will remain sorely lacking.

And as the other aspects of the industry begin bumping against photorealism, it is this fact which leaves so many renders flat and spatially “blurry” because a key visual cue has been left out.

More details, less ranting, to follow.

{ 0 comments }

Rendering Cleverness

March 25, 2009 in Technology

Austin Robinson of NVIDA makes an excellent point during his introduction of a new CUDA-based ray casting engine (NVIRT) at I3D’09 [paraphrased from his slides]:

Rasterization is fast, but needs cleverness to produce complex visual effects.

Ray tracing robustly supports complex visual effects, but needs cleverness to be fast.

This is especially interesting because it was just a year ago NVIDIA’s chief scientist was condemning ray tracing as a waste of time.  Considering Moore’s law with  Robinson’s observation, I don’t really think rasterization has the lifespan most people are willing to give it.  Remember wireframe, anyone?

{ 0 comments }