$headinclude $header $navbar

Creating a DS9-Style Wormhole in Lightwave

Tutorial by Björn Busch-Geertsema aka Jediknight

This is my first tutorial...
I'll try to make it as precise and as easy to understand as possible.
Some basic knowledge of Modeler and Layout is helpful to use this tutorial although I think even a newbie could do it...
Feel free to email me if you have questions or suggestions.

Don't be surprised if the things you do in this tutorial don't seem to match the look of the final wormhole. I use an optical trick to create the effect. You'll understand it in the end.
…and now, lets enter the heavenly temple of the prophets...

The wormhole-object:

Create a box with the following settings:
Low: x: -60m y: -60m z: 0m
High: x: 60m y: 60m z: 0m
Segments: x: 30 y: 30 z: 0

Hit q and name the surface 'wormhole layer 1', turn smooth ON at 120°.
Now we give the wormhole its basic shape, using the Magnet tool with the following settings:
Axis: Z Preset: Bell Range: Fixed
Radius: x: 55m y: 55m z: 1m
Center: x: 0m y: 0m z: 0m
Offset: x: 0 y: 0 z: 160

The object after applying the
magnet.
Select the outer square of points in the Face View. Use the stretch tool (hit [h]) and stretch the selected pixels by 125% on the x- and the y-axis.
Move the selected
points about +15m on
the z-axis (for the
move-tool, hit [t]).

The object after moving
and stretching the outer points.
To add a bit more chaotic look, deselect everything and apply a Gaussian Jitter ([J]) with these settings:
Radius: x: 1m y: 1m z: 3m
You will now notice some holes in the mesh, these are due to non-planar polys, you can get rid of them by tripling the whole mesh, which is always a good idea when you apply something like jitter or comparable things. Simply hit [T] to triple everything.
Now save the whole thing as 'wormhole-layer1.lwo'. We will now switch to layout.

Start Layout and load your wormhole-object. We will leave the wormhole where it is right now, but we have to reposition the camera a bit for the optical trick we are going to use).
Move the camera to the coordinates: x: 50m y: 50m z: -300m
Rotate the camera: h: -7.5° p: 8.5° b:


Now, the surfacing:
These will be the accurate settings as I have done them, but you are not bound by them. Feel free to experiment.

The wormhole has particle-clouds which smoothly vanish when they move away from it. That is done with fractal noise transparency, as it is always good for cloud-effects. We want to stretch the fractal noise texture a bit to fit small long cloud-nebulae. We'll use high x and y-sizes and a small z-size to do that. The clouds have to disappear after they come out of the wormhole, so we take a transparency map on the z-axis, which does that for us. Give the fractal noise texture a -z-velocity so the clouds look like they're coming out of the wormhole. We'll also use a fractal noise texture for the colour channel to avoid an overly uniform colour (feel free to add more colours in this way but be careful, these cause high render-times).
Settings for the surface of the first wormhole object;
Surface Color: R: 151 G: 82 B: 226
Color Texture:
    Texture Type: Fractal Noise
    Texture Opacity: 100%
    Texture Size: x: 12m y: 12m z: 10m
    Texture Color: R: 191 G: 72 B: 188
    Frequencies: 5
    Contrast: 0.8
    Small Power: 0.7
Luminosity: 60%
Diffuse: 40%
Transparency Texture:
(1)   Texture Type: Planar Image Map
(1)   Texture Opacity: 100%
(1)   Texture Image: wormhole-trans.jpg
(1)   Pixel Blending On
(1)   With- and Height-Repeat Off
(1)   Texture Size: x: 12m y: 12m z: 10m
(1)   Texture Axis: Z
(2)   Texture Type: Fractal Noise
(2)   Texture Opacity: 100%
(2)   Texture Size: x: 15m y: 15m z: 8m
(2)   Texture Velocity: x: 0m y: 0m z: -60cm
(2)   Texture Value: 100%
(2)   Frequencies: 6
(2)   Contrast: 1
(2)   Small Power: 0.5
Turn Glow on at about 20%.
Now its time to save it and
test render to check for errors.
Press F9 the results should
look like Fig12.

Fig. 12: Testrender
Switch to Modeler. Clear everything and then import the wormhole- object again. Hit [q], select the 'wormhole layer 1'-texture and rename it 'wormhole layer 2'.
Now save as 'wormhole-layer2.lwo' and then import the to layout.

Don't worry about positioning for now, it's surfacing time again. If your surface for 'wormhole layer 2' doesn't have the same settings as ‘wormhole layer 1', simply save the settings for 'wormhole layer 1' and load them into 'wormhole layer 2'. We'll use a comparable surface to the first layer, with small differences. Once again, feel free to play around with settings.
The first things to change are the colors, we use (R: 88/G: 190/B: 103).
The Color Texture is as follows:
    Texture Size: x: 13m y: 12m z: 11m
    Texture Color: R: 92 G: 150 B: 171

