]> de.git.xonotic.org Git - voretournament/voretournament.git/blobdiff - misc/mediasource/netradiant-src/regression_tests/q3map2/plane_aliasing/README.txt
Rename mediasource to source
[voretournament/voretournament.git] / misc / mediasource / netradiant-src / regression_tests / q3map2 / plane_aliasing / README.txt
diff --git a/misc/mediasource/netradiant-src/regression_tests/q3map2/plane_aliasing/README.txt b/misc/mediasource/netradiant-src/regression_tests/q3map2/plane_aliasing/README.txt
deleted file mode 100644 (file)
index c76d574..0000000
+++ /dev/null
@@ -1,129 +0,0 @@
-DESCRIPTION OF PROBLEM:
-=======================
-
-This example map demonstrates what a relatively large value for plane distance
-epsilon can do as far as destroying draw surfaces.  The plane distance
-epsilon was 0.01 at the time of this writing.  This means that two planes
-with the same normal and a distance 0.00999 apart are considered to be the
-same plane.
-
-The recommended value of plane distance epsilon is more along the lines of
-0.001; however, we can't currently change this epsilon to that value due to
-lack of resolution in 32 bit floating point integers in the 2^16 number range.
-The smallest epsilon in 32 bit float land that can be added to 2^16 that
-results in a value greater than 2^16 is approximately 0.007, which is already
-practically the current default plane distance epsilon (0.01).
-
-Brush 0 in the example map is a 6-sided brush with red top face.  The red top
-face is defined such in the .map file:
-
-  ( -127 256 513 ) ( -127 384 513 ) ( 1 384 512 )
-
-During the -bsp stage,
-
-  In ParseRawBrush() for brush 0
-      Side 4:
-          (-127.000000 256.000000 513.000000)
-          (-127.000000 384.000000 513.000000)
-          (1.000000 384.000000 512.000000)
-          normal: (0.0078122616 0.0000000000 0.9999694824)
-          dist: 511.9921875000
-
-Now brush 1, the 4-sided brush with the red top face, has the following
-defined as the red top face:
-
-  ( -128 0 513 ) ( -128 128 513 ) ( 0 128 512 )
-
-It's almost the same plane, only off by a distance of about 0.01.
-
-During compiling:
-
-  In ParseRawBrush() for brush 1
-      Side 1:
-          (-128.000000 0.000000 513.000000)
-          (-128.000000 128.000000 513.000000)
-          (0.000000 128.000000 512.000000)
-          normal: (0.0078122616 0.0000000000 0.9999694824)
-          dist: 511.9921875000
-
-Note that the normal and dist are identical to the plane above, even though
-the two are different.  This leads to multiplying errors later on, when this
-side is intersected with the bottom green face.  In particular, the blue face
-disappears from the map.  The blue face:
-
-  In CreateBrushWindings() for brush 1
-      Handling side 2 on the brush
-          Before clipping we have:
-              (-262144.00000000 0.00000000 262144.00000000)
-              (262144.00000000 0.00000000 262144.00000000)
-              (262144.00000000 -0.00000000 -262144.00000000)
-              (-262144.00000000 0.00000000 -262144.00000000)
-          After clipping w/ side 0 we have:
-              (-262144.00000000 0.00000000 262144.00000000)
-              (262144.00000000 0.00000000 262144.00000000)
-              (262144.00000000 0.00000000 -19977.00073172)
-              (-262144.00000000 0.00000000 20983.00073758)
-          After clipping w/ side 1 we have:
-              (262144.00000000 0.00000000 -1535.99218726)
-              (262144.00000000 0.00000000 -19977.00073172)
-              (-128.11106773 0.00000000 513.00868046)
-          After clipping w/ side 3 we have:
-              (0.00000000 0.00000000 503.00000293)
-              (-128.11106773 0.00000000 513.00868046)
-              (-0.00000000 0.00000000 512.00781274)
-
-We see the error is greater than 0.1 in the X value -128.11106773.  This
-causes the draw surface to be discarded in processing later on.  We must
-not allow such a great error.  An error greater than or equal to 0.1 is
-considered to be very bad.
-
-This disappearing blue triangle can be fixed simply by deleting brush 0,
-the 6-sided brush that causes the bad plane alias.  I would suggest deleting
-this brush by editing the .map file manually (and then renumbering the brushes
-manually).
-
-After deleting this brush:
-
-  In ParseRawBrush() for brush 0
-      Side 1:
-          (-128.000000 0.000000 513.000000)
-          (-128.000000 128.000000 513.000000)
-          (0.000000 128.000000 512.000000)
-          normal: (0.0078122616 0.0000000000 0.9999694824)
-          dist: 511.9843750000
-
-  In CreateBrushWindings() for brush 0
-      Handling side 1 on the brush
-          Before clipping we have:
-              (262132.00000000 262136.00000000 -1535.90625143)
-              (262132.00000000 -262136.00000000 -1535.90625143)
-              (-262124.00048828 -262136.00000000 2559.84375238)
-              (-262124.00048828 262136.00000000 2559.84375238)
-          After clipping w/ side 0 we have:
-              (262132.00000000 262136.00000000 -1535.90625143)
-              (262132.00000000 -262136.00000000 -1535.90625143)
-              (-127.99993289 -262136.00000000 512.99999805)
-              (-127.99993289 262136.00000000 512.99999805)
-          After clipping w/ side 2 we have:
-              (262132.00000000 262136.00000000 -1535.90625143)
-              (262132.00000000 -0.00000000 -1535.90625143)
-              (-127.99993289 -0.00000000 512.99999805)
-              (-127.99993289 262136.00000000 512.99999805)
-          After clipping w/ side 3 we have:
-              (0.00000000 0.00000000 511.99999857)
-              (-127.99993289 -0.00000000 512.99999805)
-              (-127.99993289 127.99993289 512.99999805)
-
-Note that we're way more accurate now, and we're nowhere near to approaching
-the 0.1 error.  All it took was the deletion of a seemintly unrelated brush.
-
-
-SOLUTION TO PROBLEM:
-====================
-
-The suggested fix is to increase the resolution of plane distance from 32 bit
-float to 64 bit float for the relevant brush processing operations.  After that
-is done, decrease the default plane distance epsilon from 0.01 to 0.001.  Note
-that even though plane distance epsilon can be specified on the command-line,
-it will do no good (even if set to 0) if the plane distance is close to
-2^16.