Commit Graph

390 Commits

Author SHA1 Message Date
rambetter
ea589bedcc As per TTimo's suggestion, turning all three experimental q3map2 fixes on
in q3map2.h: EXPERIMENTAL_HIGH_PRECISION_MATH_Q3MAP2_FIXES,
EXPERIMENTAL_SNAP_NORMAL_FIX, and EXPERIMENTAL_SNAP_PLANE_FIX.  These are all
set to 1 now.


git-svn-id: svn://svn.icculus.org/gtkradiant/GtkRadiant/trunk@421 8a3a26a2-13c4-0310-b231-cf6edde360e5
2011-01-11 08:25:10 +00:00
rambetter
a16ee23adf Importing code changes for q3map2 from Rambetter-math-fix-experiments branch
into trunk.  Right now all the new code that fixes problems is turned off. 
There are three	new #defines in q3map2.h:
EXPERIMENTAL_HIGH_PRECISION_MATH_Q3MAP2_FIXES, EXPERIMENTAL_SNAP_NORMAL_FIX,
and EXPERIMENTAL_SNAP_PLANE_FIX.  All of these are currently set to 0, which
means don't enable that new code.  You can easily edit these to be 1 in order
to enable the new code.

There are very very minor changes to the code even with these three #defines
disabled.  They are as follows.

- In PlaneEqual() in map.c, now considering deltas equal to given epsilon
values as "far enough to be different".  Previously, the '<=' operation was
used, now '<' is being used.

- In FindFloatPlane() in map.c, considering delta equal to distanceEpsilon
(for plane distance) to be sufficiently far away.  Before, delta had to be
strictly greater than distanceEpsilon.

- VectorNormalize() in mathlib.c is more accurate now. 	This change itself
causes at least	one regression test to succeed.  The previous implementation
of VectorNormalize() caused excessive errors to	be introduced due to sloppy
arithmetic.

Note, the epsilon changes account for the possibility that the epsilons 
are set to 0.0 on the command-line.


git-svn-id: svn://svn.icculus.org/gtkradiant/GtkRadiant/trunk@416 8a3a26a2-13c4-0310-b231-cf6edde360e5
2011-01-10 06:15:47 +00:00
Rudolf Polzer
6ce0c65e77 fix two bugs cppcheck found 2011-01-08 20:59:46 +01:00
Rudolf Polzer
b15b0b849f treat entity leak different from entity in solid (the latter should not cause a leak message, but a proper "in solid") 2011-01-02 20:42:33 +01:00
Rudolf Polzer
8f04ed28bf fix these options more 2011-01-01 20:19:57 +01:00
Rudolf Polzer
8b586748c4 fix option checking for -grid* options 2011-01-01 20:15:20 +01:00
Rudolf Polzer
7a04b6fdea Author: rambetter
Date: Thu Dec 30 21:03:13 2010
New Revision: 390

Modified:
GtkRadiant/trunk/libs/mathlib.h
GtkRadiant/trunk/libs/mathlib/mathlib.c
GtkRadiant/trunk/tools/quake3/common/polylib.c
Log:
Undoing commits r363 and r371 as it pertains to polylib.c, mathlib.c,
and mathlib.h (the regression tests have not been removed).
Trunk is now restored to a state that it was in before I started
trying to fix the math accuracy errors in q3map2.  Commits r363 and
r371 were "correct" and did improve math accuracy significantly, but
unfortunately the underlying cause of math accuracy issues is something
else, which is being addressed in branch Rambetter-math-fix-experiments
currently.  I'm taking the BSD approach here, which is "we not going to
partially fix the problem.  it's all or nothing".  Otherwise it's just
too risky in my opinion.  I don't like playing Whack-A-Mole.

Someday, we might merge Rambetter-math-fix-experiments branch to trunk.
Sorry about all these needless commits to trunk.
2010-12-31 18:54:33 +01:00
rambetter
5526da8cdc Undoing commits r363 and r371 as it pertains to polylib.c, mathlib.c,
and mathlib.h (the regression tests have not been removed).
Trunk is now restored to a state that it was in before I started
trying to fix the math accuracy errors in q3map2.  Commits r363 and
r371 were "correct" and did improve math accuracy significantly, but
unfortunately the underlying cause of math accuracy issues is something
else, which is being addressed in branch Rambetter-math-fix-experiments
currently.  I'm taking the BSD approach here, which is "we not going to
partially fix the problem.  it's all or nothing".  Otherwise it's just
too risky in my opinion.  I don't like playing Whack-A-Mole.

Someday, we might merge Rambetter-math-fix-experiments branch to trunk.
Sorry about all these needless commits to trunk.