Transparency Texture:
(2)   Texture Size: x: 17m y: 14m z: 6m
(2)   Texture Velocity: x: 0m y: 0m z: -50cm
Everything else is left as in the last surfacing step.

Now we do the rotating streaks.
Now we do the rotating streaks. The secret is, once again, fractal noise. We're going to use fractal noise and a morph object to create the twirling, rotating streaks around the wormhole.
In Modeler, create a Ball with the following settings:
Ball Type: Globe
Sides: 30
Segments: 20
Center: x: 0m y: 0m z: 0m
Radii: x: 60m y: 60m z: 60m
Press [Enter] to make your sphere.

We now have to rotate the sphere, the reason for this will become clear later.
For now simply rotate the sphere 90° on the X-Axis.
Select the Volume Select Tool and
click it until it displays 'Exclude'.
In the Top view, select a bit more
than the upper half of the sphere like
seen in Fig17. Press the [Del]-Key.

Fig. 17: How to select the points.
(click for larger image)


Hit space to change the selection-mode. To get a flat, divided, round plane, we stretch the sphere by 0% on the Z-Axis. Hit [h], bring up the numeric requester [n] and put the value on the Z-Axis to 0%. Leave the rest as it is and apply.
The outer ring of polygons is a bit to small. We have enough 'poly rings', so we can simply get rid of the small outer ones. We delete them by applying an absolute merge [m] with a value of 1m. Although you don't see them, we know that there is now a ring of 2-point-polys around the object which we don't need. Switch to poly-selection-mode and bring up the statistics panel [w]. Click the + before '2 Vertices' as these are our 2-point-polygons. They are now selected. Close the panel and simply delete them by hitting [k].

We only want a ring for the ‘rotating streaks' object, we'll delete some of the inner polygonss. In the Face view, select the first two or three 'rings' from the center and delete them [Del].

To better give our ring the correct size, import one wormhole object to another layer and put that one in the background. Now use the stretch tool, put the cursor in the very middle of the Face view and stretch the thing until it has the right size. For our wormhole, 175% on the X- and the Y-Axis are good values.
Deselect everything, hit [q] and rename the surface 'Wormhole Rotating Streaks'.
Now save the object as 'wormhole-rotating-streaks.lwo'.

We now make our morph-target, which will bend and stretch the fractal noise, so that it looks like we want it to. This is a work-intensive step, depending on the number of segments and sides you used to create the sphere in the beginning.
With the point-selection-tool, select everything. Deselect the inner ring of points. Activate the rotate-tool [y], bring up the numeric requester [n], select Z as rotation-axis and type in 8 as angle. Now deselect the next ring of points and rotate again at the same values. Repeat this until there are no more points selected. I realize that it would be easier with the vortex tool, but I prefer this method because it offers more control. Besides it's good exercise. Additional explanation how the morph target will work:
We will apply a 'simple' fractal noise to our ring - but this noise wouldn't look like swirling arround but as static particle clouds. The morph target stretches the polys how we did it to create the morph target - the texture will be stretched, too! That's the secret with playing with morph targets.

Save as 'wormhole-rotating-streaks-morph.lwo'.
Import both objects into layout. You can close Modeler now.
Make the 'wormhole-rotating-streaks-morph.lwo'-object 100% dissolve. Make the 'wormhole-rotating-streaks.lwo'-object to 100% morph and use the other object as the morph target. Make sure the option 'Morph Surface' is NOT activated!
Again, it's time for surfacing. We'll use fractal noise again, and another transparency map which you can make here:
Surface Color: R: 119 G: 78 B: 175
Color Texture:
    Texture Type: Fractal Noise
    Texture Opacity: 100%
    Texture Size: x: 25m y: 25m z: 25m
    Texture Color: R: 65 G: 129 B: 90
    Frequencies: 4
    Contrast: 1
    Small Power: 0.7
Luminosity: 90%
Luminosity Texture:
    Texture Type: Fractal Noise
    Texture Opacity: 100%
    Texture Size: x: 20m y: 20m z: 20m
    Texture Value: 50%
    Frequencies: 5
    Contrast: 1
    Small Power: 0.5
