Blast off with Hypervoxels 2.0

By Stephen Schleicher

Since LightWave 3.5 I’ve known how to create a really nice overcast sky using two polygons with an offset fractal noise pattern (Figure 1), but even though I could create nice rolling thunderstorm type clouds, they just weren’t 'puffy' enough. When I upgraded to LightWave 5.0, I was excited about the Metaball function. With this feature I thought I could create some really fantastic puffy clouds. While I could create the shape of a puffy cloud it just wasn’t believable enough. With LW5.5 came Steamer. 'Oh boy, now we can create cool clouds!' But alas, back to a semi-flat looking skyscape. With LW5.6 came Hypervoxels 1.0, a cool plaything for flowing effects like blood and thick water, but no puffy clouds.


Figure 1

Shortly following the release of HV1.0, NewTek introduced Hypervoxels 2.0. What a plugin! Not only can you create highly detailed HyperVoxel "solids", you can now create those puffy clouds you’ve always dreamed of. As an added bonus, you can actually fly through these clouds and maintain a high level of detail. I love the fact that the closer you get to the HyperVoxels, the more details emerge. Figure 2 shows a NullObject with a HyperVoxel preset applied at normal view.


Figure 2

Figure 3 shows the same setting zoomed in 500%. If you think of a fractal geometry pattern you will get an idea of what I mean. The closer you get to a fractal area, the more details emerge, even if you go all the way to infinity. I don’t know if HyperVoxel 2.0 textures go all the way to infinity or not, I haven’t had an infinite amount of time to find out…


Figure 3

There are a number of improvements in the HyperVoxel 2.0 engine that were not present in HV1.0. Instead of having to apply the HyperVoxel effect only on particles, you can now apply HyperVoxels to NullObjects as well. One advantage is the ability to quickly create a HyperVoxel effect without having to model the object first. The other advantage is that by varying the size of the NullObject, you can animate the HyperVoxel size and texture.

Quick Tip #1: Any object (or null) can be used as a texture reference object. If you have HV2.0 applied to one object, another object or Null can animate the texture over time.


Figure 4

Another improvement is the ability for particles to mix and interact with each other. Figure 4 demonstrates how three separate NullObjects would interact (or fail to interact) in HV1.0.


Figure 5

Figure 5 shows how the three separate objects can blend together the closer they are to one another in HV2.0. If you are an owner Realflow or Particle Storm, this is a great way to have separate streams of emitted particles combine and mix together.


Figure 6

Figure 6 is a quick example of two different emitters mixing their HyperVoxels. If you look closely, you can see the blue and the red mixing to form a purplish color in spots. With further tweaking of the HyperVoxel surface settings you could make the two instantly create purple goo. That reason alone was enough for me to want to play with this plugin. But remember, I really wanted to create some believable clouds, and fiery explosions, and space nebula, and smoke, and…

Click to see larger image
Figure 7

HyperVoxels 2.0 comes with many presets (figure 7) which include both solid and gaseous examples for you to instantly apply or modify for your own use. Figure 8 shows a quick test render I set up in about 5 minutes using the stock mountain object that comes with HV2.0 and the "dark cloud" preset to give the illusion of storm clouds approaching. The first time I rendered the image, I thought the clouds looked a little off because I wasn’t getting the depth I am used to when looking up at passing clouds. Skytracer was the simple solution.


Figure 8

Quick Tip #2: By applying Skytracer to your scene you can get those high wispy clouds behind lower cumulus ones.

If you look around at the many plugins that are added to your NewTek directory you’ll come across a quick and easy Modeler l-script that can generate a cloud of points for easy save and export to Layout. Of course if more control is needed, you can just as easily create the points yourself. Unless you want huge render times, it is important that you remember a lesson from Steamer; it is better if you try and keep the number of particles to a minimum. You can lower the number of points/particles when you are building your overall shape by using the Absolute or Fractional function in Modeler Merge tool. This bit of information can come in handy when you are trying to "sculpt" the perfect cloud. The storm clouds in Figure 8 were created with less than 50 points.

If you have worked with HV1.0, then you should have a good grasp on how HyperVoxels are created, but with HV2.0 there are a number of additional settings that could leave you tweaking (or twitching) for days. The presets are a good place to start, but many people may not be aware of some of the advanced surfacing you can do with gradients. I think one of the greatest tools for surfacing your HyperVoxel 2.0 particles is the ability to apply gradients to various HyperVoxel options. The gradients can also be controlled through many methods such as time, distance, curves, density, etc.

The Exercise

In this very quick exercise, we will create a rocket and have it blast off with a HyperVoxel 2.0 exhaust, such as the one in the Liftoff.mov. By no means is this a perfect animation, but it should get you up and running on the possibilities of HyperVoxles2.0.

