Sunlit side higher | Both sides equal | Shaded side higher | |
2 pixel sunlit side,
2 pixel shaded side |
|||
1 pixel sunlit side,
1 pixel shaded side |
|||
2 pixel sunlit side,
1 pixel shaded side |
|||
1 pixel sunlit side, 2 pixel shaded side |
Likewise, if you use one of the joins where a 1 pixel side meets a 2 pixel side at an uneven height, then you could wind up with an angle that looks too sharp, especially if you are left with one lone pixel inside the angle at the near corner of the roof:
In both these cases, the effect is not necessarily "wrong"
- it all depends on what you are trying to create. The important thing
is to be aware that the exact placement of the two sides in a corner can
be crucial. If you are not satisfied with the results you get, you can
try simply shifting one of the two sides up or down a pixel or subtracting/adding
one pixel-width of wall to either side and come up with a whole new corner.
"Tweaking" the join will also allow you to add or subtract a little space
from the rooftop as necessary:
Another important point to remember is that if the top
of your wall uses a certain kind of join, then the bottom of the same wall
should use the same kind of join, especially if the wall is a short one:
If you do decide to make the top and bottom join different, then make sure that there is some kind of detailing, or even a tree, to break up the line between the top and bottom of the building so the viewer does not notice the discrepancy:
If all buildings were just big rectangular boxes, SCURK (and architecture in general) would be very boring (look at what they built in New York City in the 60's and 70's). Fortunately, real buildings are full of angles and corners. Modeling those angles is half the fun of SCURK. If you can "build" a 3-dimensional visualization of your building in your mind, then transferring it to the computer screen is rather easy. If not, you just have to be extra careful as you follow the zigs and zags of the building's surface while drawing it in SCURK. Most angles in real life actually are at 90 degrees, so the joining techniques that I outlined above work very well. However, you're not always going to see the join at a neat 45 degree perspective and there are often as many "inside corners" as there are "outside corners."
Pretty obvious, right? Well, it is. The only part that can be difficult is what happens when one wall obscures ("hides") another. Let's continue drawing the wall in the previous example to make a "T-shaped" building:
For a "baseline" on where to place this pixel, look at the corresponding wall join (the inside corner) on the other side of the leg of the "T". Looking from left to right (from the "away" wall to the "towards" wall"), the join goes over one and down one. So, logically, the same join on the hidden wall side should go one up and one back:
Shifting the "crucial pixel" over even by one changes
the building quite a bit (remember every pixel
is crucial!). And often you will want to shift this pixel deliberately,
in order to make your building look better. In this particular case, I
think that the leg of the "T" looks wrong... it looks as if it is lower
than the base of the "T", as if that entire wing was built shorter. The
solution is simple - shift the "crucial pixel":
Any of these shifts work well |
Nevertheless, I myself often get lost and don't know where to start or end a particular wall. Here's where I use a modification of the wireframe technique that really helps in placing walls (wireframe is when you drawn only the outline of a wall). Let's look again at my T-shaped building:
I often draw the wireframe "guideline" in a completely different color (pink is a good choice) in order to keep it distinct, so that I know that it is a guideline and not an actual part of the building. Now that I have the guideline drawn I can complete the wall in one of two ways. I can count over 6 pixels same length as the other side of the "T") and draw the vertical part of the wall:
Alternatively (especially on very big walls which are a pain in the butt to count), I can copy the other corresponding section of wall and transfer it over, carefully matching up the corner of the wall with the "crucial pixel":
Obviously, I made a total mess of the leg of the "T" - no problem, though. Simply remember (beforehand!) to make a working copy of this leg onto a blank part of your tile (or onto another, blank, tile if there is not enough room) and then copy it back on top of the building:
Either way, now erase the guidelines, fix the colors (with the <fill> tool), complete the final roofline, add any "cheats" necessary, and you're done! This wireframe method gives you the most "accurate" placement of the hidden wall. It is especially useful for large structures, where I often draw most of the walls entirely as wireframes and then copy and fill to my heart's content:
Something that you may have noticed by now in SCURK is that the big things are relatively easy while the little things are difficult. Case in point - one-pixel-wide walls. These walls occur rather often and are truly difficult to draw because of the corners. Let's look again at the building in the example up above. The center of the facade juts out one pixel, leaving a long 1-pixel-wide white wall:
Contrast effects will help you to downplay any "awkward" aspects of the corner (or highlight anything you want to emphasize, of course). Notice that in the building above, I drew the lighter rooftop pixels up against the wall corner pixels so that these pixels all blend together a bit. Also, notice that the shadow cast by the wall on the other side of the facade conveniently allows me to differentiate between the center section of the facade and the far wall. If it weren't for this very important shadow, you wouldn't even know that there is a "hidden" one-pixel wall and that the facade is stepped back again from the center section. (Yes, strictly speaking, the visible one-pixel walls should have shadows on them also; but I need the white in order to make them stand out - sometimes I'll make this type of wall +1 or +2 darker though to represent the shadow.) As always, one pixel makes a big difference - notice that the shadow only starts one down and one over (a 45 degree angle!) from the top of the center section:
Notice also that the one-pixel wall is "sunlit," even though it is on the shaded side of the building. Strictly speaking, the visible one-pixel walls should have shadows on them, but I made them white like the sunlit walls in order to make them stand out. However, depending on the building, you may not want to draw the "sunlit" one-pixel wall quite as light as the "true" sunlit walls (give it a +1 or +2 contrast). For the opposite case, a one pixel wall drawn on the sunlit side, things are a little simpler. This wall should be drawn as shaded, in the same shade as teh otehr shaded walls.
Light and shadow are even more crucial when you are drawing an "inside" one-pixel wall, for instance in an indentation on a facade. Look at the brown building in the left-hand corner of the tile below:
Overall, the most important thing to remember about this kind of wall is that it is always visible on the left-hand side of an indentation on the left side of a building (the sunlit side), and it is always visible on the right-hand side on the right side (shaded side) of a building. The inside wall should throw a one-pixel-wide shadow to the right. Where the wall is hidden, it will still throw a shadow, so don't forget it! Sometimes, in fact, you won't even want to draw a pixel wall at the indentation because the indentation is very shallow. In this case, draw just the shadow to suggest the indentation, like inside the porches in this building:
Again, this may all seem like nit-picking. As you SCURK, however, you will soon find that these one-pixel walls and narrow shadows are incredibly important. In one of my own "personal best" tiles, the MesseTurm, they are the critical element in defining the tower:
As you can see, the one-pixel walls emphasize the vertical lines of the tower, a technique which is identical to one used by real-world architects (heheh, well this is a model of a real-world building in Frankfurt, so what did you expect?)
One last subject for this page which may or may not belong
here - rooflines. These are the diagonal lines that outline a rooftop (especially
flat rooftops). You could consider them to be horizontal one-pixel
walls:
These very short walls are, in effect, the reverse side of the walls that make up the sides of a building. Just as vertical one-pixel walls define the sides of a building, they are critical in defining the overall top-view shape of the building, even thought they are no more than a diagonal line. Once again, shadows are very important, the roofline will cast one or two pixels worth of shadow onto the rooftop itself (if the roof is flat). I often make the shadow rather long, using contrast blending to make this shadow tie in with the rest of the rooftop:
As you might be expecting by now, the the real tricky
part with rooflines are the joins. If you consider just the "standard"
2x1 diagonal roofline, there are 10 possible joins, depending on whether
the sidewall and the roofline ends in one or two pixels and how they overlap:
* = the best joins to use | sidewall ends with 2 pixels; roofline ends with two pixels | sidewall ends with 2 pixel; roofline ends with 1 pixel | sidewall ends with 1 pixel; roofline ends with 2 pixels | sidewall ends with 1 pixel; roofline ends with 1 pixel |
sidewall and roofline overlap on 1 column | * | * | ||
sidewall and roofline overlap on 2 columns | * | -not possible- | -not possible- | |
sidewall and roofline do not overlap (pixels meet at corners) | * |
Also notice that the rooftop has one sunlit roofline and one shaded roofline, and each of these rooflines is, respectively, on the opposite side of the roof from the sunlit and shaded sidewalls. If your rooftop has multiple levels and/or small subsidiary rooftops, then keeping a logical relationship between the rooflines and their joins becomes even more important. Sometimes you'll have to "cheat" in order to maintain clarity:
The roof of this building is made even more complex because the sunlit roofline runs right into the join of the upper roof. The upper roof uses same joins on each side, but not the lower roof - I had to "cheat." Also notice that the upper roof structure casts a shadow on the rear roofline. |
I don't even bother trying to predict what will happen at the top joins, I just draw the other corners the way that I want and then see what happens with the top join. In general I try to avoid the joins that occurred in the two rooftops on the right in the above examples - where the join has four pixels in a row or only one lone pixel. Adjusting the joins on the side corners will usually fix any problem at the top join. Widening or narrowing the entire roof by one pixel also works, but that can have rather drastic effects on the rest of your building! If you are really stuck, the appropriate contrast techniques will usually help cover up the problem - if nothing else you can always make the lone pixel the shaded pixel (instead of sunlit like in the example) or increase the contrast of the two sides of a 4 pixel join (so that it looks more 3 dimensional). However, sometimes the 4 pixel or 1 pixel top join ends up fitting in pretty well up on the roof and I just leave it alone - it's all a matter of what looks good to you.
Wow! I can't believe how big this page got to be! I'm going to have to index it ...someday....;-) In the meantime, remember that the most important thing about all walls, no matter if they are long and skinny or short and wide, is how they join - the corners. In all cases, you can always fix a problem by simply shifting around a few pixels or using contrast. One topic I haven't covered on this page is what happens when the walls are not at the "standard" 45 degree perspective angle or when they don't join at a 90 degree corner or when the walls are curved. Basically the same thing happens - you just carefully draw your diagonal (or curve) until you reach the corner (review my page on perspective, if you have to). Then you tweak the corner join until you get it to look right and keep on going!
Speaking of strange angles and curves, it's time (FINALLY!) for my next page - about shapes.
saci@voicenet.com |