(Note: this tutorial uses Blender 2.49. The same principles should apply to 2.5. I'll update this tutorial when 2.5 becomes the stable release)
The default scene in Blender looks like this, a plain cube in perspective.
The first things we want to do is change the camera to Orthographic. Right-click to select the camera, switch to the Editing Panel (F9) and click the button "Orthographic".
In the result you'll see our cube is now in the correct perspective. In isometric games, lines perpendicular to the ground plane should appear parallel to each other. Put another way, Orthographic means objects further away do not appear smaller.
Next up, we want to set the camera angle for perfect isometric mode. In video games when we say "isometric" we usually mean that the base tile size is exactly 2x as wide as it are tall (e.g. 64x32). While the camera is still selected, hit "N" for the "Transform Properties" menu. The settings are RotX = 60, RotY = 0, RotZ = 45. And while we're there, let's put the camera in a predictable location: LocX = 5, LocY = -5, LocZ = 5.
If you measure the top quad of this rendered cube, you can verify that the pixel width is exactly twice the pixel height.
We want to set up the Render Size to exactly match our desired output. To keep this tutorial simple, let's replace the default cube with a default plane. (Select the Cube and delete. Add -> Mesh -> Plane).
Let's change the Render Size. Change to the Scene Panel (F10). Set SizeX = 64, SizeY = 32. While we're here, let's change from the default JPG output to PNG, and change RGB to RGBA.
Now the PNG is the correct size, but the tile itself is obviously not.
Now we tweak both the Camera LocZ and Lens Scale until the tile fits the output area.
Here's the way I do it: I change view to Camera (NumPad 0). The outer dotted line is what will be rendered. With this as reference, tweak the Camera LocZ and Lens Scale until the tile takes up the entire render area. Camera LocZ is in the Transform Properties menu (select the camera and hit N) and Camera Lens Scale is in the Editing Panel (above where you can choose Orthographic).
The output is a bit blurry. It might be hard to tell now, but let's apply a nice tileable texture to the plane:
Definitely blurry. For small, precise tileset sprites we want a different anti-aliasing filter. In the Scene Panel (F10), change the filter from Gauss (heavy blur) to CatRom or Mitch (CatRom shows more detail but is a bit noisy; I like it for the gritty textures I use in my game).
The result is much sharper:
(If you want it even sharper, try disabling MipMap and Interpol in the texture's "Map Image" settings).
If you zoom in very closely at the rendered file, you'll see a very slight blue outline around the tile. This is because, by default, an alpha-layer render (RGBA mode) blends with the Sky color for translucent pixels (0 < A < 1). This blue will show up when you're placing tiles together. You need to change from "Sky" blending to "Key" to keep the edges of your tile looking correct.
Finally, we need to have even lighting on the tile. If you look closely, the far end of the tile looks darker than the near end. Default lamps in Blender illuminate depending on distance from the light source. If you change the lamp type to Sun then illuminance does not diminish by distance. With a Sun light source you can choose the general angle of the light. This sun light angle should (typically) be the same for all of your tiles and sprites. (my OSARE rpg currently uses approximately RotX = 28, RotY = 25, RotZ = -12 to cast shadows back and right).
Tile tile has even lighting now:
Now, let's load up the tile using the open-source map editor Tiled.
The tiles fit together properly and look crisp. Of course the tiles are repetitive, so we'll want to use a variety of tiles.
But those are the basics! Save your blender file as a base. You'll reuse this basic scene each time you create new tiles. (Click here to download the .blend file)
When it's time to add tall tiles you'll be tweaking the render size, Camera LocZ, and Lens scale again. Here's an example: I added the default cube back and want to make that into a tall tile. 64x64 won't be tall enough to hold this block so I'll bump the render size to 64x96 and move the cube base to the bottom of the output. See the screenshot for example settings.
And in Tiled. (Note, in this preview I disabled OSA/antialiasing for the tiles. No OSA might actually help some kinds of tilesets)
Go to OpenGameArt.org to see a full set of these brown flagstone tiles.
Written by Clint Bellanger. Released under CC-BY-SA and the GFDL.