Update:
Orthographic projection has been fixed in the source code (Thanks Ben!) so the “True Isometric” example below should function properly in Blender 2.49 and later.
Original:
Recently, PlantPerson and I were chatting about the potential of isometric games in Blender. When Plant suggested that it might not be possible to make a proper isometric camera in Blender, I decided to take it as a challenge
After about half an hour, I had produced some results that I was pleased with, but I also ran head on into a bug with the orthographic camera projection in the game engine. Anyway, I thought somebody somewhere might find this information useful, so I decided to share my findings. But first, a bit of quick background…
Defining ‘isometric’
“Isometric projection” is a strictly defined geometry term with some very specific requirements. While many games use isometric projection, it is common for games which use dimetric or trimetric or even oblique projection to be called “isometric,” which is not accurate. Sometimes the term “isometric” is also confused with the much more general term “orthographic.” Isometric projection is a special kind of axonometric orthographic projection in which, if you were to look directly at a corner formed where the three axes intersect, the measure of the angle between any two axes would be 120 degrees. The image below illustrates this principle.
A cube displayed in isometric projection
Setting Up a True Isometric Camera
To set up a true isometric camera in Blender, open a new scene and select the camera. Press the N key over the 3D Viewport in order to bring up the Transform Properties window. Now change the rotation settings as follows:
RotX: 54.736
RotY: 0.000
RotZ: 45.000
Now enable the “Orthographic” button in the Edit context of the Buttons Window.
That’s it! You now have a true isometric projection camera for use in the Blender Game Engine. (This is fixed in Blender 2.49) There is one significant bug, though. (In Blender versions prior to 2.49) If you move an orthographic camera in Blender’s Game Engine away from the origin (the point 0,0,0 in the 3D world), the camera’s scale factor changes. If you move in the negative X or positive Y direction, the scale factor will decrease (this looks like zooming in). If you move in the positive X or negative Y direction, the scale factor increases (this looks like zooming out). So a true isometric camera will only work properly in Blender’s Game Engine if you either do not move it, or if you give it an opposite scale animation to cancel out the effects of the bug. (Edit: I did make a bug report about this, BTW.) (As mentioned in the update at the top of this post, this problem is resolved in Blender 2.49 and later.)
The Next Best Thing: A Pseudo-Isometric Camera
In the Wikipedia article on orthographic perspective, there is an interesting image which demonstrates how a perspective camera becomes orthographic when given an infinite focal length and distance. Unfortunately, you cannot give a camera in Blender an infinite focal length, but you can get reasonably close by raising the lens setting to its maximum (250.0).
If you intend to move your camera around, and you don’t want to mess with canceling the scale factor bug, you might find it easiest just to fake an isometric projection using this method. As you can see below, the results are very similar.
Above: True isometric projection using an orthographic camera
Below: Pseudo-isometric projection using a perspective camera
Here are two versions of the maze demo in the pictures above, which demonstrate the two different methods:
Isometric-Orthographic.blend (220 KiB)
Isometric-Perspective.blend (220 KiB)
Enjoy!
-blendenzo