How can I fix this visual glitch?






I apologize for the large picture, I've been trying to find the thumbnail address of the picture but to no luck.

Anyways, I mean these visual glitches, where a sprite of pretty much anything can bleed through walls and such at certain angles.
Any possible fix?

Share this post


Link to post

No. That's just how the engine works. Sprite clipping is actually pretty crappy and produces all kinds of weird glitches in just the right places.

Share this post


Link to post

Yeah. As far as I can tell it's just one of those minor things that us Doomers overlook in each other's maps. Just forget it and focus on the gameplay. :-)

Share this post


Link to post

Having my fair share of knowledge of how the engine works, I often wondered how a sprite could be overlapped by a visplane (floor/ceiling), as sprites are draw last and on top of everything (with the exception of transparent mid-textures). The only major exception to this: CDoom and other ports with a "Room over Room" feature.

The only possible explanation is a fuckup in calculating the sprite's masking itself (it's drawn as if it was partially occluded by a column).

Then again, the engine shown here is ZDoom (which deviates from vanilla/boom in several aspects), and you're shooting at the floor ( an atypical situation, so who knows where the confusing clipping information is taken from, it might be from a pillar under that ledge).

Share this post


Link to post
Platinum Shell said:

http://imgur.com/FuXFj.png


I apologize for the large picture, I've been trying to find the thumbnail address of the picture but to no luck.

On imgur, add 's' to get the small thumbnail, and 'l' to get the large preview.

http://imgur.com/FuXFjs.png gives


http://imgur.com/FuXFjl.png gives

Maes said:

Then again, the engine shown here is ZDoom (which deviates from vanilla/boom in several aspects), and you're shooting at the floor ( an atypical situation, so who knows where the confusing clipping information is taken from, it might be from a pillar under that ledge).


It doesn't deviate from Doom on this point. You can replicate the same situation easily with any other Doom port software renderer.

Share this post


Link to post
Maes said:

and you're shooting at the floor

Actually no, the explosion you see is from a Manc fireball from a fatso not pictured in the pit. If I had fired the rocket, the visual glitch probably wouldn't have happened since it's all on the same area of view. I suppose having the rocket launcher out didn't help make it any clearer. :)

EDIT: Thanks Gez.

Share this post


Link to post

And I thought only DoomLegacy was having those 3D floor clipping problems.

If it is a fatso blast, then it is from the fatso missile exploding within the thin wall/floor and the drawing and damage effects are leaking through because the inside of the wall surface is not blocking.
There is a bugfix that I put in DoomLegacy that detects fatso missiles hitting walls earlier, so they explode on the other side of the wall instead of in the middle of the wall.
This fix made a big difference whenever the wall was thinner than 20 units.
I do not know which other ports may have similar fixes.
I expect this has a small demo compatibility impact.

Share this post


Link to post

Nothing says this is a 3D floor.

Share this post


Link to post

One thing confusing the issue is that, Doom missiles don't always explode on the outside surface of a wall. Missiles regularly pass deep within, say, a pillar before they explode, since the missile "jumps" by a fixed amount each frame. One frame, the missile is outside the pillar, and the very next frame, it is deep within, and, that's when the explosion is triggered.

In fact, Doom does not even calculate which wall the missile hit - the engine stops checking, as soon as it finds any wall that would block the missile. If your engine draws wall splats, this can make a splat get placed inside the pillar, quite frequently. The fix is to move the missile back to where it was before the explosion, then do a line trace/wall intersection call from the reverted missile position, in the same direction the missle was travelling. This can determine exactly where the missile should have exploded, so, then, you move the missile there, and trigger the explosion sequence. But, this is an expensive calculation.

Share this post


Link to post

And it's not enough anyway, since you can get the same clipping issue with mobjs that aren't inside the void. I've replicated it by placing medikits atop the short walls around the entrance of MAP02: Underhalls. I've also seen it replicated by shotguns dropped by dead sergeants in a corridor in Plutonia 2's MAP01.

Share this post


Link to post

This is not some mystical voodoo problem that is hard to explain.

Vissprites can only be clipped by linedefs. Areas of the screen which are unmarked for clipping by lines will display any sprite that would appear in that location. You notice where the 2S lines in the floor cross, the fireball is clipped away. But where it would be covered only by flats, it shows.

This is an oversight of sorts in the DOOM clipping algorithm and would apparently be quite difficult to overcome within the bounds of the software renderer.

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now