Most plugins tend to distort the image
after it has been rendered. This is all well and good, but the distortion
process can create artefacts in the image, and also does not give
a faithful representation of the effect. Without having to download
a third party plugin, the same effect can be pretty much reproduced
in Photoshop by using the Spherize Filter.
The fish-eye lens effect greatly distorts
the image around the sides of the frame, so we can view the scene
up to 180 degrees. It’s a technique that has been greatly
used in popular culture, from music videos to film; mainly used
to exaggerate an object or person’s features – namely
a finger pointing at the camera so the subject is almost rubbing
the inside of the TV screen, or is used as an alien’s point
The technique is quite simple for standard
photography. The large lens is fitted to the camera to refract the
light into the aperture to allow for wide-angle photography. This
is normally around a 16mm focal length, but if you try to emulate
this in your 3D package, you will discover that there is no lens
distortion whatsoever. This is good for some scenarios, but not
so great for others.
As we need some lens distortion and
to be able to see completely 180 degrees around the camera, what
do we have in our 3d package that could do this? A sphere perhaps?
That’s totally reflective? The solution is very very simple,
yet to get the camera setup exactly how we want it so we can easily
control it directly within the Viewport is going to take a little
bit of work (but not much).
As with setting up any animation, we
need to see what the end result is going to look like. Therefore
our main camera should be set with a wide-angled lens and positioned
accordingly. As previously mentioned, to create the fish-eye effect,
we need a reflective spherical surface. So create one. Create a
sphere and position it exactly where the camera is situated. Ensure
it does not cast or receive shadows from any object within the scene.
Add a raytraced material to the sphere that has no colour and 100
reflection and assign it to the sphere. Link the sphere to the camera,
and play the animation – make sure that the sphere does not
pass through any surfaces or get clipped by any other geometry,
If this is the case, reposition the camera at these culprit frames
and try again. As the sphere is now centered and linked to the camera,
it should not be touched; only the camera is to be moved.
This is all well and good, but as the
sphere is encompassing the camera, with it’s normals facing
outwards, how to we view the reflected scene with this camera? Answer:
we don’t. The first camera is cloned along it’s Z-axis
and positioned outside the sphere, facing in the opposite direction.
The position of the second camera should be checked in one of the
Viewports to ensure no clipping is occurring and that the sphere
completely fills the Viewport. This second camera should be linked
to the first.
This entire shooting match ensures
that you can animate your scene accordingly with the first camera,
and then render from the second. This will give you a fish-eye effect
that is an exact mirror of the desired result. Therefore a little
post-processing is required to flip the image back the right way,
but apart from that it’s a simple procedure. Happy distorting!
||Open the fish-eye_start.max file
included on the cover CD, or open one of your own files. Create
and position a camera where you want the scene to be viewed
from. You might wish to set the Lens to 16mm as described in
the opposite text to give an accurate representation of what
is to be rendered.
||Create a Geosphere primitive and
set it’s Segments spinner setting to 8. Click on the Align
tool and select the Camera as the object to align to. Select
the X, Y and Z position alignment and align all orientations.
Link the Geosphere to the camera.
||Move-copy the camera along it’s local
Z-axis. This will create a clone of the camera on the opposite
side of the sphere. Change the copy’s lens settings to
35mm. Change the Camera’s type to Free Camera and rotate
it along it’s local Y axis 180 degrees so it is pointing
at the sphere. Make the camera’s view visible in a viewport
and dolly it so the sphere completely fills the frame.
||Link the second camera to the first. Animate
the first camera as necessary to show off the scene and/or the
effect by moving around the scene and in close proximity of
other objects. Select the geosphere and eclude the object from
casting or receiving shadows.
||Create a new Raytrace material and label it
“Mirror”. Assign this new material to the Geosphere
primitive. Set the Specular Level and the Glossiness to 0. Amend
the Diffuse swatch colour to black and the Reflect swatch colour
to white. This ensures that the material is 100% reflective.
Exclude the object from being reflected in other raytraced objects
(if any other reflective objects exist in the scene)
||As the resulting renders will be a mirror of the original
viewport, any images or text contained in the scene will obviously
be mirrored. If you feel it is necessary, you should mirror
the resulting render to achieve a result comparable with that
you originally saw in the first camera’s viewport that
we used as a reference.
||And the final image. The edge distortion can be reduced by
repositioning or dollying the second camera in slightly. Again,
the image has had to be mirrored to achieve the image viewed
from the first camera.
If the scene is too pixelated or too
aliased to your liking, ensure supersampling is enabled, or if the
worst comes to the worst, flip on raytrace anti-aliasing, but be
prepared for render times to dramatically increase! There are settings
contained within the anti-aliasing window that can be altered to
speed up renderings, but be warned that this may degrade the qualityo
the overall image, especially if other objects are raytrcaed in
Always ensure that the reflective sphere
does not intersect with any other geometry in the scene. If so,
amend the positioning of the camera at those specific frames, or
reduce the size of the sphere. Because the sphere’s size has
been reduced, you will need to amend the position of the second
camera so the sphere fills the frame again.
As opposed to mirroring every single
frame in an animation, create a simple Photoshop action to mirror
every single frame. This is a simple operation which will save time
by processing every frame in the sequence… unless you have
a post-effects program that can perform this operation automatically!
As the rendered frame is completely
filled by a single object, additional lens effects such as z-buffer
depth of field and image motion blur will not work. However, their
counterparts object (and scene) motion blur will work, as will camera
depth of field as these work on a multiple-pass method.
World magazine, Issue 34, January 2003.
Draper, January 2002. Reproduction without permission