Voyager for POVray
Rendering Advice


This page includes tips and ideas for how to make the most of the Voyager for POVray model.

How to use the Voyager model
Lighting considerations



How to use the Voyager model

This section is included in the extensive comments section at the start of the Voyager Source Code, and is reproduced here so you'll get an idea how to use it before you download the code!

Scaling factors

I am assuming (actually, I'm suggesting) that your planetary fly-by scenes in which you will be using Voyager are set to a scale of 1 POV unit = 1 kilometre. There are many practical reasons for this - first, it makes it much easier to scale real-life distances if you have a simple scale like this. Second, you will probably find that you'll have to use a scale like this because if you use 1 POV unit = 1 metre you will hit what I call the 'translation limit'. This limit is reached when objects are translated too far (usually over a few million units) from the camera - beyond this they seem to just 'disappear', and you can't find them no matter how far you zoom in even if you were looking right at them before. I suspect this limit exists because of inherent limitations to the raytracing process itself. Whatever the reason, planetary scenes where the scale is set at 1 POV unit = 1 metre simply do not appear to work. Thus, I recommend that you use a scale of 1 POV unit = 1 kilometre for all the objects (planets, moons and vehicles) in your fly-by scenes, because you are much more likely to avoid this translation limit then. And besides, Voyager is by default scaled to fit into such scenes so you'd be making your life easier... ;-)

However, there remains a frustrating difficulty here - at the 1 POV unit = 1 kilometre scale there are bounding box problems that may cause parts of Voyager (most obviously the Dish) to disappear when rendered. If you render it with Bounding Boxes turned off, most of the parts re-appear but the rendering time is much longer. This seems to be an inherent limitation within POVray, and the only way around this appears to be to scale Voyager up by a factor of 10. I have not done this within the code though, I'll leave this up to users to apply when they see fit.

Two scale factors have been applied to Voyager within the Source Code (on lines 1394 and 1398). The first - scale 0.622 - scales Voyager down so that 1 POV unit = 1 metre (1:1 scaling). The second - scale 0.001 - scales Voyager down by a further (cumulative) factor of 1000 so that 1 POV unit = 1 kilometre. The dish, which is actually 1.80 metres in diameter, is therefore 1.8 units (metres) in diameter after the 0.622 scaling, and 0.0018 units (kilometres) in diameter after the extra 0.001 scaling.

If you need to use Voyager in scenes where 1 POV Unit = 1 metre (for example, I have rendered such a scene with Voyager on the ground to scale with a 6ft tall human) then simply add scale 1000 to the Voyager object to restore the dish to a diameter of 1.8 units/metres.


Animation and rotation parameters

This model includes full support for Scan Platform rotation around the x/y axes. These can now be set from within the POV scene file in which the Voyager object is being used. Since you'll have to rotate Voyager itself around its dish-axis (which should always point towards the Sun) if you want to make realistic animations, there is a term (ybodyrot) set aside specifically for that task.

To use these parameters, you must #declare them BEFORE the #include="voyager.inc" statement at the start of the scene file. Even if you're not planning to do any rotations (which means the craft will be rendered in the default orientation) you MUST set them to zero, otherwise they'll be undefined in the #include file and you'll get an error message.

To illustrate this, here is some example code showing how to render Voyager 'on the ground'. I used this code with a life-sized 'mannequin' object (not included here) to show how big Voyager was compared to a 6ft tall human. This should give you the right idea anyway... try changing the values if you wish to rotate anything:


//DECLARE ROTATION PARAMETERS FOR VOYAGER/SCAN PLATFORM
#declare ybodyrot = 0			//Voyager body rotation around dish axis
#declare xrot = 0			//scan platform x rotation
#declare yrot = 0			//scan platform y rotation

//-THEN- INCLUDE VOYAGER OBJECT
#include "Voyager.inc"


camera {location  <3, 2.5, 20>
        direction <0, 0, 1.5>
        look_at <3, 2.5, 0>}

light_source {<50, 10, 50> color White}
light_source {<-50, 10, 0> color Grey}

object {Voyager
	scale 1000		// scales Voyager to 1 POV unit = 1 metre (Dish = 1.8 units diameter)
	rotate <0,ybodyrot,0>	// Here's where you use ybodyrot
	translate <0,1.2,0>}


Change the following parameters to rotate the appropriate parts of the spacecraft. Clock values should also be used here for animations.

Back to the Top


Lighting considerations

Dish Orientation

On its journey through the Solar System, the white HGA dish of Voyager always pointed towards the Earth - if not, communication between the craft and home would be broken and it would be difficult (though not impossible, there were automatic safeguards onboard such as star trackers) to re-establish contact. That being the case, this should be simulated in POVRay by having the dish always facing the Sun/light source.

In reality however, the Sun and the Earth are not in exactly the same place as seen from Voyager - the Earth can actually be at a significant angular distance from the Sun because of its orbital path around it. For instance, after checking the Solar System Simulator I found that at the time of the Voyager 1 flyby of Jupiter in 1979 the Earth was 15.3 degrees to the right of the Sun as seen from Voyager 1 - by comparison, the angular diameter of the Moon in our sky is about half a degree, so that amounts to the equivalent of thirty times the diameter of the Moon in our sky! This was actually the greatest extent of the Earth-Sun angular separation as seen from either of the Voyagers during their fly-bys. In practice though, I'd imagine it would be easier to orient Voyager so that the dish always faces the Sun, but I figured that I should let you know what happens in reality anyway ;-)


Radiosity and ambient settings

Since the dish always points towards the Sun, this means that Voyager's main body (or 'Bus') is never exposed to sunlight, so a lot of the detail there is going to be in shadow. Also, that there is usually no 'ambient' light in space (go deep out into the countryside as far as possible from the lights of human habitation on a perfectly clear night when the Moon isn't up and you'll see that starlight alone doesn't really illuminate as much as you'd think!). Technically, you should be able to simulate light reflected from nearby planetary bodies if you use the Radiosity setting in POVray; however, I haven't got this to work too well in practice - there's only a very slight difference even when I place a large fully illuminated planet right behind Voyager, and I'm sure that should difference should be more visible - that said, this could be because I haven't experimented enough with the radiosity global_settings. I also find that a 'Radiosity-enabled' scene does weird things to the inside of the HGA Dish... You may be able to represent reflection from nearby bodies using the ambient setting, but I can't think of way to do this particularly accurately - you'll just have to guess!

Back to the Top



Back to the Voyager for POVray page
Back to the Raytracing Hub
Back to the EDG Title Page
Frame URL: http://www.evildrganymede.net/art/voyager/advice.htm