For this example we will use Particle Storm 1.2 (you can do the same thing with Particle Storm Lite or with PS2.0), a few "basic" shapes, LightWave 5.6c, and HV2.0. I will summarize the steps you need to create the "basic" scene, as you should already have a firm grasp of LightWave. For those of you who want to use the models and files I'm using, click here to download a 119k zip file with them ready for you to use.

You will need to create 1) a rocket, thruster, missile, or any other object of your choice, 2) a launch pad for this object to takeoff from, and 3) a large ground plane. Chances are your HV2.0 particles will be sticking through your objects, and we can use the large ground plane to hide these stray particles. For this exercise you shouldn’t be overly concerned with details on your objects. Once you understand the principles of creating a HV2.0 thruster exhaust, you can go back and detail your models to your hearts content.

When you are finished building your objects, save and load each into Layout. Place your Rocket.lwo on the launch pad and create a key for it at 0. Since the rocket is a "massive" one, chances are there will be a slight delay between the time the engine ignites and the rocket starts to move. Create another keyframe for the rocket at frame 10. Set spline control to Linear at frame 10. This will prevent the rocket from "slipping" on the –Y-axis and freaking out the engineers in the control tower. Move the rocket to approximately 20m on the Y-axis and create a keyframe at 60.

Add a Point Light to your scene and Parent it to the rocket. If you need to, move the light to the exhaust port and create a keyframe at 0. Parenting the light to the rocket will allow the light to move with the rocket without having to create a lot of keyframes for the light (but you knew that already). Open the light panel and rename the point light to Exhaust Light, increase the light intensity to 100% (you can envelope it later if you like), and change the light color to 255, 212, 168 (a pale orange color). At this point we will not bother adding a lens flare to the light, but again, once you have completed the exercise, feel free to go back and add an enveloped lens flare for the exhaust burst.

Once you are satisfied with the motion of the rocket and placement of all lights and camera, enter Particle Storm. Parent the PS Camera to the LW camera, then switch to Particle Group. Rename the Particle Group to Rocket Exhaust and lower the number of particles to 250. Remember the fewer the particles the fewer calculations LightWave has to make. For now you can leave Recycle Particles on.

Change the Item Type to Collision Detection and click on the Create button. We will use collision detection to cause the exhaust particles to "bounce" off of, and spread out from the launch pad. In order to activate collision detection, highlight Rocket Exhaust in the Affected Particles window. Since the particles need to collide and react to the launch pad select Object File from the Collision window and load your launch pad object. For convienience sake, I saved my launch pad and ground object as one so I wouldn’t have to create multiple collision items in Particle Storm. Lower the Elasticity to 40%. Elasticity will cause the Particle Storm particles to bounce off any surface they come in contact with. The higher the elasticity, the greater the bounce.

Since this will be a short animation you can leave the Death Wish Value to 1. However, if you have a longer animation and you want the particles to "hang around" for a longer period of time, you should change the value to reflect that. If the particles live for too long, you will need to increase the number of particles generated in the Particle Group menu. As rocket exhaust moves further away from the source the fumes will tend to slow down. If your animation runs for any length of time, you should probably create a Drag instance to slow the particles down.

Change the Item Type to Fountain Emitter, and make sure Rocket Exhaust is active. We need to Parent our emitter so that the particles flow correctly. I parented the Rocket Exhaust emitter to the Exhaust Light since this is the point/place all the particles will flow from. By parenting the emitter to the light, the emitter automatically rotates itself into the down position, which is perfect for a downward thrust of particles. For this example I also changed the initial speed to 3m/s and the maximum speed to 5m/s. This will cause the particles to disperse at varying speeds, which will enhance the exhaust when HV2.0 is applied. Change the size of the emitter so that it fits nicely into your exhaust port. Also change the maximum spread to between 20 and 30 degrees.

Click to see larger image
Figure 9

When you press the play button, you should see the RocketExhaust emitter move upward scattering particles behind it (Figure 9). Rewind and Record the Particle Storm file for a few seconds (only the first two seconds will be used in this example). When finished, close Particle Storm.

Open the Objects Panel and load the Rocket Exhaust object. From the Displacement Map Plug-ins dropdown menu, load Particle Storm in the first slot. Load the Rocket Exhaust.psm file from the Particle Storm options panel. In the second Displacement Map Plug-ins slot load the LW_HyperVoxel_Particles plug-in. You should see two LW_HyperVoxel Plug-ins, one is called LW_HVRealFlow_import and the one just loaded is LW_HyperVoxel_Particles. Unless you have RealFlow, you will never really have a reason to use this plug-in. However, anytime you are applying HyperVoxels to any object or Null, you will need to use the LW_HyperVoxel_Particles plugin. Open the options panel and select Particle Storm from the Data Server drop down menu. This will allow HyperVoxels to recognize the particles generated from the .psm file.

