LogoReal

Modelling and animating a solar system using Real3D v3.5

Helpdesk Real 3D Main area

Introduction

Release note:

As the first issue on this was first released as a zipped file, some references to files will no apply. I have not had the time to go through this whole tutorial again, so if you find such a reference, please email me at kpetter@c2i.net, and I will mail you any missing files by hand. This is the first tutorial I wrote, so it isn't all that good. Also, this tutorial is not scientific accurate, to say the least.

Aim:

This small tutorial will guide you through the steps needed to create a planet orbiting a star, which also contains a moon orbiting the planet. When done you will have learned how to create faked sharp terminators on planets (as the current release of Real 3D does not support it directly), control object by different animation methods, and some basic use of skeletons to control the objects. Also, a way of producing faked 'radiosity' (actually albedo value) will be shown.

Who is it for:

It is best if you have a little experience with Real3D before going on with this. At least the understanding of the hierarchical way Real 3D works, and some basic understanding of the Real 3D standard user interface is required. You don't have to be an expert though, as most things are explained. However, some things have been left out, to encourage you to study the manual... (good excuse, huh?) maybe even come up with better ways of doing this.

Features:


Modelling time, and some easy animating

Preperations:

Create some materials:

Then we need to create a working hierarchy for the earth body:

The moon is also a part of the earth going around the sun, so:

Okay, let us check what we have. Your working hierarchy should look like this:

solar-system
 system-earth
  planet-earth
   rotating
    parts
    ROTATION
   radiosity
    SKELETON
   transp(T)
    SKELETON
     INV KINEMATIC
  system-moon
   moon-moon
    rotating
     parts
     ROTATION
    radiosity
     SKELETON
    transp(M)
     SKELETON
    PATH
  PATH

Inner parts are modelled first, so lets create the moon:

Make the moon rotate about its axis:

Put the moon into an orbitlike path:

Let us test what we have so far:

We cannot complete the animation parts of the moon until its parent body is done, the earth:

Make the earth rotate about its axis:

Put the earth into an orbit like path:

Now it is time to position the moon in respect to the earth:


Advanced animation, adding position independent 'radiosity'

Okay, so much for the easy part... Now we are going to add some 'radiosity' to the animation in such a way that the sunlight that hits a body, gets reflected back out into space directed towards the sun. I originally wanted to do this with SKELETON and INV KINEMATIC animation methods with line parameters, but due to a bug (or change) in v3.5, I will have to do this in a completely different manner. Also, when using the skeleton primitive as a skeleton parameter combined with a locked IK offset, the result was not satisfactory. Because of that, I use a skeleton animation type, a normal line as the parameter, and animating the endpoints of the line with groups. There probably are even better ways to do this.

Create a spotlight controlled by a skeleton:

Have the moons transp-map be controlled by a skeleton in the same way:

The moon is now complete, and luckily the spotlight of the earth is a bit easier :-)

Have the earths transp-map be controlled by a skeleton in the same way:


Final Comments:

One could use a TRANSFORM method to alter velocity along the orbit, but I don't know how to calculate it. You'd be better off choosing between 'radiosity' effect or the correct change in velocity. Since I don't know how to calculate it accurate enough, there is a picture below showing the typical TRANSFORM curves one could use for the orbits of the moon and the earth.
How to calculate (x,y). p1=(0.0,0.0), p3=(0.5,0.5), and p5=(1.0,1.0). For the earth p2 with x=0.25 then y=0.25-0.25*0.8(parameter)*0.05(eccentricity)=0.24. For the earth p4 with x=0.75 will then be 1-0.24=0.76. For the moon p2 with x=0.25 then y=0.25 -0.25*0.8(parameter)*0.3(eccentricity)=0.19. For the moon p4 with x=0.75 will then be 1-0.19=0.81. Note the shape of the curve. In the beginning the angle is less steep than in the midle of the animation. Thus we can see the angle as an indicator of velocity. Use 'Create/Controls/B-Spline Knot' to create the actual curve. See the figure below.

Note1:

