Tutorial 4

How to create a Basking Shark from next to nothing

The easy way to make 'Organic' models using MetaNURBS.
Sharks or shellfish, shower-heads or shoes, they're no problem (providing you have LightWave5).

Choppy Water

If you have ImageFX4 (one of many Amiga gems), you may have created the 'Choppy Water' anim from some live action frames hidden away in the Goodies directory. It's very nice, though you need a lot of RAM to do justice to the 600 jpegs supplied on the CD. When I'd put the anim file together using MainActor, I immediately thought it would make a great backdrop for a shark animation. So, the main problem was to construct a LightWave shark! I decided to make it a Basking Shark.

What's a Basking Shark?

Oh, come on! Have you never watched David Attenborough on the telly? Well a Basking Shark is pretty big. In fact, It's almost the biggest fish there is. Only the Whale Shark is bigger. Baskers typically weigh in at around five-thousand kilogrammes, give or take a few hundred kilos of plankton. That's what they eat. Indeed plankton is next to nothing, so they eat a lot of it. To collect enough plankton, they have some rubber-like extensible skin around the lower jaw. This inflates when swimming with the mouth open. It makes a colossal scoop with which the fish hoovers up the oceans. The plankton is filtered from the water through fibrous membranes on the inner openings of the gill slits. So there you have it. The Basking Shark....big, beautiful and utterly harmless.


Squa...., what's this about? Well I couldn't talk about Basking Sharks without noting the way they've been exploited for hundreds of years. It's their squalene you see. Their livers are full of it and a basker's liver constitutes about a third of its body weight. Squalene is a rather exquisite natural oil. So, it was good for lubricating cotton gins, Spinning Jennies, sewing machines and such. For any chemists out there, squalene has the empirical formula C30H50, determined by Tsujimoto in 1906. Its structure provides the generic description 2,6,10,15,19,23-hexamethyltetracosa-2,6,10,14,18,22-hexaene. That's quite a mouthful, as Basking Sharks know very well. Squalene plays a part in virtually all life on Earth.

Squalene is a highly unsaturated hydrocarbon and it burns very brightly. As a consequence, people working around costal areas have made a living by killing untold numbers of Basking Sharks for their livers. The oil wasn't only used as a lubricant. It was widely used in domestic and industrial lamps. The rest of the animal was chucked away to rot. Thank Goodness then, for Thomas Edison and his electric bulbs and Castrol, who showed castor oil was easier to produce!

Anyway, let's make a Basking Shark!

For Starters

For starters, we need a primary shape from which to mould the shark. The important thing to remember is we'll be employing the powerful metaNURBS tool, which only works with four-sided polygons. Well in LightWave5 it does. Later (pc/Mac) versions of NURBS may work with three-sided polys as well. So, a primitive cube would do, but I reckon a cylinder is better. OK, using Modeler's Objects/Disc tool, create a cylinder by entering a Sides value of 12 and a Segments value of 7 in the Numeric panel. Orientate the thing as shown in the graphic below by selecting Z as the cylinder's axis. The scale can be anything you want, but to get it about right it should be a metre in diameter and say five metres long. So, set Bottom -2.5m, Top 2.5m, Radius X 0.5m, Y 0.5m and Z 5m. Or, just stretch out the bounding box to suite and click the Make button.

I chose these parameters for the cylinder after a fair bit of trial and error, using both fewer and more Sides and Segments. I found it gives four-sided polys having the best size relative to the whole. They're easily manipulated into fins/tail of the correct size and their total number and orientation are also about right. By all means try different parameters, you can only learn by it.

Four-Sided Polygons

