If Escher were alive today…
Tuesday, September 18th, 2007… I’m pretty sure he would be spending a lot of time messing about with computer graphics.
I’ve been working on some environment and reflection mapping today (at the office) and was looking for useful sample data, then I recalled this famous image and thought it might be fun to try to try to reconstruct the scene. As it turns out Escher really was a pretty damn good draftsman (who knew!). Below are the front [effectively the original] and back [inferred] of his shiny sphere:
The black hole in the center of the latter represents the region which is effectively obscured by the sphere, so cannot be reproduced. The wacky distortions around the hand are partly caused by the fact that the artist includes his non-reflection finger in the original illustration, as well as the phenomenon of parallax (reflection maps can only reconstruct the scene properly where the observer and the objects reflected are a long way from the sphere— the closer they are the more distortion you will get if you try to view things from a different angle).
Here are the remaining view directions: left, right, up and down
Pretty neat eh? Unfortunately I can’t produce a high res version of these right now, because that’s not what this software is designed for, but looking at these it does strike me that it might be fun to create a custom image transformation that could take any size reflection map and "reorient" it with very high precision (without turning it into texture maps and doing a screen cap as I have here). Possibly someone else has already done this— if so I don’t care so please don’t tell me… it’s always more interesting to work these things out for yourself :)
September 18th, 2007 at 9:48 pm
If Mr.E was alive today he’d probably shake your hand and then ask, “Why the hell don’t standard Visual Studio projects still not include basic image handling?”
September 19th, 2007 at 2:17 am
Probably .NET has a tonne of great image handling functionality, but those of us still using unmanaged C++ code still have to deal with the pain of 3rd party libraries for format support.
(here’s a post from way back in 2004 of how I feel about this)