So, you want a Transparent Door

On first thought it would appear that the construction of a transparent door is quite easy to do. Yet, the renderer in the DOOM engine does not lend itself well to creating a transparent door. While there are transparent textures in DOOM, they work only when used as midtexture. The way the DOOM engine renders adjacent sectors not of the same height, with upper and lower transparent textures, the transparent part of that texture turns opaque, usually black.

All methods described herein give good looking transparent doors, however, except for the last method, they suffer in one aspect of DOOM game action. They block projectiles and splash damage, so that any monster on the other side of a closed transparent door is unaffected by whatever weapon you fire. Unless, of course, you think of them being made of bulletproof and shatterproof glass.

Essentially, a transparent door can be constructed in several different ways:

Using the DOOM / DOOM2 sector trick

This door is used extensively in Robert Fenske, Jr's 1994 pwad Haunted Space Ship. The accompanying text gives Alberto Barsella ( credit for the idea of the transparent door.

A description of how to construct it appears in the text file of Jens Hykkelbjerg's pwad Just as a quick explanation, the sector reference of the doortracks must be different from the door sector.

Since the action of this door can produce HOMs in non-OpenGL ports, I am not going into the fine points here. If you want to, you can reproduce this door from the literature. Another resource can be found here.

Using texture offsets

I came across this door in Fatal's DooM Resurrection Episode I MAP02. It is a great improvement over the previous method of using the DOOM2 sector trick.

This door is not difficult to construct. It can be placed anywhere in a hallway, but .....

..... a few points must be observed. Notice the values encircled in red.
1.The door sector ceiling is not set to the same value as the door sector floor, as would be done with a normal door.
2. The door texture is set to be the midtexture and offset by the height of the door. 128 in this case.
3. Also, do not apply upper or lower textures.
4. Also apply a midtexture to the back of the linedef, again with an offset.

The example pwad can be found here.

Using the 160: 3D sector special

This uses a control sector to set up the door, with one of the linedefs as 160:Sector_Set3dFloor. While this works quite well, there is one visual drawback. Because the 3D sector must be set up as solid, only the texture looked at can be rendered. The example pwad can be found here.

Using the 209: Transfer_Heights sector special

This method has become quite popular. From a visual point of view this method is quite nice since both sides of the door are visibile.

Here is an example of how to implement this door. The secret is the linedef, pointed at by the arrow, which has the 209:Transfer_Heights special.

Credit goes to Enjay, who pointed the method out.

Using discrete sectors

This is my preferred method of constructing a "transparent" barrier, for several reasons:

It is truly transparent.
Splashdamage from a weapon is transferred through the openings.
The monster wakes up when in line of sight.
The pattern of the "door" rising or lowering can be controlled easily through a script.

To illustrate this last point:

The example pwad can be found here.

Using Polyobject Slide

The main difference in using this type of door is that the door will open sideways, which can make a pleasant change of action.

Usually, a polyobject is a singlesided contruct in a control sector. Transparent areas of a texture will be rendered as black. The trick to retain the transparency of the texture is to make the polyobject construct doublesided.

Making the polyobject construct doublesided has the drawback that one can walk right through the polyobject. To prevent this, the polyobject linedefs must be set to 'Block Player' and 'Block Monsters'.

The example pwad can be found here.

Kappes Buur
Nov. 06, 2011