F_SKY Special Effects There are a lot of nice things you can do with the F_SKY texture. In fact the DOOM engine treats a F_SKY differently from any other ceiling texture. This page covers the following things you can do with the F_SKY texture: Contents 1. SKY Door 2. SKY Windows 3. SKY at Floor 4. SKY Everywhere 5. Low Buildings in Courtyard 6. Non-repeating F_SKY 1. The F_SKY Door A door that displays F_SKY should be quite familiar to all people who has tried to create a door, and by mistake applied the F_SKY ceiling texture. Normally this looks really odd, as the F_SKY texture repeats down the door, but you might put this effect to some use. For instance Greg Lewis (gregl@umich.edu) used this effect to cause different part of a WAD to "disappear". The WAD was named disappear.zip (I've changed it slightly - I hope Greg won't notice). The effect might look good in association with a "star" bitmap instead of the normal F_SKY. Creation of the F_SKY Door The F_SKY door is easy to create. Just make the following sectors: : : : 5 : | | x...............x |. .| | . . | |3 x 2 x 4| | . . | |. .| x...............x | | : 1 : : : All the sectors should have the F_SKY ceiling texture. Sectors 1, 3, 4 and 5 should have the same (normal) floor and ceiling heights, while sector 2 has set the ceiling height to be equal to the floor height (and both equal to the floor height of the other sectors). Sector 2 is the door sector, and it can be triggered like any other door. Make sure that the sectors 3 and 4 are not large enough for the player to get caught in them! 2. The F_SKY Window A variant of the F_SKY door is the F_SKY window. The only difference is basically, that the "door" in the F_SKY window isn't designed to be opened ever. Personally I think it's quite nice to place a few windows of this kind around in a WAD (No not in a dungeon WAD; only in a mainly outside WAD). They don't take up much room, but seeing F_SKY makes the player feel less trapped even if he is in reality in a small hallway/room. Construction of the F_SKY Window The construction is easy. Just create the following sectors: (The numbers are sector numbers) --------x | x--x | / | | / | | x..x | | | : | x--x : | : : : | 1 :2 :3 :4 | : : : | x--x : | | | : | | x..x | | \ | | \ | | x--x --------x Sector 1 is the room in which the player can walk around. Sector 2 is the window frame. Here the ceiling should be lower than the ceiling in sector 1. The floor of sector 2 will be the height of the window. To make sure that the F_SKY viewed through the window doesn't tile, you will have to set this quite high. Sector 3 is the "outside" part of the window. The ceiling texture here should be F_SKY, while the floor texture is still the same as in sector 2. Both ceiling and floor heights are the same in sector 2 and 3. Sector 4 on the other hand is the F_SKY door from before. Here both the ceiling and floor heights are set to be equal to the floor heights of the sectors 2 and 3. The ceiling texture of sector 4 should of course also be F_SKY. Note that if sector 2 is so high that it's impossible to see the floor, you can create the window like this: (The numbers are sector numbers) --------x | | | | | x--x-----x : :\ | 1 :2 :3x 4 | : :/ | x--x-----x | | | | | --------x The floor and ceiling heights/textures should of course be set just like in the first example. 3. The F_SKY at floor special effect The F_SKY texture is used in almost all wads to create the illusion of being outside. The F_SKY texture is one of the FLATS textures, meaning that it can be applied to both the ceiling and the floor. There is however a limitation when the F_SKY texture should be applied to the floor: It has to be completely surrounded by a floor that uses texture different from the F_SKY texture. To see an example of a floor using the F_SKY texture, you can take a look at spcial1b.zip (73K). Open the SKY door in the north-east corner, and you are in a room where the F_SKY texture is assigned to the floor. The construction of this SKY hole in the floor is very easy: (The numbers are sector numbers) x-----------------------x | | | x.......x | | 1 : 2 : | | x.......x | | | x-----------------------x Apply F_SKY to the floor of sector 2, and a "non-SKY" texture to the floor of sector 1. That should create the F_SKY at floor special effect. 4. SKY Everywhere You just saw how to put the F_SKY texture on the floor. You also know that F_SKY can be applied to the walls by using a stuck SKY door. This means that it's possible to make a room that has F_SKY almost everywhere. The only problem is that the floor SKY has to be surrounded by a sector that doesn't have F_SKY on the floor. However you can of course make this sector quite thin. This demonstrated in spchaunt.zip (86K) created by Robert Fenske, Jr. (rfenske@swri.edu) However it's possible to hide the thin sector completely simply by making it lower than the middle sector, so that it's out of sight. The effect is created like this: (The numbers are sector numbers) x-------------------------------x | | | x.................x | | : x.............x : | | : : : : | | 3 :2: 1 : : | | : : : : | | : x.............x : | | x.................x | | | x-------------------------------x All sectors should have ceiling texture F_SKY. Sector 1 should have floor texture F_SKY, and sector 2 and 3 can have any floor texture except F_SKY. Make sector 2 as thin as possible, and set the floor height of sector 1 to be 0. Now apply a floor height of -128 to the sectors 2 and 3. That should place them well out of sight, and set the ceiling height of sector 3 to be equal to the floor height, to create the F_SKY on the wall effect. Now you should have a room where you can see nothing but SKY! This effect can be seen in spcial1b.zip (73K). You can find the SKY everywhere room by going through the two SKY doors to the north east. (I've put a small triangle of floor texture in front of the door, so that you can see where it is in case you need to get out again...). 5. Low buildings using the F_SKY texture The low buildings inside a courtyard with F_SKY ceiling texture is not really a special effect, but a lot of WAD designers has found these outside sectors more difficult than the ordinary inside rooms. That's why I've decided to include it here. If you already know everything you ever wanted to know about SKY textures, I suggest you go back to the index The general way of creating a building smaller than the walls in a courtyard, is to surround the building by a sector with F_SKY texture and a lower ceiling height. This should paint SKY above the building (above the ceiling height of the surrounding sector). If the courtyard walls are so high that they should be visible over the building, there will of course be painted F_SKY over the small building. To avoid this you should make the smaller building inside the courtyard just big enough to avoid this, or make the surrounding courtyard walls smaller. To learn more about area with F_SKY you might want to take a look at the following rules: Rules that apply to SKY sectors When a sector has SKY as ceiling texture some special rules apply to the way the textures are displayed. In the following I'll give some rules that show how you can create sectors, where the SKY textures will be painted, and where the normal wall textures will be used. In all the sectors the ceiling textures will be F_SKY, and the illustrations will use the side view to demonstrate the ceiling and floor heights that apply to each sector. Rule 1 Lets start with a simple rule: (Side view) ----------------x : | : ..SKY...........|......>: | : | : x-------x | ..WALL.texture.........>| ------------------------x 1 2 (The numbers are sector numbers) The arrows going from left to right marked "SKY" and "Wall texture" are possible lines of sight, and the associated text explains what will be painted at the position where the arrow hit. In this case there is a one-sided line between sector 2 and the void space. On this line the normal texture is painted as wall texture up until the height of the ceiling in sector 2. This is normally used to lower the outer walls in an outside area. The upper texture on a sector with SKY ceiling will never be painted. instead what is painted depends on what is on the other side of the sector where the line of sight hit. In this case where the LOS hit void space, the F_SKY texture is painted. If you want to have a more solid looking wall, where you can see the top of the wall, you can raise the floor height of sector 2 to be equal to the ceiling height, and you will have a wall, where the top of the wall is painted in the floor height of sector 2. (If the wall is low enough for you to see the top. Rule 2 This is the rule that is used to create the SKY door special effect: (Side view) ----------------x x---------- | | ..SKY..........>| | | | | | ----------------x-------x----------- 1 2 3 (The numbers are sector numbers) Here the floor heights of all the sectors 1, 2 and 3 should be equal. (If you don't need it you can remove sector 3 and end up with a configuration that's almost equal to the one in rule 1, except that you can't see the floor of sector 2 when the floor heights of sector 1 and 2 are equal. Rule 3 (Side view) ----------------x x------------ | | ..Transparent...|.......|.......> | | | | x-------x | | ..WALL.texture.>| | ----------------x-------x------------- 1 2 3 (The numbers are sector numbers) This shows that normally the upper part of a SKY sector is simply transparent. Even though YOU can see through the upper part of a SKY sector it doesn't mean that the monsters can. It's also impossible for both players and monsters to walk or shoot through the upper part of a sector. This gives some interesting possibilities: how about putting a few of the really big monsters in sector 3. When the player enters sector 1 he will see these monsters, but they can't see the player. At the same time it's impossible for both the player and the monsters to shoot each other, but that doesn't mean that the player isn't going to try... Rule 4 This is pretty much the same as rule 3. (Side view) ----------------x x------------ | | ..Transparent...|.......|.......> | | | | x-------x -------------------------------------- 1 2 3 (The numbers are sector numbers) This shows that the upper part of a SKY sector is transparent independently of the height of sector 2. (Take care if the floor heights of sector 1 or three are higher - see illegal configuration 2). The main difference between this and rule 3 is that here the sound will propagate through the gap in sector 2, and if the ceiling is high enough it will be possible to pass from sector 1 to sector 3. Illegal SKY sector configurations If you're building an area using the F_SKY texture, and you suddenly get a HOM (Hall Of Mirror) error in your WAD, you should look for the following problems: 1. Missing textures. This should be obvious, as the normal source of HOM is a missing texture somewhere. You should be able to see in your wad where the HOM is located, and check that the texture you wanted to be painted in this position has been defined in the WAD. If you wanted F_SKY to be painted in the position you get HOM this won't help you. 2. Too many lines in view. Before DOOM v1.4 you could only have 128 lines in view at a time. This has now been increased to 256, but you might still get this problem in complex outside areas. 3. A bug in the BSP builder. Try a builder like BSP12X, WARM or IDBSP. 4. F_SKY related HOM errors. If you think you have a HOM related to the way you have placed the SKY sectors, you should read on and try to find one of the illegal configurations in your WAD. Illegal configuration 1 The first illegal configuration looks almost like rule 3. Note the difference in the floor height of sector 3. (Side view) --------x x------- | | ..HOM...|......>| | | x-------x------- | | --------x 1 2 3 (The numbers are sector numbers) This is one of the two exceptions to the general rule that the upper part of a SKY sector is transparent. If you see this configuration from sector 3 towards sector 1, you will see a normal SKY door, but seen from sector 1 the DOOM engine get confused because a line of sight isn't supposed to be able to pass through the linedef between sector 2 and sector 3. This can be corrected by making the floor of sector 3 a little lower (Sector 2 becomes transparent by rule 3), or by creating a small extra sector between sector 1 and 2, with the same floor height as sector 2 (F_SKY will be painted above sector 2 by rule 2). Illegal configuration 2 This illegal configuration is actually much like the previous one: (Side view) x---------- --------x | | | ..HOM...|......>| | x---------- | | x-------x | ----------------x 1 2 3 (The numbers are sector numbers) Here the problem is the same as in the first illegal configuration. It should be impossible for a line of sight to pass from sector 2 to 3. This confuses the DOOM engine so much that it doesn't know what to paint, and the result is HOM. I don't really know what you're trying to build if you have a configuration like this, so I really can't give you good instructions as to how to correct this. If you ever find that this is a source of a problem I suggest you mail me. (Be prepared that I will ask you to explain exactly what you are trying to achieve). 6. Non Repeating F_SKY (by Robert Fenske Jr.) The Non-repeating Sky is a way to provide a unique sky background throughout a 360 degree of view. The normal background sky, which is a single-patch 256x128 texture, repeats every 90 degrees. By redefining the appropriate SKY texture with a multi-patch texture, the sky can repeat every 180 degrees, or simply not repeat at all. The following table details the requirements. Number of Total texture patches size View 1 256 x 128 repeats every 90 degrees 2 512 x 128 repeats every 180 degrees 3 768 x 128 repeats every 270 degrees 4 1024 x 128 does not repeat This effect is used in trinity2.zip (310K) by Steve McCrea (sm@eng.cam.ac.uk), Simon Wall and Elias Papavassilopoulos. The non repeating F_SKY effect was originally an idea by Olivier Montanuy (Olivier.Montanuy@ens.fr). ------------------------------------------------------------------------------- DOOM is a trademark of id Software. ------------------------------------------------------------------------------- Jens Hykkelbjerg / hykkelbj@daimi.aau.dk