|
Blast off with
Hypervoxels 2.0
By
Stephen
Schleicher
Since LightWave 3.5 Ive 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
werent '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 wasnt
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 youve 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 dont know if HyperVoxel 2.0 textures go all
the way to infinity or not, I havent 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

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 wasnt 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 youll
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 shouldnt
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 wouldnt 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.

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 its 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 (thats
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.
Lets 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 gradients
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, weve 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
Armageddons shuttle lift-off and compare that to a real
launch to see what I mean. Lets 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).

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, its quite easy to use. Close the panel and render
the animation. While we have the time
Your Render Times May Vary
Now the question youve 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 youve 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 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, its 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.
NewTeks 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.
|