Mapping textures

The shading language does make a significant difference even for such seemingly simple things like mapping an image onto a surface. Imagine the following situation: You have a map of the northern hemispere centered on the pole, with equidistant circles of latitude, like this first circumpolar weathermap from July 1907 (published in: H. Hergesell: Beobachtungen in bemannten, unbemannten Ballons und Drachen sowie auf Berg- und Wolkenstationen im Jahre 1907. Veröffentlichungen der Internationalen Kommission für wissenschaftliche Luftschiffahrt. Straßburg: DuMont Schauberg 1909) :

kalotte.jpg

Now you want to take this image and map it onto a hemisphere, so that the result looks like a half globe. You can almost do this in POV, but since the original map is not orthographic, you get ugly distortions: the polar region is to small, and the equatorial region is too big (first image). The second image has been rendered with BMRT, which supports the renderman shading language. It can evaluate the texturemap at any coordinate, so you can correctly map every type of projection.

kalotte1.jpg kalotte2.jpg

POV was twice as fast on this image, time x-povray +ikugel.pov +a said 0:32.48elapsed, as compared to BMRT's time rendrib kugel.rib with 1:09.52elapsed. But BMRT got the results right. The difference is even more striking if you want to map the image onto another shape like a segment of a sphere (or, without any change in the shader, to any patch you can think of):

kalotte3.jpg kalotte4.jpg

All three pictures use the same simple surface shader, FHKalotte. (The .tiff version of the map is not included because of its size.)

Florian Hars <florian@hars.de>, 2007-10-15 (orig: 1999-02-27)