Sprites improperly clipped



Sprites can sometimes be improperly clipped in the Doom engine. When an inanimate thing is close to a higher sector, it will not move to its height if its center coordinate is inside the lower sector. A large sprite is harder to clip because it may be much larger than the its thing's radius, hence it may be drawn inside a floor or a wall when it is very close to it. The engine uses the vertices from the map to determine whether it should clip a sprite. It does not performs a distance check for each pixels, but instead it does only one distance check for the entire thing. Due to rotation, a sprite close to a linedef may penetrate inside the world's geometry. This leads to some parts of the sprite to be drawn at the wrong depth. Also, when a sprite is a the same distance from the player as a wall with a vertex, the part of the sprite that is crossing the vertex may start blinking as the player moves because the engine does not know which one to draw in front of the other due to imprecision.

This problem is corrected in sources ports which render the game using OpenGL.