Advance to frame 30, this will take you halfway through the animation and a fair number of particles should be in the camera field of view. Open the Effects Panel and switch to the Image Processing tab. Under Pixel Filter Plug-ins, load HyperVoxels in slot one and HyperVoxel Doubler in slot two. HyperVoxel Doubler is an additional plug-in that helps to decrease the HyperVoxel render time.

Quick Tip #3: If you wish to use Steamer or Skytracer in conjunction with HyperVoxels, you should load Steamer/Skytracer and their doublers in the first two slots and HyperVoxel and HV Doubler in slot 3 and 4. Unfortunately, in it’s current state LW5.6c only has four Pixel Filter Plug-in slots, which will prevent you from using all three plugins with their doublers at the same time. Perhaps that will be remedied in future incarnations of LightWave.

Okay, here we go into the HyperVoxel panel. The best thing to do when beginning with HyperVoxels is to start with the presets, see how they work, and tweak to your liking. Activate the Rocket Exhaust object, turn on HyperVoxels, and since we have the doubler applied, turn on Render res. I previously mention that the best thing to do is start with the HyperVoxels presets. Open the Presets Panel, and click on the Volumetrics tab. Rocket exhaust is basically steam (that’s the reason there are Hydrogen and Oxygen tanks, separate they are quite combustible, but when combined you get water vapor or steam), so apply the Thick Cloud preset. Update the render window and see what you get. Not very exhaust like is it? A bit dark, right? Check the color, it is too dark for our cloud. Change the Color to 255, 255, 255, lower the opacity to 100% and update the preview window again. That is a little bit brighter, but not by much, and the HyperVoxels are in a straight line. Let’s start using gradients (the p button next to all the HyperVoxel options) to improve the look of this effect.

Quick Tip #4: Never use the Relative option when creating your HyperVoxel size effect, use Absolute. That will "lock" the size of your HyperVoxel no matter how close or far the camera gets from the object.

Make sure Absolute is highlighted for the size and then open the particle size gradient. Set the Input Parameter to Distance to Object. Also, set Reference Object to your rocket. This will cause the HyperVoxel particles closest to the engine to start small and as they move further away, they will appear to grow in size, which will give the illusion that the gas is expanding. At first the gradient panel may confuse you a bit, but play with the settings and see the different results. You should quickly get the hang of it. Leave the Filter to Linear since we want a smooth transition from one setting to the next. In the graph window leave start at 0 and set the end to 20. Why 20? Remember that the rocket was moved 20 meters on the Y-axis and we want the effect to cover that area from the rocket to the ground. You could also set the end number based on how long your emitter is (no jokes please). A couple of keyframes need to be created so we can adjust our size. There is already one key at 0, but an additional key needs to be created at 10. The key parameter in this instance will determine the size of the Hypervoxels. At 0, set the key parameter to .4 and 1.5 at 10. Close the gradient panel when done. If you want the particles to grow larger, create more keyframes with larger size values. In this example it is not needed because we can use size variation to break up the particle sizes.

Set Size Variation to 100%, and Variation Scale to 20. This will cause a random sizing of the Hypervoxels going from the current size (based on the gradient’s distance from the rocket) up to 20 times the current size. Update the preview and you should notice the Hypervoxels taking on a more random shape growing in size as they get further from the source.

Now, you and I both know that steam is basically white, we’ve all seen NASA launch a shuttle. Try and explain that to a client who wants lots of "smoke" (smoke being the universal term for black sooty stuff). Watch Armageddon’s shuttle lift-off and compare that to a real launch to see what I mean. Let’s adjust the color of the exhaust. Open the gradient panel for the HyperVoxel Color, and again, select Distance to Object, and Rocket as the Reference Object. Set the ending frame to 30. Set the keyframe at 0 to 255, 144, 29. This will cause the source of our exhaust to be a fiery orange. The exhaust needs to quickly transition from a cooler yellow to a steamy white. Create additional keyframes at 2 (color setting 251, 255, 130) and 5 (color setting 255, 255, 255) (Figure 10).

Click to see larger image
Figure 10

The exhaust is still too dark for this to be convincing, the effect needs to be brighter. Open the Luminosity panel, again selecting Distance to Object and rocket as the reference. Set the end frame to 20, and create keys at 7 and 10. The source of the exhaust needs to be the most brilliant, so set the value at 0 to 500%, 200% at 7, 100% at 10, and 0% at 20. Use the gradient and update the preview window. The result might be too bright right now, but it will be fixed shortly.

