                             F_SKY Special Effects


This text is an ASCII conversion of the WWW page:

	http://www.daimi.aau.dk/~hykkelbj/doom/special/sky.html

Check this page to see some better illustrations.
You will also be able to download the mentioned WADs directly 
by clicking.
................................................................

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:

	(The numbers are sector numbers)

	:		:
	:	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
special.zip (53K). 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:
	
	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 (-128), 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 special.zip (53K). 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).

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 270degrees

                   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).

-------------------------------------------------------------------------------
Jens Hykkelbjerg / hykkelbj@daimi.aau.dk
