Author: rambetter
[divverent/netradiant.git] / regression_tests / q3map2 / disappearing_sliver3 / README.txt
1 DESCRIPTION OF PROBLEM:
2 =======================
3
4 The example map, maps/disappearing_sliver3.map, contains an example of this
5 bug.  The triangle sliver surface in the middle of the room is not rendered
6 in the final BSP.
7
8 To trigger the bug, compile the map; you don't need -vis or -light.  Only
9 -bsp (the first q3map2 stage) is necessary to trigger the bug.  The only
10 entities in the map are a light and a info_player_deathmatch, so the map will
11 compile for any Q3 mod.
12
13
14 SOLUTION TO PROBLEM:
15 ====================
16
17 More work has been done to BaseWindingForPlane() to make it more accurate.
18 This function is in polylib.c.  The changes to fix this regression test were
19 committed in revision 377; however, those changes are not "good enough".
20
21
22 IN-DEPTH DISCUSSION:
23 ====================
24
25 This is the problem triangle:
26
27   In ParseRawBrush() for brush 0
28       Side 0:
29           (6144.000000 16122.000000 -2048.000000)
30           (6144.000000 16083.000000 -2048.000000)
31           (6784.000000 16241.000000 -2048.000000)
32
33 Computed winding before fix:
34
35   (6784.16406250 16241.04101562 -2048.00000000)
36   (6144.00000000 16122.00976562 -2048.00000000)
37   (6144.00000000 16083.00000000 -2048.00000000)
38
39 Obviously the 6784.16406250 is beyond epsilon error.
40
41 After revision 377:
42
43   (6783.85937500 16240.96484375 -2048.00000000)
44   (6144.00000000 16121.99218750 -2048.00000000)
45   (6144.00000000 16083.00000000 -2048.00000000)
46
47 Even though this fixes the regression test, the error in 6783.85937500 is
48 still greater than epsilon (but fortunately in the opposite direction).  So
49 I don't consider this test case to be fixed quite yet.