gtkradiant/regression_tests/q3map2/disappearing_sliver3
rambetter a36b39a62b Importing regression tests for q3map2 from Rambetter-math-fix-experiments into
trunk.  Branch Rambetter-math-fix-experiments can be deleted now.


git-svn-id: svn://svn.icculus.org/gtkradiant/GtkRadiant/trunk@417 8a3a26a2-13c4-0310-b231-cf6edde360e5
2011-01-10 06:25:33 +00:00
..
maps Adding new regression test, disappearing_sliver3. I discovered this while 2010-12-28 11:24:14 +00:00
textures/radiant_regression_tests Adding new regression test, disappearing_sliver3. I discovered this while 2010-12-28 11:24:14 +00:00
NOTES.txt Importing regression tests for q3map2 from Rambetter-math-fix-experiments into 2011-01-10 06:25:33 +00:00
README.txt Updating notes on regression tests. They are "mostly sort of fixed". Won't 2010-12-29 05:20:32 +00:00

DESCRIPTION OF PROBLEM:
=======================

The example map, maps/disappearing_sliver3.map, contains an example of this
bug.  The triangle sliver surface in the middle of the room is not rendered
in the final BSP.

To trigger the bug, compile the map; you don't need -vis or -light.  Only
-bsp (the first q3map2 stage) is necessary to trigger the bug.  The only
entities in the map are a light and a info_player_deathmatch, so the map will
compile for any Q3 mod.


SOLUTION TO PROBLEM:
====================

More work has been done to BaseWindingForPlane() to make it more accurate.
This function is in polylib.c.  The changes to fix this regression test were
committed in revision 377; however, those changes are not "good enough".


IN-DEPTH DISCUSSION:
====================

This is the problem triangle:

  In ParseRawBrush() for brush 0
      Side 0:
          (6144.000000 16122.000000 -2048.000000)
          (6144.000000 16083.000000 -2048.000000)
          (6784.000000 16241.000000 -2048.000000)

Computed winding before fix:

  (6784.16406250 16241.04101562 -2048.00000000)
  (6144.00000000 16122.00976562 -2048.00000000)
  (6144.00000000 16083.00000000 -2048.00000000)

Obviously the 6784.16406250 is beyond epsilon error.

After revision 377:

  (6783.85937500 16240.96484375 -2048.00000000)
  (6144.00000000 16121.99218750 -2048.00000000)
  (6144.00000000 16083.00000000 -2048.00000000)

Even though this fixes the regression test, the error in 6783.85937500 is
still greater than epsilon (but fortunately in the opposite direction).  So
I don't consider this test case to be fixed quite yet.