Scale up the texture size to 150% and the amplitude to 300%. This will cause more billowing in the texture as well as increasing the overall size of the texture. Also, set the frequencies to 0, which will calculate for the best effect, and generate the texture faster.

Switch to Volumetric Advanced and change the Thickness to .15. The higher the thickness the shorter the distance light rays have to travel, resulting in faster render times. However, in order to compensate for the overly thick value, Density will have to be lowered. Using a thickness of .15 was the easy compromise. Change Render Quality to Expensive (try the different values to see which one you like best), and Illumination to Beer.

Remember waaaay back when we gave our Exhaust Light that pale orange color? Use that same color as the Ambient Color for the exhaust, increase the Intensity to 100%, and make sure Ambient Light is set to the Exhaust Light. A thick cloud will generally cast shadows onto itself, so why should ours be any different. Turn on Volumetric Shadows, and change the quality to Medium. By lowering this value we can further decrease the render time and still give the illusion that shadows are there. Lower shadow strength to 20%.

Whew! Seems like a lot of work, but walking through these settings should help in the understanding of how HyperVoxels work. It may seem very confusing at first, but once you understand how sizing, gradients, and texturing work, it’s quite easy to use. Close the panel and render the animation. While we have the time…

Your Render Times May Vary

Now the question you’ve been dying to ask… "How are the render times?" The short answer is "that depends." The longer answer is ,"That depends on how many particles you have, what settings you’ve applied to your HyperVoxels (volumetrics take longer), and most importantly how fast your processor is." If you want to remain competitive, you need at least a Pentium II 300+mhz with as much RAM as possible. Figure 6 took about 20 minutes to render at Medium Resolution, Low AA, with Skytracer and trace shadows turned on on a PII 200mhz 128Mb of RAM. Instead of HyperVoxel Doubler, NewTek should have made it HyperVoxel Quadrupeler. You can lower the render times by following Tip #4.

The Negatives

I really could find no real big negatives with this plug-in. It is fantastic. The plug-in file is fairly small (16mb), and considering the HV2.0 plug-in is delivered on CD, I would like to have seen some more examples of this plug-in in action in the form of animations, or scene files. Of course faster render times would be nice, but that will be fixed in the next version of LightWave.

Movie Time

Click here to download mpeg movie
Click the image to download an mpeg movie (300k)
and see HyperVoxel 2.0 in action

On Your Own

Now that you have the hang of creating a HyperVoxel rocket exhaust, go back and tweak the settings.

  • Try different colors, sizes, etc.
  • Try changing the blend mode to see which one you like better. A blend setting of none will cause a highly broken up smoke trail, Metaballs 1 will blend the particles together at their minimum, and Metaballs 2 will blend the particles together the most.
  • Create a highly detailed launch pad. Make Particle Storm exhaust shoot out from underneath and apply HV2.0 to that as well. Even better, have the particles fly toward the camera, enveloping the camera in rocket exhaust.
  • Replace the Particle Storm exhaust with a "stationary" cloud of particles. Add a NullObject and use it as a Texture Parent to get the smoke to billow.
  • Raise the thickness and lower the density to see if you can increase render time.
  • Instead of rocket exhaust, try creating various cloud effects (the reason I was excited about HV2.0 to begin with). Try recreating your favorite cloud effect. Not only is it a chance for you to improve your HyperVoxel skills, it’s a chance for you to get away from the computer and get some exercise.
  • Apply a lens flare to the Exhaust Light and envelope it over time.
  • Actually make your rocket accelerate over time by applying the following formula to the mathmotion plug-in in modeler: 0.5*(acceleration rate)*(time in seconds)*(time in seconds). Acceleration rate is calculated by taking the maximum velocity and dividing it by the number of seconds you want the velocity to change over. For example, if the maximum velocity is 400m/s and you want this to happen over 10 seconds, then acceleration rate would be 40m/s. The final mathmotion formula, in this example, applied to the Y-axis would be 0.5*(40)*(f/30)*f/30).


That should keep you busy for a while… Have fun!

HyperVoxels 2.0

Features: 10
Ease of Use: 10
Performance: 9
Documentation: 7

Overall Rating: 9

Ratings scale: 1 is horrible, 10 is perfect.

NewTek’s World Wide Web address is http://www.newtek.com

When not molding the minds of video production students at the American InterContinental University in Atlanta, Georgia. Stephen Schleicher creates graphics and animations for many video production companies. He can be reached at www.mindspring.com/~schleicher.