* brushexport plugin fix: invert Y during YZ swap; invert V of UV coords (correct texturing)
* brushexport plugin: default to 'Don't collapse' option
q3map2: * obj export: save in popular 'Y = Up, -Z = Forward' format
* picomodel::obj: load as popular 'Y = Up, -Z = Forward' format
* picomodel::obj: fix support of back references in faces
misc...
* fix scaling for doom3 brush format
* Pointfile function: try to also load .pts leak line file (q1), if .lin isn't found
* snap transform origin for flip commands
* change light intensity save format from %f to %g to prevent .99999 on transforms
* support 'stupid quake bug' (invert pitch in angles)(generic and miscmodel ents)(cfg: entities="quake" in .game)
* clipper: place 1st and 2nd points far, 3rd near to ease 3 points clipping
* fix: parsing of /* */ comments, having * or / inside
Radiant:
misc...
encapsulate RETURN_FALSE_IF_FAIL macros with do while 0: minus warnings
* button to call color selector from ents inspector color entry
* explanatory text on initial engine path configuration
* don't show Global preferences by default, except first start
* activate {xyview, camera, texbro glwidget} on mouse button press and scroll, so {texbro treeview and console} hotkeys do not override global ones
* activate windows, containing xyview, camera, texbro on mouse scroll
* fix: autoapplying trigger texture on entity creation is undoable
* fix: texbro m1/2 x2 work, when some tag is loaded
* bold key and spawnflags names in entity inspector entity description
* fix: +CameraFreeMove* command, +shift, -CameraFreeMove*, -shift = still moving (reason: caps letter)
* -backsplash (float)scale (float)distance: scale area lights backsplash fraction + set distance globally
(distance < -900 to omit distance setting); def = 1 23; real area lights have no backsplash (scale = 0)
q3map_backsplash shader keyword overrides this setting
Radiant:
binds...
* alt + m1 click/drag in component modes: select objects
misc...
* fix: selected entity and brush numbers display in 'Find brush' dialog
* prefer to display texture width and height in status bar over name (PANGO_ELLIPSIZE_START)
* allow search shortcut (ctr+f in win) in entity inspector -> entity class list
* fix: don't save empty group entities (but worldspawn)
binds...
* ctrl + shift + m1 (in texbro): open shader in external editor
misc...
* fix: do not unmaximize external shader editor on win
* fix: blank cursor in radiant after calling external shader editor on win
* fix shader editors stuff for non uindowses
* 'Shader Editor Command' preference is available on win (is used, if set; otherwise try default os action for file)
* fix: 'Shader Editor Command' preference allows selecting executable via dialog
* GDK_HAND2 cursor in clipper tool mode
* fix: clipper points have numeric labels
* '2d zoom in to mouse pointer' option works for alt + m2 zoom
* '3d zoom in to mouse pointer' option (def = yes)
* new slightly less careful, but much faster lightmaps packing algorithm (allocating... process)
* -slowallocate switch to enable old lightmaps packing algorithm
* Subsampling...collapsing...sorting...allocating...storing...projecting... timers
* new area lights backsplash algorithm ( by Jelvan ), hijacking temp area lights ( to simulate volumetric behavior of source ones )
* fix: create backsplash for area lights, while q3map_lightsubdivide'ing too
* no backsplash for area lights, if surf == sky
* report patches count in -info
* -exportents to exports entities to a .ent file
* unvanquished game support
* -fs_basepath: can be used more than once to look in multiple paths (Sets the given path as main directory of the game)
* -fs_game: can be used more than once (Sets a different game directory name (default for Q3A: baseq3))
* -fs_pakpath <dir>: Specify additional custom path to assets (can be used more than once to look in multiple paths)
* fix undocumented unexpected LokiInitPaths
* -help option (-h, --help)
* _setmaxstdio(2048) for windows
* game_qfusion update
Radiant:
misc...
* wrap long command lines in build menu -> customize
* map info dialog: + Total patches, Ingame entities, Group entities, Ingame group entities counts
* fix: map info dialog -> sort by count works
* fix of: minimize main wnd, close, start = cam, cons, texbro null size
* code fixes
* packer: !FAIL! msg for missing ingame resources, ~fail for the rest
* bumped stack size to 4Mb to fix crash for huge skies, using old shaders with fairly useless q3map_surfacelight + q3map_lightsubdivide < 999 combo
Radiant:
binds...
* F5: run first in the list or recently invoked build option
* F11: fullscreen
misc...
* opening *.map, sent via cmd line: enabled for non win32 too
* fix: textures find/replace wnd better default pos, size
* fix: crash in CSG::Subtract
* fix crash: main wnd maximized + 'start on primary monitor' off + monitors > 1
* correct save/restore of main wnd pos/size and maximized/fullscreened states
* scale widgets consistently along with main wnd, while using regular layout
* do not delete q3map2_*.shader on minimap generation
Radiant:
misc...
* fix: crash in CSG::BrushDeleteSelected
* fix: crash in Brush::windingForClipPlane
* disabled snapping of transform/pivot origin
* fix crash with nonpthreads xmllib + multithreading + output to system console
* number of code fixes
Radiant:
misc...
* fix: clone group ent / map import / saving map as : group ents name labels at 0,0,0;
* number of code fixes
* decompiling: fix: broken brushes, empty brush definitions; shut down too usual warnings; with -force tries to decompile model autoclip too
* decompiling: -fast mode for BSPToMap conversion
Radiant:
misc...
* _setmaxstdio(2048): tested max pk3s count: 1021
* curve: deform (randomize Z points coord at given amount)
* fix: number of problems, found by Visual Studio's static code analyser
(76ea7385dd)
Radiant:
misc...
* fix of: convert group entity to diff one = entity w/o objects
* asking for game path at 1st start, even if one, specified in .game exists (auto picking could make confused)
* disabled game autodetecting: (~2min awaiting on w7 in non admin mode was confusing)
* -brightness 0..alot, def 1: mimics q3map_lightmapBrightness, but globally + affects vertexlight
* -contrast -255..255, def 0: lighting contrast
* packer improvements
Radiant:
binds...
* entity inspector: Tab enters Key field, toggles between key/value fields; Del deletes keys; Esc quits
misc...
* improved mwheel 2d zoom by Neumond
* +makeRoom: like hollow, but extrudes faces outwards; for making rooms
* deactivating tex dirs tree after loading dir, so SPACE and ENTER aren't broken for 2D after that
* Regular, RegularLeft layouts: smaller console, bigger tex browser
* Rotate, Scale dialogs: values aren't erased on Enter, OK, Apply (are on cancel, esc)
* Rotate dialog: fix: new value in focused field wasn't taking in account on Enter
* +updating texture directories list on 'flush and reload shaders' (reloading shaderlist aswell)
* NumLock perspective window fix
* ctrl+k(ConnectEntities): friendlier to complex connections, takes in account existing keys
(priority: target > targetname > none)
* +'all Supported formats' default option in open dialogs
* defaulted show light radii
* camera fov: 90->110
* cubic clip: off by default; bigger def dist; fixed button's shortcut tip
* prefs: Min & Max texture thumbnail size + dependant on scale;
def = *scale .5, min 48, max 160 (makes range 96-320 visually differentiated)
* packer: +warnings on implicitMaps, mapNoComps
* packer: known problem: minizip crash, when trying to get file with 2039 year date from disk
* -repack: repacks multiple maps, strips out only required shaders; main argument is single bsp path or txt with full pathes to bsps
switches: -dbg: talkative mode; -png: include pngs, at highest priority; -complevel: -1..10, def 0, compression level
uses additional exclusions file repack.exclude with different logic
* packer: rewrote logic to make sure not to include excluded stuff
* packer: preserves file date, if grabbing file from .pk3 too
* packer: in case of missing *ingame* resources pk3 gets _FAILEDpack suffix
* -pk3: autopackager mode(complete Q3 support); bsp path as input; switches: -dbg - talkative mode, -png - include pngs, at highest priority
is using file 'gamename.exclude' to exclude vanilla game resources
tip: ioq3, netradiant, compiler (and packager) treat *.pk3dir directories as separate pk3 files
* shot down spammy warning about samplesize for lmsize<=128; -debugsamplesize to show
* numBspModels ('brusmodels') stat emitting
Radiant:
misc...
* filters toolbar (disableable)
* fix: shift + m1 click in tex browser to open shader in internal/external editor;
defaulted internal; focuses on wanted shader; correct opening/saving
* fix: angles "0 x 0" autoconvert to angle "x" on transform (was getting deleted w/o a trace)
* content of brush is determined now not by 1st side in brush definition (inconsistency!)
but on priority: liquid > fog > playerclip > nonsolid > solid
ex.: nodraw solid shader works now for hiding liquid or fog volume splits / unwanted faces
solid or nonsolid shader + face(s) of playerclip = playerclip
solid shader + face(s) of nonsolid = nonsolid (b4 could happen: 5nonsolid sides + 1solid = solid brush )
Radiant:
binds...
* make structural - alt+s
* shift+n - cycle patch tex projection
* ctrl+f - fit texture
* bind a, d in no mlook mode - CameraStrafeLeft/Right
menus...
* smartified content basically
* hidden killconnect for games, which are not nexuiz
* view-orthographic+: center 2d on selected (ctrl+shift+tab)
* removed parent from menu, regroup does work + isn't bugged
* edit+: SelectAllOfType (shift+a)
* view->show+: ToggleCrosshair, show size info, show grid
* view menu: +patch inspector
* curve->texture+: flip patch tex ( {ctrl}shift+i ), naturalize, cycle projection
* cleaned, updated help menu links,+: Mouse Shortcuts, recent offline&fixed Shader Manual,
netRadiant specific docs, lists of q3map2 switches/entity keys/shader directives
misc...
* removed note to save before going to preferences, project settings
* fog is automatically transparent
* Doom3LightRadius: failed to parse default light radius - spammy msg removed
* 1.5x bigger light ents (8->12u)
* longer list of recently opened (4->9)
* crosshair display: is saving in prefs
* defaulted Maya theme
* removed question to override current compile monitoring
* -clipdepth F, def 2, _clipdepth
* fixed model autoclip (64u thick brushes/no collision at all in some cases)
* pyramidal etc zillion (20!) of autoclip modes
* removed stuctural caulk in models, was broken anyway
Radiant:
misc...
* hollow: produces not intersecting brushes
* -bounceColorRatio 0..1 (ratio of colorizing sample by texture)
* -debugclip: autoclip debug, uses shaders debugclip, debugclip2
* >2GB makefile option, allows up to 3GB ram on 32bit, 4GB on 64bit
* speedup patch to use fast sqrt at some points of light phase, where precision is not needed
Radiant:
binds...
* paste to camera - shift+v (alt+v was leading to texBro-View menu)
fix * q3map_remapshader remaps anything fine, on all stages (effect is: postrenaming shader when things are have been done)
* typo at -dirtmode
Radiant:
misc...
* translucent textures are visible, while selected, too; +matching trans polys are visible simultaneously
* native surfaceparm noob support (no -custinfoparms needed)
* -noob in bsp phase: assign surfaceparm noob to all map surfaces
* surfaceparm ob: skip assigning surfaceparm noob with -noob on that
* farplane modes: radius+radius, origin2origin, exact (add r/o/e to the number to enable), < 0 works too
* samples+filter - enabled again, makes sense
* -vertexscale
* fixed -novertex, (0..1) sets
* quick q3map_novertexlight (?)
* fixed _clone _ins _instance (_clonename)
* -nolm - no lightmaps
* ent keys aliases:_sa - shadeangle;_ss - samplesize
* -shift N -shift X Y Z: shift whole map to some coords
* more fogs (256) (ingame appearence lots of ones might be bugged due to engine arrangement, needs testing)
* q3map_remapshader remaps anything fine, on all stages (effect is: postrenaming shader when things are have been done)
* fixed 'unknown argument 1' at -lightanglehl
* -nocmdline writting to worldspawn
Radiant:
binds...
* wasd camera binds, c - deSelect, z - delete
* ExpandSelectionToEntities - shift+e
* make detail - alt+d
* arbitrary rotation - shifr+r
* arbitrary scale - ctrl+shift+s
misc...
* fit width, fit height butts in surf inspector (for trims) (saves scales ratio)
add old TODO with ideas
Fixes a "buffer overflow detected" abort when compiled with _FORTIFY_SOURCE=1.
The realpath(3) function in glibc checks if the destination buffer is large
enough to hold up to PATH_MAX characters and aborts if that is not the case.
PATH_MAX doesn't have to be defined so assume that it's equal to 4096.
We should really be using pathconf(_PC_PATH_MAX) instead of a hard-coded value
but that means we can no longer use static buffers to hold paths.
Move one variable to the section it is used in, and remove one unnecessary
NULL check.
If si were NULL at that point, we would have segfaulted ages ago.
Signed-off-by: Lauri Kasanen <curaga@operamail.com>
copied from "-scale" and was incorrect. Thanks to Ensiform from ioquake3 IRC
room for reporting this bug.
git-svn-id: svn://svn.icculus.org/gtkradiant/GtkRadiant/trunk@482 8a3a26a2-13c4-0310-b231-cf6edde360e5
A couple of things are broken right now:
- OpenGL font in Windows not appearing (expected to be broken, will fix)
- Linux build broken because it loads some .vcproj files that are removed
- 3rd party libs are downloaded from porky.nerius.com, not id Software
git-svn-id: svn://svn.icculus.org/gtkradiant/GtkRadiant/trunk@473 8a3a26a2-13c4-0310-b231-cf6edde360e5
This is more convenient than using custinfoparms.txt. TTI (from the
Reaction team) game these to me.
git-svn-id: svn://svn.icculus.org/gtkradiant/GtkRadiant/trunk@434 8a3a26a2-13c4-0310-b231-cf6edde360e5
only adding path if it's not already added (remove duplicates).
It's cleaner this way.
git-svn-id: svn://svn.icculus.org/gtkradiant/GtkRadiant/trunk@432 8a3a26a2-13c4-0310-b231-cf6edde360e5
we use ~/.Reaction instead of ~/.q3a . Oh well. This is for Reaction Quake III.
git-svn-id: svn://svn.icculus.org/gtkradiant/GtkRadiant/trunk@431 8a3a26a2-13c4-0310-b231-cf6edde360e5
Introducing Q3MAP2_EXPERIMENTAL_MODEL_CLIPPING_FIX to control the new code,
current value is 1 (enable the fix).
This code fixes the q3map2 regression test model_clipping_45_degrees.
git-svn-id: svn://svn.icculus.org/gtkradiant/GtkRadiant/trunk@429 8a3a26a2-13c4-0310-b231-cf6edde360e5
for the stack and/or static memory for holding arrays of structures.
MAX_ORIGINAL_EDGES changed from 0x10000 to 0x20000 (x2 increase).
MAX_MAP_BRUSHES changed from 0x8000 to 0x10000 (x2 increase).
MAX_MAP_DRAW_VERTS changed from 0x80000 to 0x100000 (x2 increase).
This is pertaining to q3map2 only.
There is a real-world case where increasing these constants is needed.
That case is when compiling Icy World for Urban Terror.
Besides that, increasing these does not hurt anything (other than requiring
more memory).
git-svn-id: svn://svn.icculus.org/gtkradiant/GtkRadiant/trunk@422 8a3a26a2-13c4-0310-b231-cf6edde360e5
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
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
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.
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
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.
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().
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
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
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).
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
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.
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
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
q3map2 -game xonotic -convert -format xonotic filename.map
note that this is a quite bad compile (no tjunctions, no models, nothing, but lightning fast)