If you examine the cylinder, it's clear that the 'ends' have more than four sides (twelve in my case) and will foul up the NURBS operation. That's not a problem, 'cos we're getting rid of 'em. In Polygon selection mode, select the two 12-sided ends, but make sure you de-select any adjacent quad-polys which got included in the operation. Now hit the Cut button to remove the ends. What's left is an open-ended cylinder made from twelve longitudinal rows of quad-polys. Good! It should now look something like this (note I've made the surfaces double-sided to improve visualisation).

Selected polygons on the surface of this cylinder will eventually become fins, tail, etc. A few of the 'head' points will also be manipulated to develop the shark's enormous mouth.

Heads and Tails

The cylinder should first be orientated so that two opposing rows (12 O'clock & 6 O'clock) running end to end are 'horizontal' and two rows (3 & 9) are 'vertical' (see above). This is easily done by slightly rotating the cylinder using the 'Face' view. Re-centralise the object's axis after the rotation. We need one or two polygons in the rows at the 'top' and 'bottom' of the cross-section to extrude vertically away from the body to create a dorsal fin and a tail. Similarly, we need the rows at each 'side' to be vertical, so two may be extruded out horizontally to make fins. I set the cylinder parameters so that there are also rows of polys at an appropriate angle (4 & 8) to extrude into those smaller lateral fins. These go between the main fins and the tail, but slope 'downwards'. Easy when ya know how, 'eh? Well, it took me around two hours to get this far, so don't be disheartened. You'll create a superb Basker!

Extruding Protrusions

I've talked about extruding polys to make fins, etc. What this involves is selecting a particular quad-polygon on the surface of the cylinder and drawing it out, to create a rectangular protrusion. This gives you a starting point for the metaNURBS modeling. It's certainly an extrusion process, but the operation actually uses the Bevel tool. The Extrude tool would be difficult for anything other than 'horizontal' and 'vertical' displacements 'cos it only displaces along the X, Y or Z axis. On the other hand, Smooth Shift (SmShift) allows you to extrude along the polygon's Normal, no matter what angle it's orientated. However, SmShift extrudes radially, so the extruded polys are likely to be bigger than their parent. Bevel retains the overall size of the parent polygon as it extrudes (Move) along the normal. However, it has the added function, Inset. The Inset value creates the chamfer on the end of the extrusion, which we don't need. So, why use Bevel? Well, it isn't only used to make bevels. In fact it's a very useful extrusion tool. How come? Well, if you make the 'Inset' value Zero, the 'Move' simply results in an extrusion, right? But before we start extruding, let's just think about fins and things.

Fins n' Things

Look at the cylinder and imagine it's gonna form the head and body of the shark. I decided to make the head on the left end of the cylinder as seen in the Left View. Assess where the main side fins will emerge along the cylinder. Knowing nothing of shark physiology, I reckon they're attached more or less on the centre line running head to tail, about a third of the way from the head. The dorsal fin emerges a little way behind the main fins, on the 'backbone'. The tail fins are easy, at the opposite end to the head, top and bottom. That's why we orientated the cylinder early on, so these extrusions are 'horizontal' and 'vertical'. That way they're much easier to work on. Each extrusion will need a single quad-poly, so mentally assign the ones to use.

Now consider the small lateral fins which emerge about half way between the main ones and the tail. These are attached to the body at a point below the centre line. The cylinder has nice quad-polys in all the right places to make these fins n' things. If you need to make the model anatomically accurate, refer to a shark textbook before creating the cylinder. There may well be bits n' bobs I've left out because my shark will only be seen as a phantom, passing silently beneath the waves......oooh it's gonna be so scarey!

Save it Now!

In case things go haywire when you start working on the body, Save the cylinder under a suitable name, say 'shark1.lwo'. Get into the saving habit. It will avoid a lot of grief and frustration! Better to save umpteen preliminary models than create a work of art and lose it accidentally - it happens so easily.

A Bit of Shape

First, let's give the cylinder more of a shark body shape. Let's taper it from about half way along to the tail. This is easily done using the Taper1 tool, but you have to be a little careful. First, select all the polygons in the tail half of the cylinder. Now go to the Face view window and place the cursor on the centre of the circle (it should be the axis origin). With the LMB, drag the cursor to the left. You should see the tapering take place. The far end will begin to close, but don't close it completely, leave a small circle. Note that if the original cylinder is not centered on the origin, the Taper will become asymmetric. Use the Undo button if things go wrong. Here's one I made earlier.

Let's get Beveling

In Polygon selection mode, select one of the quad-polys you want to extrude away from the surface. You can do them all individually to make them different lengths, or all at the same time for equal lengths. Just click the Bevel button under the Multiply menu. This pops up the Bevel parameters panel. The Inset should be set to zero to avoid the chamfer. For Move, type in a suitable value, say 1m for the big fins and the dorsal and a smaller value for the laterals but it needn't be too precise. Forget all the other settings. The result should look something like this...

Mouthing Off

It will help the development of the shark if you create a basic outline for its enormous mouth. This is easily done in Points mode. Select the points around the 'head' end of the cylinder and use Move or Drag to adjust the points as seen in the Left view window. Try to get a reasonable V-shape, but it doesn't have to be perfect. Don't superimpose any points in an attempt to get a sharp V-shape and certainly don't weld or reduce them in any way. Also, move some of the points at the outer ends of the fins and tail to get a more tapered effect. Remember, all the polys should remain four-sided. Aim for something like this...

Non-Uniform Rational B-Splines

That's what metaNURBS are, but what they do is much more interesting. When you activate metaNURBS, each polygon is changed into a Spline Cage. These cages allow you to manipulate them using most of the tools you normally employ with polygons and points. However, they automatically assume optimal curvature between cages as they are pushed and pulled around. And you can make quite extreme changes without problem. This results in very organic and convincing models. MetaNURBS are activated by pressing the Tab key. That's the one with two arrows to the left of 'Q'. Once active, you'll notice an immediate change in the general form of the object. It's already getting the NURBS treatment. In some instances, this is all the treatment your crude model will require. Here, however, we must do a bit more work.

If you use a polygon modifying tool like Magnet, you'll quickly appreciate the special character of the NURBS object. Furthermore, they can even be saved in NURBS form for use at a later date. However, they have to be converted back into LightWave's standard polygonal format if you wish to use them in Layout. This is done using the Freeze tool. After Freeze is applied, the spline cages revert back to a set of polygons, the number of which is determined by the Patch Sub-Division setting you'll find in the Objects/Options panel. A setting of 2 or greater will increase the number of quad-polys in the final object by an equivalent factor. This is something to be aware of if you have limited RAM: or you wish to render the object in double-quick time. A frozen NURBS object will respond to the activation process as many times as required, though the multiplication of polygons should be bourne in mind. If you anticipate freezing several times, ensure the Objects/Options/Patch Sub-Division se tting is 1. Here's the frozen model after a bit of cage tugging using Magnet. Amazing eh? Remember to name the surface of this model something like SharkSkin and save it out.

Sheer Magnetism

I find Magnet to be great for moulding with metaNURBS. I can't go into too much detail here, but you must remember that Magnet is three-dimensional and its effects are determined by the size of the 'bounding box' you draw out when setting up the tool. Also, the position of the tool's cross hairs tells you where its effect is maximised. Always use the three view windows to ensure that the effect is applied where you want it and that the extent of its effect is correct.

Just a Shell

So far so good, but it's just a shell at this stage. One important area is the mouth, which shows the 'inside' of the animal. To look convincing, we need the inside area to render with a different surface from the outer skin. This means a complete 'duplicate' of the mouth area must be fitted inside the original, so we can assign a different surface. I found the easiest way to do this was to select and copy to a separate layer, all the polygons making up the shark's head.

Now, with the copy in the front layer and the original behind it, use the Size tool to reduce the size very slightly, say to 97%. The orientation may have to be adjusted so it will fit snugly inside the shark's head. Oh, don't forget to Flip all the polys in the inner part so they render 'face on'. Alternatively, make sure all the shark's surfaces have the 'Double-sided' switch 'on'. OK name the surface of the duplicate something suitable like SharkInside. Now copy or cut this layer and paste it onto the lower layer. Again, save the mesh under a new revision number. If you think your renders will see into the back of the mouth, you should close it up by pulling points backwards until they form a 'throat'. Weld points as appropriate. This will render a little rough compared with the skin, but for my purposes it was near enough.

The same thing goes for the 'lips' around the mouth. Close up, the above model will show two separate surfaces with a space between them. If this is a problem, I found using the Bevel tool on the mouth edge polygons created a 'return' on the edge and provided a convincing 'seal'. It also gives some 'thickness' to the 'lips'.

A further refinement is the creation of gill slits and eyes. To make the gills, I used the stencilling technique desribed in Tutorial 3. I created a suitably crescent-shaped 'drill' polygon, extruded it wider than the shark, then stencilled in several gill areas. These were given a separate surface name (gills!) and coloured black, so they appear like holes in the skin. My model has only three gill slits, though the genuine article has more (six I think).

Eyes were created from a couple of flattened hemispheres, which were given an 'iris' and 'pupil' of different colours. And that was more or less that. The outer skin was given a blue-green mottled effect using a Fractal Noise texture. The inside of the mouth was assigned a 'marble' type texture in an attempt to emphasise the curvature.

Here's what the completed mesh looks like.

Now Tidy Up

Before you leave Modeler, you could tidy up the small 'hole' in the tail end of the body by joining all twelve points using the Weld tool. After this, just drag the resulting single point into the appropriate position. You may also find minor polygon errors created during the manipulations. These are usually obvious in a trial render. Alternatively, use the Display/Stats tool in Polygon mode to examine the types of polys you have ended up with. Most errors are easily resolved using the tools available under the Polygon menu.

Download it Here

If you can't be bothered creating your own Basking Shark mesh, you can download mine (155K) by clicking here. It may need a minor adjustment to the tail fins (I noticed some small 'holes' in the render). The surface textures I have used are included in the archive. When this is unpacked, open the 'Surfaces' directory and copy the two files it contains into your 3D/Surfaces or NewTek/Surfaces directory, according to the version of Lightwave you are running.

Animating the Shark

In my 'Baskin' animation, I used a duplicate shark as a Morph target for the first. The morph version has its main fins in a downward attitude. I created this from the first model using Magnet. By enveloping only the selected fin with the Magnet's box, you can gently draw the whole appendage downwards. It's important to create the morph target from the primary object so they have the same number of points. Anything else and LightWave will complain when you attempt the render. The animation setup has the two sharks morphing back and forth throughout the 320 frames.

You could achieve this 'swimming' motion using Bones. However, I decided on a morph because I wanted to use Bones for the body and tail movements. I felt so many Bones would be just too complicated to choreograph.

Anyway, here's a simple render of the Basker against a black background. Put him under water and he'll readily come to life, as the second still and the downloadable animation confirms.

Cetorhinus maximus

Frame 180 from the LightWave/MainActor anim 'Baskin'.
You can download this animation (33Mb archive - Amiga anim7 format only) by clicking here.

If you find any errors in this Tutorial please email me and I'll fix them at once.

Go back to the top

Go to Tutorial 1
Tutorial 2
Tutorial 3
Tutorial 5
Tutorial 6
Go back to the Tutorials Page
Home Page
The Gallery
WaveGuide Manual
Other LightWave Sites
My Amiga