Camera Projection is all about finding perspective. In Blender we have tools like BLAM for camera projection. BLAM can be great for squarish objects, but when the scene has more organic shapes and forms, don’t blame BLAM for wasting your time. BLAM isn’t designed for all camera projection cases. Most of the time, manual camera projection is faster and more accurate. Manual camera projection starts with better understanding of perspective, which is the fundamental of all visual art-forms. Let’s hop into the details.
What you need to know?
The following terms are just the basics, so there is a good chance that you already know them:
Horizon line or view height: The apparent line that divides the earth and the sky.
Perspective lines: The lines that point toward the horizon at different angles.
Vanishing point: The point where the angular perspective lines of an object visually continue past its edges and eventually converge on the horizon line.
Manual Camera Projection steps:
Setup the camera
- Reset camera position and rotation | (Alt G > Alt R),
- Translate camera up 5 unit in Z | (G > Z > 5),
- Add an empty at the (0,0,0) | (Shift A > Empty > Plane Axes),
- Parent camera to empty | (RMB Camera > RMB Empty > Ctrl P > Parent to Object),
- Adjust camera end clipping to 10000 (10km) | (RMB camera > Properties window > Camera Object Data > Clipping End > 10000).
This setup is to make us control the camera from the front and not from the origin point. This can also be done with 3D cursor as pivot, but it is harder to position 3D cursor in blank 3D space.
Setup viewport/3D View
- Make the grid floor big | (N > Display > Grid Floor > Lines > 1024)
- Change scale to 2 or more. Note: Horizon is approx 5km as seen from low altitude.
This process is done to enable us to align horizon of the image with the one in the viewport. You also need this to align the floor.
Setup the image
- Import image. | (N > Background Image > Open)
- Change axis to “Camera.”
- Image alpha, 0.5 is good.
- Image to Back (you may need to switch this front or back based on your view)
- Change aspect ratio to “fit” [extremely important, else you’ll waste your time building scene from a stretched image.]
- Adjust render size to image size. | (properties window > Render tab > Set X/Y size ) [Optional]
Approximate camera focal length
- Often times the default is a good start.
Tip: Real photos have a fix perspective without shift. To challenge yourself, rebuild an anime background with perspective shift and distortion.
Tip: For serious camera projection work, camera sensor size, lens type, focal length & shutter speed must be determined. Please refer to your camera manual for sensor size & lens type, or look up for camera reviews online. Focal length & shutter speed can be obtained from image EXIF.
Find the floor or the horizon (View height) or a wall
- Select the empty,
- Rotate X to align horizon line,
- Increase height if needed.
You can sketch the position of the horizon on the image, but make sure you save it to another copy. Finding horizon or view height is easy. When you see lines converge to a flat horizon line, the view height is close. Another way is find the top side and the bottom side of the object in the image. View height is when both top and bottom start to disappear.
Note: The green line is image’s horizon. View Height (see Z) is approx from the vehicle height where the horizon line crosses it.
- Select the empty,
- Rotate X to align horizon line.
- Now rotate around the Z axis, make sure the grid on the image align with floor.
- If only 1 side is aligned, increase or decrease the height.
Often this method is used when you are not sure where the horizon is or you have a 3 vanishing point perspective situation. This is the best method when the image has some camera roll. A lot of times the floor isn’t a floor, it can be a beam frame, or a ceiling block that is parallel to the floor.
Note: This example has quite a bit of camera roll. Align the left edge first then adjust the rest.
This process is the same as the floor method, but your aim is to align the bottom corner of the wall to the grid.
- Get bottom edge aligned.
- Add a grid and rotate 90 degrees.
- Delete the face only. | (Edit mode > X > Only Faces)
- Align the grid to match image.
- Adjust empty’s height to add or remove wall skew.
Tip: The grid floor is your friend.
Tip: Properties sidebar > Transform, is great for controlled transform.
Tip: There are many other methods to align the camera (the image). Basically any geometry that has the approx shape of the object in the image will be useful.
Build the scene
When building objects inside the scene, you need to have 2 viewports. The 1st is for viewing from camera, and the second is free moving 3D viewport to be able to judge depth while modeling.
Tip: Camera projection is never perfect, always a just good enough process.
Note: The only perspective information that I have here is the view height, it can be seen on the rocks on the right bank.
Note: View Height is an approximation, we cannot get the precise data. Since POV is the highest point, the conifers after the dip must be lower than us. Note also the red lines, the mesh under it has the same width.
Note: Build the scene with another viewport, not many VFX software can have 2 synced viewports.
Overall mesh view.
Note: Camera Projection project done by Amir for Mercy Malaysia.
Note: Dolly Zoom (also known as Vertigo Effect) with camera projection
Inside Domino Sugar Factory by Jason Eppink | CC-BY
Narrows nature by Jon Sullivan | Public Domain
Utah Sugar Company | Public Domain
Icefield Parkway Scenery – Rocky Mountains, Adam Jones, Ph.D. | CC-BY-SA
Waterfall by Peter Rivera Stamford, Connecticut| CC-BY
Jacob’s Ladder in Watkins Glen State Park By Beyond My Ken | GNU Free Documentation License
Beach ball by Juanedc from Zaragoza, España | CC-BY
Planned & written by Light BWK with Amir‘s technical help. Extra editing by Lee Posey.