Experimental renders
This page contains experimental renders, including some weird ones, errors in my renderer (which can sneak in when I'm modifying it ;) can sometimes result in very interesting and rather "artistic/surrealistic" results. Click the images on this page for full size versions.
![]() |
![]() |
Back in 2005 I added several experimental
renderings involving Rayleigh scattering to this page. Back then my code was still
buggy so some of the renderings looked weird. I then fixed the bugs. Later, after seeing
some of Cassini's images of Saturn, I decided to extend my code to include refraction. The
top row images show two fairly early attempts to get things right. For comparison, take a
look at this Cassini image and this page showing a
moonset from space. The distortion due to the atmosphere seems fairly accurate but the
images look rather noisy (especially the Moon) and Saturn's color is weird. Later on I
reduced the noise by using a higher number of layers in my atmospheric model and by
fine-tuning my code a bit. However, I have found that rendering these images takes a huge
amount of time and optimizing the rendering time without severely reducing the image
quality has proved difficult, especially for non-spherical planets like Saturn. I also
have found far less literature concerning the implementation of refraction than I have
found for atmospheric scattering. The limited dynamic range of computer monitors is
another problem. I frequently get severely overexposed or underexposed images so I need to
use various arbitrary multiplication factors in my code to make things look right. These
factors vary depending on solar elevation (when inside the atmosphere), altitude and
atmospheric properties such as scale height, the amount of aerosols etc. The fact that I
ran into an optimization bug in Microsoft's Visual C++ compiler also didn't make things
easier or quicker to debug. The image at lower left shows an attempt to extend my rendering code to produce realistic images from within the Earth's (or any planet's) atmosphere, as opposed to from outside the atmosphere only. The altitude above sea level is 10 km. For comparison, I took the image at right from a similar altitude somewhere above the Atlantic Ocean. The computer rendered image compares fairly well with the photo. The only problem is that I can't take photos from far higher altitudes ;-). I have also gotten fairly good renderings showing a sunset. A more recent higher quality image from a later version of my renderer showing Saturn's rings from inside Saturn's atmosphere can be seen on the Saturn page. |
![]() |
![]() |
![]() |
Ages ago in a different millenium a weird bug caused my old renderer to output bluish renderings of Saturn. Needless to say I quickly fixed this bug; back in 1998 a blue Saturn was a ridiculous idea, at least to me. How things have changed. Now NASA's Cassini spacecraft has discovered that Saturn's winter hemisphere which thanks to the rings' shadow receives even less sunlight than it otherwise would, indeed has a bluish color due to a deeper clear atmosphere than in the summer hemisphere. This causes a bluish color due to Rayleigh scattering. This rendering was created using a new version of my renderer. This new version modifies the color of the Saturn texture map on the fly depending on season in an attempt to simulate the seasonal color change observed by Cassini. |
Amalthea | |
![]() |
Recently I have been attempting to make a 3D model of
Amalthea, one of Jupiter's small, irregularly shaped satellites. I started by downloading
a shape model from Philip Stooke's
website. This model has a resolution of 5° (72x36 'pixels') and is based on Voyager
images only; unfortunately models incorporating Galileo results do not seem to be
available on the WWW. I then resampled the model to a much bigger size (higher resolution)
and added lots of craters using a special program I wrote for adding craters to elevation
maps. Since no high resolution images of Amalthea have been obtained most of the craters,
except for the big ones, are fictional. I then made a partially fictional texture map
based on a texture map of Mars (!). The topmost rendering shows a very early version of
this work. Artifacts of the resampling process are visible (especially at left), the
surface looks too smooth, it has a somewhat shiny/plastic appearance and there are too few
craters. The version at center shows the most current version. It was resampled with a
program I wrote instead of using Photoshop so no reampling artifacts are visible, there
are more craters and I am using more realistic photometric parameters to render the model.
Also I added a small level of random noise to the elevation map. The improvement is
obvious. Making animations is a good way to check if the photometric parameters make sense. In particular, it is easy to see if the surface is too shiny. The rendering at bottom is the first frame from a rotation movie (2.4 MB) that can be downloaded by clicking the rendering. |
![]() |
|
![]() |
Cassini's Jupiter | |
![]() |
I recently finished a very high resolution map of Jupiter based on images obtained by NASA's Cassini spacecraft during its Jupiter flyby in December 2000. This map is 50% bigger and of somewhat higher quality than my Voyager 2 map of Jupiter. In particular, the color balance is better. This rendering was made to check if everything looks OK. Apparently it does, meaning I can start making lots of new renderings of Jupiter and its satellites. |
Ringshine |
|
![]() |
Recently I have been attempting to precalculate how light reflected from Saturn's rings illuminates Saturn's nightside. This is a very significant effect that is clearly visible in spacecraft images of Saturn, e.g. this image. The results of these calculations will be used as input into my raytracer when rendering Saturn's nightside. The global map at left shows this illumination for a solar elevation angle of 15 degrees above the northern side of the rings. The nightside is around the center of the map and is relatively dark since a part of the rings is in Saturn's shadow. This is only an approximation, probably a cude one. In particular, the southern hemisphere is far too bright here since the overall brightness of the rings' unlit side is too high in my model. Renderings showing ringshine on Saturn's nightside should show up here soon. |
Io's color | |
![]() |
These renderings of Io were created using a
new map of Io I'm finishing. They show attempts to get Io's color right. The rendering at upper left has colors that are similar to the colors of most of the 'true color' images from the Galileo spacecraft that have been released. These images use images taken through red, green and violet filters as red, green and blue respectively. The problem with this is that images taken in violet light are darker and much more contrasty than images at longer wavelengths, including blue. The rendering at upper right uses a synthetic blue image instead of the violet image and is probably more realistic. |
PT3RT: Saturn's rings at different phase angles | |
This montage of renderings shows the effects of varying phase angle on the appearance of Saturn's rings. | |
PT3RT: The all-new renderer | |
![]() |
I'm in the process of rewriting my planetary renderer from
scratch. This is a big project likely to take a year or more. I call the new renderer
PT3RT. This is the first time for many years that I completely rewrite the renderer. The
new one will be far more powerful than the old one, in particular it can render a far
bigger number of object types (spheres, ellipsoids, surfaces, heightfields on a sphere,
volcanic eruption plumes, cones, cylinders, atmospheric effects, triangle meshes etc.).
Also the shading model will be more sophisticated (as if it wasn't so already ;-) and
PT3RT already has a very powerful texture map handling. These renderings are from an early version of PT3RT. They are both supposed to show Saturn's satellite Mimas but the upper one doesn't look like it at all due to a bug. The lower one was rendered after I fixed most of the bugs and looks a little more realistic ;-).
|
![]() |
|
PT3RT: Mars using a heightfield on a sphere | |
![]() |
These two renderings of Mars are also done using the new
PT3RT. They combine a heightfield on a sphere (this is really just a triangle mesh
containing several million triangles) and a 'quick-and-dirty' texture map I created from these images. This
particular texture map is better than the other maps of Mars I have been using since it
has almost no shadows which is a Good Thing for renderings like this. The upper rendering shows Mars' global appearance from a distance of 30000 km and has a field of view of 20°. The lower one has a field of view of 9° and vertical relief has been exaggerated by a factor of 4. A Buratti function is used for shading calculations and both renderings are slightly post-processed (at the moment necessary because I have not finished PT3RT). |
![]() |
|
More PT3RT: Martian topography | |
![]() |
Another PT3RT rendering showing the 0.03125° x 0.03125° topographic map
derived from Mars Orbiter Laser
Altimeter data. The same texture map as before has been draped over the topographic
map. Like the renderings above this image was rendered using a Buratti function and then
slightly post-processed. Some of these renderings may look nice but the PT3RT project is far from finished. It's well under 50% complete at the time if this writing. |
Simple atmospheric effects | |
![]() |
This montage shows a photo of Jupiter obtained by the Cassini spacecraft (upper left) and two renderings. In the Cassini photo, the limb (Jupiter's right edge) looks a little bluish. The rendering at upper right is an attempt to simulate this using a very simple 'model' where separate limb darkening parameters for red, green and blue are specified. The rendering at lower center is without atmospheric effects. The upper right rendering is more realistic in several respects, in particular the limb looks bluish. However, some areas look slightly too bluish, especially in the southern hemisphere's right half (however, the bluish color near the south pole is due to color inaccuracies in my texture map). This might be fixed by modifying the limb darkening parameters (a process of trial and error) or the atmospheric model which at the moment is very simple, for example contrast does not get lower close to the limb as in the photo. Modifying the atmospheric model is also a trial and error process. A 'full blown' atmospheric model involving things like Rayleigh scattering would probably do the trick but the rendering time would increase dramatically. There's just one problem: Suddenly several previously nice renderings on the Jupiter page suck because they lack atmospheric effects. A description of this shading model can be found here. |
Martian topography | ||||
![]() |
This POV-Ray rendering of Mars was created from a 0.03125° x 0.03125° topographic map derived from Mars Orbiter Laser Altimeter data. The map was downloaded here. This is just the "flat map" with altitude greatly exaggerated but this will look really interesting on a sphere, especially if I manage to colorize it using color maps. | |||
Making a map: Callisto | ||||
![]() |
This rendering of Jupiter's satellite Callisto was created using an unfinished map while I was working on it. It shows what these things look like during the intermediate stages: There is imaging coverage for most of the surface although there still are some gaps and ugly seams. But other areas look realistic so this seems rather promising. But considerable work still remains, both to get rid of the gaps and seams and finally to colorize everything. | |||
Fun with photometric parameters | ||||
![]() |
This rendering of Jupiter's satellite Europa shows the effect of specifying different photometric parameters for the three color channels (red, green and blue). Note that areas near the limb appear slightly bluish/greenish compared to the center of the disk. This is a highly experimental feature and the photometric parameters used here do not make a lot of sense except for the purpose of exaggerating the effects ;-) . In fact I'm not sure using different R/G/B photometric parameters makes a lot of sense when using a color texture map. | |||
Voyager 2 at Saturn | ||||
![]() |
This rendering was created by rendering Saturn in my renderer "the usual way". I then took the resulting image file and used it as a kind of background in POV-Ray which I used to render Constantine Thomas's exquisite model of the Voyager spacecraft in action in its "natural environment". This was extremely clumsy to do (but I'm a beginner in POV-Ray), e.g. the sun is only 1 (yes one) kilometer from the spacecraft ! Nevertheless, this rendering, showing the Voyager 2 spacecraft at Saturn, should be rather accurate. | |||
The magic of bump maps: The "bump map generator" | ||||
![]() |
![]() |
These renderings show the effect of using a bump map as
opposed to a texture map to render bodies with rough surfaces. The rendering at top left
shows Saturn's satellite Mimas rendered using a texture map. The areas to the right look
nice (prominent shadows because of the low solar elevation angle) but in the areas to the
left the shadows are too prominent so the rendering is not realistic. A section of the
texture map is shown at top right. The next three rows show renderings created using a bump map. These renderings have more realistic shadows but are experimental. I used a bump map I created by running the texture map of Mimas through a "bump map generator" I'm writing. The renderings in the left column use "raw" data from it with only minor cosmetic enhancements. Their biggest defect is the horizontal lines which show up as "ridges and valleys" if the bump map is rendered as a heightfield in POV-Ray. The right column shows the renderings after the most prominent horizontal lines have been removed using a partly automatic and partly manual method. They look much better but some horizontal lines remain. The renderings in the two lowermost rows have identical viewing geometry but the lighting geometry is different, enhancing the effects of using a bumpmap for rendering cratered bodies. Finally, if anyone has managed to do something similar to this (without getting these ugly, horizontal lines) let me know ! I'm not expecting lots of responeses though, judging from the fact that I've found very few bump maps on the net. |
||
![]() |
![]() |
|||
![]() |
![]() |
|||
![]() |
![]() |
|||
Mimas spherical heightfield / triangle mesh | ||||
|
These two POV-Ray renderings of Mimas were created using a smooth_triangle mesh created by wrapping the same bump map as above around a sphere. The resulting POV file is extremely big so I had to subsample the map by a factor of two but still the POV file is almost 120 MB and took 20 minutes to render on a 200 MHz Pentium machine (result: I need a bigger computer ;-). These renderings are more realistic than the bump map renderings above, the horizontal lines are less prominent, possibly (but hopefully not) because of the subsampling, the edge of the disk is slightly irregular due to "mountains" and some "self shadowing" can be seen. The upper rendering shows Mimas from a distance of 3000 km and has a field of view of 11°. The lower one shows Mimas' huge Herschel crater from an altitude of 215 km and has a field of view of 40°. | |||
A blue Saturn | ||||
![]() |
This is not Neptune - it's Saturn ! I got this strange rendering when I was messing with the shading function in my renderer, thus creating a new bug (which I then quickly fixed). Saturn turned blue (in reality it is yellow tinted/creamish), there is no shading and the rings have disappeared. This is not at all like Saturn so this may be a possible method to create maps of fictional planets: Mess up the colors without doing a lot of other changes. | |||
Weird Europa | ||||
![]() |
The fun thing about bugs in 3D programs is that frequently they do not result in a crash. Instead they result in weird renderings with distorted perspective or beautifully wrong colors. This is an example, in this case a variable used as a multiplier in shading calculations inadvertently had an illegal value (a much too big one) resulting in this weird rendering of Europa. It looks like a false color image from an image processing program. | |||