Isometric tile output...

I think I’m really narrowing in on it. I have a scene setup using only a cube object which can, of course, have tiling textures applied to the three visible faces. Here’s a screenshot of my set-up:


Pretty much all of the relevant information should be in that shot (along with the world’s ugliest brick texture image), but here’s a breakdown of the important stuff:

Under render tab / dimensions, X is 128 and Y is 256. Keeping it to powers of two.

Note that the camera has been positioned at X 10 and Y 10. The Z value was done pretty much by eye to get the bottom corner of the cube slightly past the camera border. The camera’s orthographic scale was set so that the sides of the cube are very slightly outside the borders of the camera as well.

The above camera settings are dependent on the notion that the cube will be scaled to 2 Blender units on all axes. I did it this way so that I could have the X and Y of the cube at 0, 0 and extended one unit front, back, and side-to-side. The origin of the cube has been set to the center of the bottom four vertices so that it extends two Blender units along Z. Obviously, my handling of the cube’s scale and origin are a matter of personal preference, but if you want to set this scene up for yourself, the math is already done for you with the cube as I’ve made it.

Next is the matter of handling two problems caused by anti-aliasing: semi-transparent pixels along the edges of the cube and the color bleeding caused by the Gaussian pixel filter. Go to the “film” settings on the render tab and check “transparency” to begin.

You can get away with setting the Gaussian width to .001 (the minimum value) to get rid of all anti-aliasing, but this will almost definitely lead to unsightly artifacts in the cube’s texture. Unfortunately, we can’t keep it set to the default of 1.5 either as this will cause the edges of your cube to be darkened due to bleed after we’ve boosted the contrast in the alpha channel. The best compromise I’ve found so far is to set this value to .4, which is enough to keep the invisible darkness outside of the rendered pixels from bleeding in and still have some smoothing within said pixels. However, this isn’t quite low enough to get rid of all of the semi-transparent pixels around the edges.

That’s why I used this very simple node set-up:


You can see that the black slider is set to .499. The white slider is set to .5, which leads to a smack-in-the-middle, full-contrast alpha channel which can then be plugged in to the appropriate slot on the composite node. Easy peasy.

Now let’s talk materials. A diffuse shader with a sun lamp on scene should work, but I want full control and no variance to the lighting across my faces, so I opted for an emission shader with some trickery to fake a shadow:


The mapping node can be adjusted if you wish to make your scene appear to be lit from a different angle, of course. It’s hard to tell from the screenshot, but that untextured emission shader’s color is actually 0, 0, .01 so that it will have a blue tint. A very little bit of color here goes a surprisingly long way.

Below I’ve put together an image of the resulting render. The top-left part of the image shows a render of the cube by itself. The rest is a screenshot taken from a stock-standard code that I wrote in Love2D to display the cubes as a 6x6 tile map. No editing was done other than to remove the background color from the Love window.

It was a lot of work getting here, but this should go a long way toward speeding up the process of making isometric tiles for use in 2D games. If you have any questions, suggestions, or just plain know a better way of doing this, I’m all ears. I hope that this helps at least someone.

Interesting. I’ll have to try this out. What happens when you use a different tile texture?

As long as it tiles, any texture should work. I used the brick texture specifically because it’s tough to tile isometrically. Also note that each of the faces can have a different texture so that you can, for instance, have grass on top and dirt on the sides.

I finally got to sit back down and work a while and I threw together a new texture to test with the set-up. I went with a grassy dirt since I mentioned that as a specific example above.


The setup looks pretty accurate from what I can tell, which means that this would be a real boon for 2D game developers (isometric sprites, especially animated ones, are not the easiest thing to create if they’re not boxy in nature).

Thanks, Ace. I know what you mean. In fact, my search for a good setup was what prompted me to finally just roll up my sleeves and do it myself. I love the isometric look, but I just don’t have the patience for the endless pixeling that would otherwise come with it.

Not only that though, but theoretically, Blender could then allow for other perspective schemes such as what is seen in Simcity and Commander Keen without the time consuming pixel-pushing.

Indeed it could, though I’ll leave that to someone else. I would like to tackle a setup for hex-tiled games someday, though.