Can parallel processing really cut it?

When Larrabee was first delayed and then “postponed” most of us weren’t surprised (, at least  I wasn’t).  Parallel computing, though advocated as a world saver, isn’t the easiest model to program to. Doing everything in “software” (graphics, HPC and all) ‘might not’ be as easy as was anticipated. The cold hard reality is that languages like C++, Java and derivatives (mostly OOP ones,) were never really designed for parallelism. A multi-threading-here and a asynchronous-there, doesn’t really cut it. Using the full potential of parallel devices is very challenging indeed. Ironically most of the code that runs todays software isn’t geared for parallel computing at all. Neither are todays programmers.

But experts advocate  a parallel computing model for the future. But, is it easy to switch to? Will an innovation in hardware design, or a radical new compiler that optimizes away your “for() loop” the real answer? A very interesting article to read (even if you are not into graphics and game programming) is :

http://www.brightsideofnews.com/news/2010/5/27/why-intel-larrabee-really-stumbled-developer-analysis.aspx?pageid=0

Very rarely do I quote articles, but this one is really worth a read. Well-written and well said.

Avatar

It’s been some time since the movie was released, but I only managed to watch Avatar yesterday. Ok, before I proceed let me put a “spoiler alert”. If you haven’t, go see the movie and then read the rest of the entry ;-).

I would describe the movie as, “great graphics, superbly imaginative environments, great blending of live actors and CG, but a rather bland and ordinary storyline”. The movie is a graphics galore, but the story itself is rather dull and predictable. Throughout the movie you can almost sense what’s going to happen next, and that’s exactly what happens — leaving little room for mystery. I am a James Cameron fan (, who isn’t), but in most of his movies he does find a subtle and an uncanny way to weave a wacky (but believable) story around the whole action movie concept. Unfortunately, Avatar doesn’t quite have all of that.

The whole dull story thing however, could be easily forgiven given that most of the time is spent admiring the visual effects, graphics and stunningly beautiful environments modern CG can achieve. I found the movie rather enjoying. I guess Avatar is natural fodder for a 3D graphics geek like myself, but apart form that the movie does an excellent job at handling or rather blending graphics with real life actors. You would be forgiven for mistaking reality from CG especially when live human actors interact with CG actors and the environment. I was doubly interested with how the environment behaved in response to the human actors actions. The most difficult part of compositing a 3D CG environment with actual actors actions is the interactions of the CG elements (with the actors). The subtle swish of the grass when an actor runs, the rustle of the leaves when a an actor goes through a bush, these are small things that makes a CG scene believable. My hunch is — all that was done and captured in real time in a 3D studio environment.

The truly spectacular achievement of the movie/technology and the one that impressed me the most is the facial animation. Any computer modeled facial animation is bound to be hit by the uncanny valley effect, but in Avatar the facial expressions, though not flawless do turn a page (no they are not fully human like, but are  definitely believable). The technological achievement is commendable and some critical reviews don’t do justice to, what is a pretty good effort on the part of the CG team. I know how hard it is to have a seamless facial animation system (I myself am working on one) and the movie and it’s mocap technology to simulate facial movements does bring in a lot of realism. A lot of ideas there for future gaming projects.

I am pretty impressed with the movie as a whole. Yes it has a linear and an ordinary story but it does push the envelop in CG technology. The graphics are stunning, but what is more interesting is the composition of graphics and human actors. For me the facial animation was probably the best part. It’s not a new idea, ie. to capture live human actor’s facial movements on a CG character, but Avatar does it so very well.