If you are going to try to use a TRANSFORM method to control the speed of the main body (Earth), make sure that the TRANSFORM method is placed directly above the whole earth-systems PATH method, so that none of the above methods are affected. Therefore, one need to insert a TRANSFORM method directly above the moons PATH method as well. You will have to calculate the parameter curve (or SFOR formula) by yourself, as I am not a maths genius :-) or use the method I presented above. Then you will need to modify the animation system so that a TRANSFORM method is correctly used in all other subanimation systems... and this is the reason it is not included in this tutorial. Maybe a future tutorial will explain this. The file 'SimpleTransformEx.obj' may provide some useful information about the TRANSFORM method, and how to apply it in this situation.

Note2:

You'll probably notice that the moon-system has an extra unused level. I have made it this way for easily implementation of more moons in the moon-system level. Also, it's probably better to get used to one way of doing things.

Note3:

If you want to make a complete solar-system of your own, I have included the file 'orbitdata.txt' which contains all neccesary information. The right column have already been scaled to the size I used once, but the FREQ numbers for the PATH and DIRECTION methods will not be correct. (I made my own solar-system in a completely different way than we did above, so please ignore the FREQ values in the right column). In this tutorial we animated the earth and moon using PATH and ROTATION, but for orbits that have a close to zero eccentricity and 'stationary orbit' (like our moon) one could have used DIRECTION method instead of PATH and ROTATION. Note that with these values, bodies will become extremely small, and rendering errors may occur. I.e. Deimos (one of mars' moons) would have measurements of 0.015 x 0.0122 x 0.011 mm (yes millimeters). Zooming in close to this and render, you would notice a whole bunch of jagged egdes due to the accuracy Real3D provides.

Note4:

A very nice way to animate the solar-system as a whole, is to use PATH methods only (forget all about skeletons, rotations and so forth), and set the 2D-particle flag for all the bodies. Enable 'trails' post effect, and render. This is a very fast way of showing the orbits in the solar-system. One can produce a huge animation within a few hours.

Note5:

I have not been able to find specific information about the solar-system. Therefore there might be things that are not even correct. As an example; do the orbits have the same orientation (about the rest of the space) even if it is a suborbit (like the moon)? If this was the case, it would be fairly easy to change the way the orbits behave during the animation time.


I had to experiment a lot on which protected flags to set and which to not set, so in case I have forgot some of the flags, I used the 'Custom/Modelling/Dump Objects' function to generate this list, just in case:

-------------------------------------------------------------
                            | Boolean  Invisib  M  Prot  M  L
                            | -------- -------  A  ----  B  I
                            | A  I  P  W  R  C  P  P  P  L  G
                            | N  N  N  F  T  D  P  1  2  U  H
 Objects                    | D  V  T           I        R  T
-------------------------------------------------------------
 solar-system               | .  .  .  .  .  .  .  .  .  .  .
  system-earth              | .  .  .  .  .  .  .  .  .  .  .
   planet-earth             | .  .  .  .  .  .  .  .  .  .  .
    rotating                | .  .  .  .  .  .  .  .  .  .  .
     parts                  | .  .  .  .  .  .  .  .  .  .  .
      ellipsoid             | .  .  .  .  .  .  .  .  .  .  .
      earth-col             | .  .  .  .  .  X  X  .  .  .  .
     ROTATION               | .  .  .  .  .  .  .  .  .  .  .
      line                  | .  .  .  .  X  X  .  .  .  .  .
    radiosity               | .  .  .  .  .  .  .  .  .  .  .
     light_spot             | .  .  .  .  .  .  .  .  .  .  X
     SKELETON               | .  .  .  .  .  .  .  .  .  .  .
      line                  | .  .  .  .  X  X  .  X  .  .  .
       outer                | .  .  .  .  .  .  .  .  .  .  .
        group               | .  .  .  .  .  .  .  .  .  .  .
        PATH                | .  .  .  .  .  .  .  .  .  .  .
         earth-orbit(l)     | .  .  .  .  .  .  .  X  .  .  .
       center               | .  .  .  .  .  .  .  .  .  .  .
        group.1             | .  .  .  .  .  .  .  .  .  .  .
    transp                  | .  .  .  .  .  .  X  .  .  .  .
     transp-map             | .  .  .  .  .  X  X  .  .  .  .
     SKELETON               | .  .  .  .  .  .  .  .  .  .  .
      line                  | .  .  .  .  X  X  .  X  .  .  .
       outer                | .  .  .  .  .  .  .  .  .  .  .
        group               | .  .  .  .  .  .  .  .  .  .  .
        PATH                | .  .  .  .  .  .  .  .  .  .  .
         earth-orbit(l)     | .  .  .  .  .  .  .  X  .  .  .
       center               | .  .  .  .  .  .  .  .  .  .  .
        group.1             | .  .  .  .  .  .  .  .  .  .  .
   system-moon              | .  .  .  .  .  .  .  .  .  .  .
    moon-moon               | .  .  .  .  .  .  .  .  .  .  .
     rotating               | .  .  .  .  .  .  .  .  .  .  .
      parts                 | .  .  .  .  .  .  .  .  .  .  .
       ellipsoid            | .  .  .  .  .  .  .  .  .  .  .
       moon-col             | .  .  .  .  .  X  X  .  .  .  .
      ROTATION              | .  .  .  .  .  .  .  .  .  .  .
       line                 | .  .  .  .  X  X  .  .  .  .  .
     radiosity              | .  .  .  .  .  .  .  .  .  .  .
      light_spot            | .  .  .  .  .  .  .  .  .  .  X
      SKELETON              | .  .  .  .  .  .  .  .  .  .  .
       line                 | .  .  .  .  X  X  .  X  .  .  .
        outer               | .  .  .  .  .  .  .  .  .  .  .
         group              | .  .  .  .  .  .  .  .  .  .  .
         PATH               | .  .  .  .  .  .  .  X  .  .  .
          moon-orbit(l)     | .  .  .  .  .  .  .  X  .  .  .
        center              | .  .  .  .  .  .  .  X  .  .  .
         group.1            | .  .  .  .  .  .  .  .  .  .  .
        PATH                | .  .  .  .  .  .  .  .  .  .  .
         earth-orbit        | .  .  .  .  X  X  .  X  .  .  .
     transp                 | .  .  .  .  .  .  X  .  .  .  .
      transp-map            | .  .  .  .  .  X  X  .  .  .  .
      SKELETON              | .  .  .  .  .  .  .  .  .  .  .
       line                 | .  .  .  .  X  X  .  X  .  .  .
        outer               | .  .  .  .  .  .  .  .  .  .  .
         group              | .  .  .  .  .  .  .  .  .  .  .
         PATH               | .  .  .  .  .  .  .  X  .  .  .
          moon-orbit(l)     | .  .  .  .  .  .  .  X  .  .  .
        center              | .  .  .  .  .  .  .  X  .  .  .
         group.1            | .  .  .  .  .  .  .  .  .  .  .
        PATH                | .  .  .  .  .  .  .  .  .  .  .
         earth-orbit        | .  .  .  .  X  X  .  X  .  .  .
     PATH                   | .  .  .  .  .  .  .  .  .  .  .
      moon-orbit            | .  .  .  .  X  X  .  .  .  .  .
   PATH                     | .  .  .  .  .  .  .  .  .  .  .
    earth-orbit             | .  .  .  .  X  X  .  .  .  .  .

Lights and Rendering:
These are the setting I used for producing good pictures:
Normal Rendering mode
Ambient 0,0,0
Background 0,4,14
Brightness 20
Overlight 0
Antialiasing 4
Lightsamples 4
Supersample On
AutoExp Off
Rest as default

Earth radiosity spotlight:
Local radius 1.3
Brightness 5
Spot fade 20%
Spot angle 178
Light color 128,130,155
Earth sphere color 255,255,255
Material was replaced with a bigger texture map.

Moon radiosity spotlight:
Local radius 1.0
Brightness 8
Spot fade 20%
Spot angle 178
Light color 89,80,76
Moon sphere color 98,91,83

To simulate a sun, I have two lightplanes perpendicular to each other in the center:
Size 0.4 x 0.4 m
No fading
Brightness 15
Light color 255,252,242

Material settings:
moon-col(T):
Color and Shadow Map On
High level texture
Tile x = -1
Grade x and y
Scope Angle a=-1.1 b=0
Effect = 100

moon-bmp(T):
Color, Bump and Shadow Map On
High level texture
Tile x = -1
Grade x and y
Bump height = 3
Scope Angle a=-1.1 b=0
Effect = 65

Earth-col(T):
Color map On
High level texture
Tile x = -1
Grade x and y
Scope Angle a=-1.1 b=0
Effect = 100

Helpdesk Real 3D Main area