Diffuse: 0%
Transparency Textures:
(1)   Texture Type: Planar Image Map
(1)   Texture Opacity: 100%
(1)   Texture Image: wormhole-trans-streaks.jpg
(1)   Pixel Blending On
(1)   With- and Height-Repeat Off
(1)   Texture Size: x: 208m y: 208m z: 200m
(1)   Texture Axis: Z
(2)   Texture Type: Fractal Noise
(2)   Texture Opacity: 100%
(2)   Texture Size: x: 50m y: 50m z: 40m
(2)   Texture Velocity: x: 0m y: 0m z: -70cm
(2)   Texture Value: 100%
(2)   Frequencies: 6
(2)   Contrast: 0.5
(2)   Small Power: 1
Smoothing on and glow at 10%.
Save object and scene.

Now it's time for some real scene-editing, we will put the whole darn thing in motion.
We begin with adding some Null-Objects for better control over different animated values.
We need the following Nulls:
- Wormhole Complete Template
- Wormhole Rotation Global
- Wormhole Rotation 2
- Wormhole Size Global
We parent all the objects in the scene:
Wormhole Size Global -> parented to Wormhole Complete Template
Wormhole Rotation Global -> parented to Wormhole Size Global
Wormhole Layer 1 -> parented to Wormhole Rotation Global
Wormhole Rotation 2 -> parented to Wormhole Rotation Global
Wormhole Layer 2 -> parented to Wormhole Rotation 2
Wormhole Rotating Streaks -> parented to Wormhole Rotation Global

The next step is to setup all the positions and rotations of the objects.
Put "Wormhole Layer 2" -10 m on the Z-Axis (so the wormhole layers don't interfere).
The "Wormhole Rotating Streaks" are also moved about -15 meters on the Z-Axis.
"Wormhole Rotation Global" gets a keyframe at 1200 with a bank value of 360°.
"Wormhole Rotation 2" needs a keyframe at 800 with a value of -360° (as it is parented to the global rotation it will slowly rotate counter to the 'main'-rotation).
Set "Wormhole Size global" keyframes at 30, 45, 85 and 98 (these are examples, assign the frames as you like them, as they define when the wormhole opens and closes. Remember that this will coincide with the settings of the lensflares we create later). Set all these keyframes tensions to '1'.
Keyframes 0,30 and 98 have to be zero, the rest 100% on X-, Y- and Z-Scale.

We will now add some Lensflares...
We need the following (point-)lights:
- Wormhole Flare 1
- Wormhole Flare 2
- Wormhole Appearing Flash 1
- Wormhole Appearing Flash 2
The Wormhole Flare's are similar to the Appearing Flashes, so we give Wormhole Flare 1 and 2 a color of somewhat bright orange/yellow and a light intensity of about 75%. Set intensity falloff at about 400m. Activate Lensflare and edit the Lensflare options:
Central Glow On, Red Outer Glow and Central Ring off.
Starfilter Off, Off-screen Streaks and Random Streaks on.
Streak Intensity about 18% (we want the streaks visible...), Streak Density about 20 (we don't want too much streaks...) and Streak Sharpness at 10 (we want the streaks sharply visible but not hyper-sharp...).
Flare Intensity Envelope:
Keyframes (tension=1!) at 0, 30, 40, 85 and 100: 0, 30 and 100 at 0%, the rest at about 120%.
Rotation Angle Envelope:
Keyframes at 0 and 360, 0 at 0° and 360 at 360° (that makes sense, eh? lol)

Wormhole Flare 2 isn't much different from this one, so we only change some things:
Central Glow off (we already have one flare glowing there...we only need the streaks of this one)
Rotation Angle Envelope at Frame 360 to -360°. Vary the values of Streak Intensity, Density and Sharpness just a bit so the streaks don't look exactly like the first flare.
Light Intensities are controlled by the Global Size Null Object so we don't have to envelope them.

The Appearing Flashes:
Good settings for these are:
Colour something dark blueish, light intensity 100%, intensity fallow at about 650m.
Lensflare settings:
Central Glow, Central Ring on change color to dark blue), Red Outer Glow off, Ring Size at 2%
Random Streaks and Anamorphic Streaks on, Streak Intensity at about 20%, Streak Density 15 and Streak Sharpness at 20.
Flare Intensity Envelope:
Keyframes (tension=1) at: 20, 24, 45, 60, 95, 98, 105, 110
Keyframes 0, 20, 60, 95 and 110 at 0%, the rest to 240%.
Rotation Angle Envelope:
Keyframes at 600, value 720°.
"Wormhole Appearing Flash" only a little different:
no central glow, no anamorphic streaks and softly different streak settings, rotation angle envelope keyframe 600 to -720°.

Parent all the lights created for the "Wormhole Size Global" and move them +130m on the Z-Axis.


And now - finished! Enjoy the wormhole and the render times *argh* ;-))

I would like to thank Geoff Rogers and Luc Pichette for correcting all the horrible spelling and grammar mistakes in this tutorial.
$footer