I was asked a question about how I drew the Dungeon in a Tin tiles recently, and unfortunately the answer had to be "I just kind of painted it how it looked like it ought to look", which isn't really very helpful! So I figured I could probably throw together a quick tutorial on how to create that style of room using textures and a bit of simple perspective work.
Here's the finished product, so we know what we're working towards - a garish house room with ridiculous carpet and stripy black and white wallpaper:
This took about thirty steps (outlined below) and used only a mouse, no graphics tablet.
I'm going to be using Photoshop (in my case, Elements 10, 'cause it's much cheaper than CS4!) for this, but I'm pretty certain the same result is achievable in several other graphics packages.
We start with a blank, white, square document for our square tile; it should be bigger (higher res, more pixels) than the finished graphic you want to end up with. Select the area you want the outside of your room graphic to occupy, and on a new layer, fill it black:
Hide this layer - we'll need it later. For now, though, create a new layer, and using the same selection, outline the selection with a pixel or two of black border. This will be the line that defines the top of your walls:
Next, shrink your selection by however many pixels you want the thickest walls to occupy on your finished graphic; in this case I'm using 50 pixels. Outline again - this will be the line that defines the bottom of (most of) your walls:
Now we need to find the centre of the room, which we'll use as a vanishing point. To do so easily, simply draw two lines from opposite corners of the document - the point that they cross in the middle is the centre. Draw these lines on a new layer, in red or some other stand-out colour, and we'll use them for guides for the next few steps.
(It doesn't matter whether your vanishing point is actually dead centre, as it happens - but if it isn't, it'll look like you're viewing the room slightly offset. Effectively the perspective will end up as if the viewer were hovering over the vanishing point, wherever you choose to put it.)
Next, we need to find the 'vertical' lines that run from the top corner of a wall side to the bottom corner of that wall side - these will define the corners of the room. To do this, simply draw more red lines from the vanishing point to the corner on your top-of-wall line - the outermost one. The sections of these new lines between the inner and outer wall lines define the corners of the room.
I've made this next picture display a bit bigger so you can see what I've done more easily. If you look by the doorway openings, I've drawn some extra horizontal and vertical lines to clean up the wall sides. Because the red line doesn't meet the exact corner of the inner outline - which is because perspective means the two walls are viewed from different angles - we need to choose which one of those two inner-outline lines is going to be our reference wall, find the intersection of that and the red line, and draw a new inner-outline line for the other wall.
Then we erase the bits we don't want.
Next, I've chosen a particularly tasteful carpet.
We can use the black-filled room template that we kept aside on a separate layer earlier to get a selection for the whole room area, and delete everything outside of that selection. (Invert selection, clear)
Next I've gone back to the free-texture sites and picked out some refined wallpaper:
This part is perhaps a little hard to put into pictures without a video, but what you need to do is align the top edge of your wallpaper graphic with the top side of the wall (the outer outline) and use that for your scale. Then we need to distort it in perspective to fit both the top and bottom lines of the wall, and also the red lines of the wall corners. (Photoshop has a perspective-distortion tool which is useful for just this - in Elements you can get to it by right-clicking a selection, choosing 'Free Transform', then right-clicking again and choosing 'Perspective'.)
The wallpaper having stripes on actually makes this a bit easier, because we can make sure the stripes line up with the red lines!
Then we trim the end of our distorted wallpaper section so that it only covers one face of the wall. It's important for a later step that you can easily select just one face of a wall at once, so make sure you keep each of these on separate layers!
Continue around the room to cover all the walls. At the bottom here I've found that my wallpaper texture isn't long enough to cover the entire bottom wall at once, so I've just drawn an extra red line down from the vanishing point so that I have something to reference for my perspective distort - then I can use the same red line and the end of the wall to fill in the remaining section.
(Of course, it would have been more sensible to start alongside one of the doorways and worked around so that my last section was alongside a doorway as well, so I didn't have to worry about the wallpaper matching in the bottom-right corner there - as it happens I was lucky!)
Now, it's important that you start a new layer again and don't keep any subsequent work on the same layers as these wall sections - as I said before, we need each wall section on its own layer with no other stuff in order to use them again for something else later!
After finishing off all of the wall sections, I've taken some mahogany wood texture, selected a thin strip and pasted it around the base of the wall to act as a skirting board. Since this is so thin, I've not bothered with the perspective distort - it would be a lot of work and nobody would ever be able to notice it!
However, we should zoom in and mitre the corner at a 45-degree angle, because that kind of thing can be noticed quite easily if it's wrong.
(You may not be able to see so easily, but I'm using a polygonal-lasso selection tool to select the 45-degree offcut so I can delete it.)
Here I've gone around the doorways and added wooden frames either side, using a similar technique to the perspective walls:
Our room is looking pretty room-like already, but let's add a couple of bits of decoration to make it more interesting. There's two particularly simple ways of adding decoration - flat on the wall, or seen from overhead on the floor. We'll start with a picture, on the wall - first we need to find a photo of a framed picture, and scale it against the wall. As with the wall sections, we'll scale it so that the top side of the picture fits in with the wall it's going to be mounted on, then we'll perspective-distort the bottom side onto the wall.
However, that picture looks a little flat for a framed picture - more like a poster - so we'll give it a bit more depth. For simple items like this, we can just make a copy, move it down a bit so we've got the right kind of distance between the 'front' and 'back' of our picture frame:
And then we simply copy and paste the same row of pixels a couple of times to join up the gap and make it look like a 'top' side:
For a bit of floor-standing furniture, we'll do a round table. We can start with a wood texture that looks like it'll make a good tabletop, and make a round selection:
Now, I skipped a step here, but I gave it the inlaid-gold ring simply by shrinking the selection a bit (to the outside of the ring), copying the selection, shrinking a bit more (to the inside of the ring) and then deleting the inside of the selection. Then I could modify the lightness of the copy - now just the ring shape - and flatten it down to the lower layer with the round tabletop on.
When placing it down on the room, you can give it the illusion of height by adding a drop-shadow beneath it. The shadow should be moved a bit towards the centre of the room, because like that it looks like it's directly below the table, but also in perspective - as if we can see the shadow only because the view angle allows us to see 'under' the table.
Experiment a bit, and you'll find that if you put the drop-shadow in a different direction, you lose the 3D effect!
As an aside: I didn't give an example here, but if you want to make more complex bits of furniture which you see from the sides and the top - like, say, a wardrobe against a wall - you could use a combination of these techniques. Select and position a rectangular area for the top side of the wardrobe, then draw extra red lines to the corners of your wardrobe from the vanishing point, and use these to perspective-distort graphics for the side/s of the wardrobe into place.
Anyway, by this point our textures are all in place, but the room is still lacking something - looking a little flat. So it's time to add some shading!
Here's where the preparation we made earlier in saving each wall section on a different layer pays off. Make a copy of each of your wall layers, and bring them to the top. As you go, lock the transparency and fill each one completely with medium grey (RGB 128/128/128 or similar).
Here's the first one:
...by the time we're finished, we have the following. It looks like one grey mass, but in actual fact it's several different grey masses on different layers - which is important!
Now, on each of those layers, with the transparency still locked, go around and - with a soft airbrush tool - dab a spray of white or black against the ends of wall sections.
At this point, it's worth saying - should you be wanting to deliberately light your room from one particular direction, you have to be careful about which walls you apply white spray to and which you apply black spray, because you don't want to mess up your lighting scheme. But if you just want a room that looks OK in more or less any alignment, for a tile-laying game or a modular board or something, you can do it more or less at random. The only thing to remember is to not spray two adjacent wall sections with white, because the whole point of doing this is to add more contrast and fake-shadow in the corners!
Here you can see I've gone for a semi-random approach - it's vaguely lit from the top-left, but I've not been too prissy about it.
The magic part is that we now go back and set all of those layers to have a blending mode of 'multiply' instead of 'normal' - and the greys and blacks turn into shading!
It probably looks too harsh to start with, so play with the opacity on the multiply layers to get the look you want. (Now you've done all the spraying of the highlights and shadows, you can merge all of these room-shading layers into one to make it easier to play with the blending modes and so on, we don't need them separate any more.)
This is with an opacity of around 50%:
Next, we need to add a bit of shading to the floor as well, so we can start by duplicating the carpet layer in the same way that we've duplicated the wall layers. In this case we need the new layer to be just above the original carpet-texture one, because we want it underneath all the wall-texture layers and everything.
This time we make it completely black:
Then with a massive soft-airbrush tool, we spray a single blast of white into the very centre of the room:
Once we turn this layer to multiply, and again play with the opacity a bit, we get a nice room-space-defining gradient across the carpet.
All there is left to do now is shade the background black (or whatever). Create a new layer right at the top of your image, grab the selection from your very first hidden room-area layer, invert, and fill with your shade colour.
Trim the image to suit, and you have your finished room tile/graphic/whatever!
Heartfelt thanks for the detailed and informative lecture! Wonderful details! Well done, and again, thank you!
The persepctive I maybe, might've, been able to handle, but the little things I would never have figured out like the blob of light in the middle really make this a stand out tutorial. Nice job.
Very nice of you to share this good info, i'm sure a lot of new artists will appreciate it!
Agreed, it's been very helpful for my first time making 2.5D for a game
John "Omega" Williams
I wish there was a program that automated or at least simplified the process...