git-svn-id: svn://svn.icculus.org/gtkradiant/GtkRadiant/trunk@390 8a3a26a2-13c4-0310-b231-cf6edde360e5
2010-12-31 03:03:13 +00:00
Rudolf Polzer
469cba24be Author: rambetter
New Revision: 379
Undoing revision 377 (reverting just those files modified by that
commit).  I have disovered the fundamental problem to the math error problems,
and although this commit (r377) is "correct", it fails to address the
fundamental problem.  Therefore, I'd rather leave the code in a state that
has the exact same behavior as before until I get a chance to address the
fundamental issue.
2010-12-29 17:41:57 +01:00
Rudolf Polzer
7aa95f5ab5 svn r377 by Rambetter:
Continuing work on BaseWindingForPlane() in polylib.c.  In fact I'm pursuing
the approach that was committed in r375 (but was then backed out).  I can't
believe my eyes, but I seem to be getting 0.000000% error in some of my
regression tests.  The trick is to scale by a power of 2 and never do a
VectorNormalize().
2010-12-29 17:38:21 +01:00
Rudolf Polzer
7daa362c91 Author: rambetter
New Revision: 376
Undoing revision 375 because it did not offer measured accuracy improvements
in the q3map2 math calculations.
2010-12-29 17:36:09 +01:00
rambetter
f62ab305fc Undoing revision 377 (reverting just those files modified by that
commit).  I have disovered the fundamental problem to the math error problems,
and although this commit (r377) is "correct", it fails to address the
fundamental problem.  Therefore, I'd rather leave the code in a state that
has the exact same behavior as before until I get a chance to address the
fundamental issue.


git-svn-id: svn://svn.icculus.org/gtkradiant/GtkRadiant/trunk@379 8a3a26a2-13c4-0310-b231-cf6edde360e5
2010-12-29 09:00:47 +00:00
rambetter
f36b40ae62 Continuing work on BaseWindingForPlane() in polylib.c. In fact I'm pursuing
the approach that was committed in r375 (but was then backed out).  I can't
believe my eyes, but I seem to be getting 0.000000% error in some of my
regression tests.  The trick is to scale by a power of 2 and never do a
VectorNormalize().


git-svn-id: svn://svn.icculus.org/gtkradiant/GtkRadiant/trunk@377 8a3a26a2-13c4-0310-b231-cf6edde360e5
2010-12-29 04:32:35 +00:00
rambetter
52fd922c64 Undoing revision 375 because it did not offer measured accuracy improvements
in the q3map2 math calculations.


git-svn-id: svn://svn.icculus.org/gtkradiant/GtkRadiant/trunk@376 8a3a26a2-13c4-0310-b231-cf6edde360e5
2010-12-28 20:05:50 +00:00
Rudolf Polzer
887435af2b Fix by Rambetter (svn r371):
Following up on r371; found another optimization for math rounding errors
in BaseWindingForPlane().  This allows me to get rid of an extra call to
VectorSetLength() which contain floating point multiplications.  Behavior
of BaseWindingForPlane() has been verified against base_winding regression
test (comparing output w/ logging patch).
2010-12-28 20:31:25 +01:00
rambetter
05e2114294 Following up on r371; found another optimization for math rounding errors
in BaseWindingForPlane().  This allows me to get rid of an extra call to
VectorSetLength() which contain floating point multiplications.  Behavior
of BaseWindingForPlane() has been verified against base_winding regression
test (comparing output w/ logging patch).


git-svn-id: svn://svn.icculus.org/gtkradiant/GtkRadiant/trunk@375 8a3a26a2-13c4-0310-b231-cf6edde360e5
2010-12-28 19:26:52 +00:00
Rudolf Polzer
b20c63153a better help for -convert 2010-12-28 13:50:14 +01:00
Rudolf Polzer
74ca0f3701 change -convert arguments to get -readmap, -readbsp arguments 2010-12-28 13:47:29 +01:00
Rudolf Polzer
ec64df5697 Author: rambetter
Date: Tue Dec 28 04:02:11 2010
New Revision: 371

Rewriting BaseWindingForPlane() in polylib.c from the ground up.  The behavior is totally unchanged, and I verified this by running extensive tests.  The only difference is that the math precision is much much better now.  Performance should be better as well (but that is not tested).  This is a major milestone because it fixes two regression tests: disappearing_sliver2 and sparkly_seam.
Improvements to math precision is ongoing and more improvements can probably be made even after this patch.
I will update the README.txt files in the regression tests in a separate commit.  This commit only includes the actual fixed code.
2010-12-28 11:24:25 +01:00
rambetter
c5449b8cc5 Rewriting BaseWindingForPlane() in polylib.c from the ground up. The behavior
is totally unchanged, and I verified this by running extensive tests.  The
only difference is that the math precision is much much better now.
Performance should be better as well (but that is not tested).
This is a major milestone because it fixes two regression tests:
disappearing_sliver2 and sparkly_seam.
Improvements to math precision is ongoing and more improvements can probably
be made even after this patch.
I will update the README.txt files in the regression tests in a separate
commit.  This commit only includes the actual fixed code.


