Bug Tracker – Bug 143

Ceiling/floor edge render problem

Last modified: 2012-10-15 04:02:08 UTC
Bug 143 - Ceiling/floor edge render problem
Summary: Ceiling/floor edge render problem
Alias: None
Product: Odamex
Classification: Unclassified
Component: Client (show other bugs)
Version: (old) 0.0.1
Hardware: All All
: P2 trivial
Assignee: som
: 196 (view as bug list)
Depends on: 425
Blocks: 523
  Show dependency tree
Reported: 2006-03-03 10:26 UTC by Denis Lukianov
Modified: 2012-10-15 04:02 UTC (History)
5 users (show)

See Also:


Screenshot (254.98 KB, application/octet-stream)
2006-03-03 11:14 UTC, Denis Lukianov
Screenshot A (139.56 KB, image/png)
2006-03-30 22:23 UTC, Denis Lukianov
Screenshot B (139.47 KB, image/png)
2006-03-30 22:26 UTC, Denis Lukianov
Screenshot C (159.60 KB, image/png)
2006-03-30 22:31 UTC, Denis Lukianov
Add an attachment (proposed patch, testcase, etc.)

Note You need to log in before you can comment on or make changes to this bug.
Description Denis Lukianov 2006-03-03 10:26:58 UTC
Reported by AlexMax
Comment 1 Denis Lukianov 2006-03-03 11:14:07 UTC
Created attachment 9 [details]

Screenshot of location where the problem occurs. Move slowly between the sectors and look at the ceiling 'popping'.
Comment 2 Mike Lightner 2006-03-19 14:33:59 UTC
This happens on floors too.
Comment 3 Denis Lukianov 2006-03-30 22:23:44 UTC
Created attachment 17 [details]
Screenshot A
Comment 4 Denis Lukianov 2006-03-30 22:26:02 UTC
Created attachment 18 [details]
Screenshot B
Comment 5 Denis Lukianov 2006-03-30 22:27:21 UTC
Note that position is identical on attachment #17 [details] and attachment #18 [details], only the ange has changed.
Comment 6 Denis Lukianov 2006-03-30 22:28:36 UTC
Comment 7 Denis Lukianov 2006-03-30 22:31:23 UTC
Created attachment 19 [details]
Screenshot C

Also from the same position
Comment 8 Mike Lightner 2006-04-13 17:52:21 UTC
Reduced to minor status
Comment 9 Mike Lightner 2006-04-14 14:14:16 UTC
*** Bug 196 has been marked as a duplicate of this bug. ***
Comment 10 Mike Lightner 2006-09-27 09:40:39 UTC
Changed to trivial.
Comment 11 Denis Lukianov 2006-10-19 17:56:07 UTC
No progress, reassigning to myself
Comment 12 Denis Lukianov 2006-10-19 17:57:46 UTC
If this also happens in vanilla, will need to mark this WONTFIX. Let bug 219 make this irrelevant.

Otherwise, is it an issue? Has anyone checked the other ports?
Comment 13 Denis Lukianov 2007-01-19 17:45:53 UTC
reassigning to SoM, as he is developing the cardboard renderer
Comment 14 Ant P. (not using this email) 2008-04-19 15:58:10 UTC
Just checked some other ports:
- Zdoom 2.1.7 doesn't have this bug.
- On the other hand, the software renderer in the newest released prboom *does* have it so I'm guessing it's likely to be in vanilla too. Can't check that right now though.
Comment 15 Ralph Vickers 2010-01-15 05:46:14 UTC
Confirmed to still exist as of r1431
Comment 16 Dean Joseph 2011-11-10 12:43:43 UTC
Confirmed that bug still exists as of 0.5.6
Comment 17 Dr. Sean 2012-06-17 14:20:28 UTC
This problem happens due to a condition in R_ScaleFromGlobalAngle(), which will cap the slope of a line to 64*FRACUNIT, likely in an attempt to prevent overflowing 32-bit integers when using that slope value in calculations.

When the player is looking directly along a linedef such that the linedef runs down the center of the screen from top to bottom, the slope of the linedef approaches infinity.  Capping the slope makes sense in a fixed-point setting under these circumstances and that is what vanilla Doom does.

I refactored R_ScaleFromGlobalAngle() in r3243 and increased the cap to 1024*FRACUNIT (and later to 256*FRACUNIT).  This fixes most of the visual anomalies but is somewhat more prone to integer overflow errors in the renderer.  More work will be needed to address overflows, possibly in the form of using double-precision floating-point for the calculations that use this slope value.
Comment 18 Ralph Vickers 2012-10-15 04:02:08 UTC
Sean improved this issue majorly. There are still necessary renderer fixes but they are beyond the scope of this particular bug.