Matte painting master Sarel Theron reveals how you can create a photo-realistic 3D scene from a 2D image in a matter of minutes.
2.5D camera projection (also known as camera mapping or front projection mapping) is a technique often employed in the movie industry to give flat two-dimensional matte paintings the appearance of being three-dimensional, allowing for a certain amount of camera movement and perspective change.
The concept of camera projection has been around in analog form even before the advent of CG and has been used to great effect by pre-digital filmmakers, such as Ray Harryhausen.
It is a very powerful technique that doesn’t require any complex modelling, lighting or long render times. It can be created quite simply, and multiple solutions linked together for more complex set-ups.
01. Start with the base image Heliopolis.jpg included on this month’s CD or use one of your own images. (Be sure to use a photograph or painting that has reasonably angular geometry, which will make identifying perspective lines easier).
Our first step is to create a simple geometry that roughly approximates the matte painting or photograph. We’ll start off with a simple single plane projection using only one projecting camera.
02. Open LightWave’s Modeler and load your 2D image into your front viewport by going to Edit > Backdrop Options and select Image > Load Image. Set your Image Resolution to its maximum and select the size you want it displayed at.
When you’re doing a camera projection based on a photograph, make sure to record the actual measurements of your subject, your position relative to it and your camera zoom settings. This will help you create more accurate and believable geometry. With a subject such as this fictional matte painting, you will just have to make an estimate of the actual dimensions.
03. Start building your environment by creating a simple shoebox shape with your Box tool that is open at the top and in front. The model I created here consists of only a flat-floor plane with three walls, which is all we need for now.
You can flesh out your model a bit more if you want, but with camera projections, simple geometric shapes are usually fine. Once you have created your object, subdivide it a few times to prevent OpenGL errors from occurring during projection and save it as Heliopolis.Iwo
04. Open Layout (F12) and select the Image Editor (F6). In the Image Editor window click on Load and select the Heliopolis.jpg matte painting. Open the file and you should see a small thumbnail appear in the little preview window.
05. Now select Windows > Compositing Options. In the compositing options window go to Background Image and select the Heliopolis. jpg. Again you should see a little preview appear in the window.
Close the compositing options window and select Edit > Display Options (shortcut D). Go to Camera View Background and select Background Image. It’s also a good idea to disable the grid from this panel as well. With the preferences window still open select OpenGL and set your OpenGL Textures as high as your graphics card can comfortably handle.
06. Switch to your Camera View. The image you selected should now be visible and filling the entire screen. To correct the aspect ratio distortion select Cameras then Properties. In the Camera Properties window select Resolution and set this to a widescreen aspect ratio. Before closing this window, rename your camera ‘Projection Camera’.
07. The next step will be to load and position the Heliopolis.Iwo object. This will require some camera zoom adjustment as well as tweaking of the model’s scale. Go to File > Load > Load Object and select your Heliopolis.Iwo model. Load the object and set your render level to Front Face Wireframe. The background image should be clearly visible through the Wireframe object. Do not move the object at this stage.
08. The trick is to match the geometry of the object as closely as possible with that of the background image. Select your camera and position and zoom it to line up the object as closely as possible. Select the object and use the stretch, position and rotation modes (scroll wheel or tap the spacebar) of the object to fine-tune the alignment. The perspective on the background image is not perfect; so don’t worry about getting the alignment absolutely right.
09. Select Surface Editor (F5) and set your Luminosity to 100 per cent and your Diffuse to 0 per cent. Click on the little T button next to the Colour Channel and set your Projection to Front. Ensure that you tick the Fixed Projection box, deactivate Pixel Blending and set Tile Width and Height to Reset. Now select Image > Load Image and choose the Heliopolis.jpg file. Close your windows and set your render level to Textured Shaded Solid.
10. Ensure that you are still in Camera View and you should see the image projected on the object. The image should blend in perfectly with the object. If you see any distortion of the image you may need to subdivide your object further.
Higher subdivisions will improve the viewport display of textures but will not affect the final rendered result. If your scene is looking very pixilated, go to Edit > OpenGL Options and increase the size of your OpenGL Textures. The beauty of using camera projection is that the lighting and shading information is already present in the 2D image, and negates the need for a lighting set-up.
11. From now on, don’t move your object or Projection Camera again. Select your Projection Camera and Clone it. Name your new camera ‘Render Camera’. You can now use your Render Camera to move freely around in the scene and marvel at the 3D effect that the projection generates.
12. You will discover that there are certain limits to your camera movements. Extreme camera angles will result in the texture stretching. Generally the closer you keep your Render Camera to your Projection Camera the more accurate the projection will be.
If you do need more extreme angles a patch can be applied on the problem area using another projection camera with an alpha layer. Keep in mind that since this is essentially still a 2D image, you can’t, for example, turn around and view the image from behind.
13. Once you have played around with a few different camera viewpoints and discovered the limits of the projection you can start setting up your camera move. If you are not sure about a certain angle, do a quick single-frame render (F9) and see how it will look in the final output.
Set up your keyframes and do a playback of your camera move. If you are happy with the result you can start the rendering process and save your output to a file format such as Targa for further editing and tweaking in a compositing programme such as Adobe After Effects.
14. Once you’ve mastered the basics of camera mapping, you can go back and try using more than one projection plane. It helps to think in terms of foreground, middle ground and background. For example the background (usually the sky) can be projected separately onto a simple flat plane.
You can even project an animation sequence onto it in the same way you would a still. Other effects such as moving particles can also be added. Included on the cover CD is a short video clip showing this camera projection technique in action.
If you plan on creating a projection using multiple planes, keep your layers separate when creating your matte painting in Photoshop. You may also need to extend some of your middle and background layers that aren’t normally visible, but which may show during a camera move. See my tutorial in Digital Arts September 2007.
Who: Sarel Theron is a matte painter living in Cape Town, South Africa.
Software: NewTek LightWave 3D
Time to complete: 30 minutes
On the CD: All files for this tutorial can be found on the cover CD.