git-svn-id: svn://svn.icculus.org/gtkradiant/GtkRadiant/trunk@371 8a3a26a2-13c4-0310-b231-cf6edde360e5
2010-12-28 10:02:11 +00:00
Rudolf Polzer
1bd74f2b3c use forward slashes in .mtl files 2010-12-27 12:44:03 +01:00
Rudolf Polzer
5245aefcbe also -deluxemapsastexcoord 2010-12-26 00:18:13 +01:00
Rudolf Polzer
bd191dea07 fix warnings 2010-12-23 12:54:38 +01:00
Rudolf Polzer
fa46a28662 improved lightmap handling 2010-12-23 12:52:10 +01:00
Rudolf Polzer
b80d1ce478 fix file extension 2010-12-23 10:25:23 +01:00
Rudolf Polzer
4853a12dc8 fix some file name bugs 2010-12-23 10:23:53 +01:00
Rudolf Polzer
5097e3d49d option -lightmapsastexcoord to extract lightmap UV 2010-12-23 10:10:54 +01:00
Rudolf Polzer
4e12b14cdf make it callable 2010-12-23 09:39:59 +01:00
Rudolf Polzer
c19e7448fa initial obj support 2010-12-23 09:38:40 +01:00
Rudolf Polzer
780e5b6e21 make names unique again 2010-12-23 09:14:48 +01:00
Rudolf Polzer
6f9e9fd122 intermediate commit to add .obj conversion support 2010-12-23 09:11:47 +01:00
TTimo
7c46911658 rebuilt gtk binary dependencies file
fixed/optimized a number of VC9 project settings
fixed sprintf being hijacked by intl.dll stuff


git-svn-id: svn://svn.icculus.org/gtkradiant/GtkRadiant/trunk@345 8a3a26a2-13c4-0310-b231-cf6edde360e5
2010-12-13 04:21:05 +00:00
TTimo
e393e112f4 compiles again on win32, trashed mhash
git-svn-id: svn://svn.icculus.org/gtkradiant/GtkRadiant/trunk@338 8a3a26a2-13c4-0310-b231-cf6edde360e5
2010-11-26 05:59:17 +00:00
Rudolf Polzer
c792ef6379 also fix the unhashed case 2010-11-19 06:43:29 +01:00
Rudolf Polzer
40292b11c8 minor fix for plane snapping 2010-11-19 06:41:58 +01:00
namespace
11bb5b5720 pthread_join Fix from Nerius Landys
git-svn-id: svn://svn.icculus.org/gtkradiant/GtkRadiant/trunk@333 8a3a26a2-13c4-0310-b231-cf6edde360e5
2010-11-13 13:36:27 +00:00
Rudolf Polzer
fa9d3a210a new args -meta and -patchmeta to -convert with .map file argument 2010-11-13 08:31:56 +01:00
Rudolf Polzer
32f2674d17 option -forcereadbsp for -convert to allow forcing the BSP reading code in the radiant build menu 2010-11-13 08:03:39 +01:00
Rudolf Polzer
cf84ba8be2 new light option -fill to improve lossy compression of lightmaps (should have no other impact) 2010-10-31 12:38:58 +01:00
Rudolf Polzer
62fdec79ee local variables ALSO work better when declared 2010-10-30 18:10:23 +02:00
Rudolf Polzer
b7a62893a4 add a floodlightDirectionScale value to the _floodlight key too (whatever it does) 2010-10-30 18:07:37 +02:00
Rudolf Polzer
39182c67ef no half lambert for xonotic please, it sucks ;) 2010-10-30 18:00:09 +02:00
Rudolf Polzer
020a3febce no need to artificially limit lightmap position for random supersampling 2010-10-30 16:37:04 +02:00
Rudolf Polzer
aa00101d5e dirtmapping: PROPERLY prevent hitting sky 2010-10-30 16:36:53 +02:00
Rudolf Polzer
4553078f35 better override lightSamplesInsist (-samples +1, +2, +3, +4 skip the samples preset loading) 2010-10-22 09:41:48 +02:00
Rudolf Polzer
91ea2ae81c be more verbose about randomsamples presets 2010-10-22 09:36:40 +02:00
Rudolf Polzer
d1e3042389 support search box size in randomsamples too (although useless) 2010-10-22 09:35:41 +02:00
Rudolf Polzer
10dfced6cb -randomsamples: special handling of -samples 1, 2, 3, 4 as quality presets (to be more consistent with typical -samples use) 2010-10-21 20:35:35 +02:00
Rudolf Polzer
cc6bdd4869 Merge branch 'master' of ssh://icculus.org/netradiant 2010-10-14 10:07:39 +02:00
jal
8c7ca79ef5 Ignore transparent surfaces when floodlighting 2010-10-13 16:26:28 +02:00