Merge remote-tracking branch 'origin/divVerent/weird-shift-a'
[divverent/netradiant.git] / tools / quake3 / q3map2 / changelog.q3map2.txt
1 Q3Map2 Version History + Changelog (Reverse Chronological Order)
2
3 2.5.16 (2004-10-18)
4
5 - New: -fixaas mode to reassociate an AAS file with a changed BSP
6 - New: -nostyles switch on light phase disabling lightstyles
7 - Using libmhash cryptographic hashing library instead of md5lib
8
9
10 2.5.15 (2004-07-08)
11
12 - New: q3map_rgbGen, q3map_rgbMod or q3map_colorGen, q3map_colorMod
13 - New: q3map_alphaGen const (like q3map_alphaMod set)
14 - New: q3map_noVertexLight to suppress overwriting of vertex rgb
15 - q3map_backShader now works again, can be used instead of
16   q3map_cloneShader + q3map_invert on the target shader
17 - q3map_alphaMod volume brushes in func_group entities will now only
18   affect that entity's surfaces
19 - q3map_clipModel now works on trans/nonsolid shaders, allowing
20   simplified clipping surfaces in models
21 - Fixed bug in alphaMod code where only the first vertex was being
22   modded (thanks Ratty)
23 - Vis exits instead of crashing with divide-by-zero when there are
24   no portals on simple box maps
25 - All of a surface's lightmaps must be solid or not solid, fixing
26   ST coord problem with non-Raven games using lightstyles
27 - Reverted a change in the meta code which was causing lightmap coord
28   overflows and ugly self-shadowing errors on surface boundaries
29 - Any use of lightstyles automatically sets -nocollapse to reduce
30   total shader counts
31 - Tenebrae lightmap size changed to 512x512
32
33
34 2.5.14 (2004-04-09)
35
36 - New: -dirty mode courtesy of RaP7oR (dirtmapping/ambient occlusion)
37 - New: q3map_skyLight code using more uniform angular distribution about
38   the sky hemisphere
39 - New: q3map_alphaMod set N.N
40 - New: q3map_alphaMod scale N.N
41 - New: q3map_alphaMod volume - applies all other q3map_alphaMod directives
42   to each vertex inside a brush textured with this shader, allowing large
43   faded scrolling fire shaders, waterfalls, marquees, explicit dotProduct
44   terrain blending control, etc.
45 - Fixed a bug in alphaMod code where the type of the first alphaMod was
46   being used for all subsequent alphaMods
47 - Lowered vertex-lit surface limits to 999 verts, 1000 was breaking Quake 3
48 - Tightened up solid lightmap tolerances
49 - Fixed bug in solid lightmap code where lightmap SD coords were being
50   incorrectly set
51
52
53 2.5.13 (2004-03-03)
54
55 - New: -convert -format <game> to convert between different BSP formats.
56   Example, to convert a Jedi Academy map to Enemy Territory:
57   -game ja -convert -format et
58 - New: -game etut support for Urban Terror on Enemy Territory
59 - New: -analyze mode for reverse engineering a BSP format
60 - New: -compensate N.N (default 1.0) for descaling lightmap/vertex/grid
61   data to compensate for ingame overbrighting. 4.0 is a good value for
62   Quake 3 if used in combination with -gamma 2.2
63 - New: compensate/gamma per-game setting
64 - New: -light -cpma argument for "classic" (sic) vertex lighting
65 - Replaced malloc() with stack allocation in IlluminateRawLightmap for
66   most small/medium lightmap calculations
67 - Misc cleanups in q3map2.h
68 - Support for non-128x128 lightmaps
69 - The -meta process will now generate surfaces with more than 64
70   verts that have non-lightmapped shaders
71 - Extended lightmap size tolerance to 2x for merging meta triangles in
72   maps with aggressive lightmapscale. Sorry kids!
73 - Moved surface finish pass (celshading, cloning) to final surface pass.
74   This should fix a bug involving fog/tesselation/celshading/cloning
75 - Solid-color lightmaps (within 1/255 in RGB) are detected and replaced
76   with a single pixel lightmap, saving space
77
78
79 2.5.12 (2004-01-18)
80
81 - New: -dark option for dark lightmap/brush seams in -light (Unreal 1-ish)
82 - New: spawnflags 4 on misc_model entities makes them forcemeta/lightmapped
83   unless explicitly set as vertex lit in their shader(s). This can be
84   combined with spawnflags 2 (solid) as spawnflags 6
85 - New: -gamma N.N switch sets lightmap/vertex gamma value for more
86   realistic lighting, instead of using high ambient/minlight. Default
87   is 1.0 (linear ramp), good values are between 1.5 and 2.2
88 - Changed q3map_lightmapGamma N.N to q3map_lightmapBrightness N.N, to
89   better match its intended function
90 - Ported to VS.NET 2003 and GtkRadiant 1.5 (spog_branch)
91 - Fixed bug in _skybox maps where sunlight was leaking through brushes.
92   Thanks pjw!
93 - Fixed bug in ASE loader where models without submodels/submaterials
94   would not load properly.
95 - Fixed bug where q3map_tcGen was not being applied to models
96 - Optimized MergeMetaTriangles a bit
97 - Added KOR's fix to raytracer
98 - -bouncegrid no longer affects the lightgrid dir
99 - Added feature to PicoModel where spaces in material names in 3DS, ASE
100   and LWO models will mark the end of the shader name, so you can have
101   "textures/foo/bar 1" and "textures/foo/bar 2" in Lightwave, and both
102   surfaces will map to "textures/foo/bar"
103
104
105 2.5.11 (2003-12-01)
106
107 - New: added support for _skybox entities to generate "portal sky"
108   surfaces in games w/o native support (Quake 3). _skybox entities have
109   3 keys: _scale (default 64), and angle/angles (for rotation of the
110   skybox relative to the map)
111 - New: added -skyfix switch to BSP phase as a workaround hack for
112   the black GL_CLAMP border on skybox edges on ATI (and newer nvidia)
113   video cards. Note: unnecessary in ET or JA
114 - New: Added _anglescale to light entities for scaling angle attenuation.
115   Use a small value (< 1.0) to lessen the angle attenuation, and a high
116   value (> 1.0) for sharper, more faceted lighting
117 - New: Added _lightmapscale support to misc_model entities
118 - Custom shaders (external lightmaps, styles) will not be generated
119   if the find/replace text cannot be found
120 - Tightened up light culling epsilon from 1.0 to 0.125 to stop certain
121   surface lights from being incorrectly culled (thanks RasputiN!)
122 - Fixed bug where small 3 and 4 sided brush faces were getting fanned,
123   adding triangle/vertex counts
124 - Moved to Visual Studio .NET, with aggressive optimizations enabled
125 - Cleaned up missing image warnings
126 - Parsing images out of shader stages if not found explicit/implicitly
127 - Loads Enemy Territory implicitMap images if editor/light image not found
128
129
130 2.5.10 (2003-10-22)
131
132 - New: Lightwave model support (beta) courtesy of RR2DO2
133 - New: Heretic 2 FM model support courtesy of Nurail
134 - Re-enabled vertex cache friendly triangle reordering with fix
135 - Disabled triangle reordering on certain surfaces, including autosprite
136   shaders due to visual errors
137 - Fixed bug in radiosity where sorting of lights by style took forever.
138   Thanks ReBoOT!
139 - Fixed bug in sun lighting code where maps too far off the origin would
140   not be properly it by sun or sky light. Thanks MindLink!
141 - Entity causing a leak will be printed and selected in Radiant if BSP
142   monitoring is enabled. Requested by heeen
143 - Fixed odd bug causing 10x slowdown in lighting in some maps. Should
144   be back to 2.5.7 performance. Also fixed a couple old bugs related to
145   autosprite shader (point) lights and backsplash lights not being styled
146   or setup correctly
147
148
149 2.5.9 (2003-10-12)
150
151 - Disabled triangle reordering for now (crashing on some maps)
152
153
154 2.5.8 (2003-10-02)
155
156 - New: Added two new sun parameters: angular deviation (width of the sun in
157   degrees) and sampling count (jitters). This allows for decent approximation
158   of penumbra "half-shadow" effects from sunlight with 16+ samples. These
159   parameters are accessible for entity lights (including spots and suns) via
160   these entity keys: _deviance and _samples. To use in shaders, use the new
161   q3map_sunExt <r> <g> <b> <brightness> <angle> <elevation> <deviance> <samples>
162 - New: q3map_lightmapFilterRadius <self> <other> for light-emitting shaders.
163   Put *after* any q3map_sun directives or else your sun will be filtered. This
164   is good for eliminating the "stadium lighting" effect from q3map_skyLight.
165   Also usable as an entity key: _filterradius or _filter
166 - New: Quake 2 MD2 model support in PicoModel for misc_model entities
167   (thanks to Nurail!)
168 - Re-enabled vertex-cache-aware triangle reordering. Will probably have a
169   negligible effect on rendering performance, but can't hurt
170 - Added short-circuit to raytracer: any empty nodes (including children) are
171   ignored on sun traces
172 - Added BSP file size printout
173 - Filtering of any kind now disables adaptive supersampling on a per-light,
174   per-ightmap basis
175 - Fixed another _minlight <-> styled light interaction bug (thanks pjw!)
176
177
178 2.5.7 (2003-08-31)
179
180 - New: Jedi Academy support via -game ja
181 - New: DDS (DXT1/3/5) texture support for future games
182 - Re-enabled q3map_surfaceModel support, and the 'oriented' flag works as well
183 - Re-enabled (fixed, really) large external lightmap support
184 - Fixed a bug in the model code that would cause a crash if an uninvertable
185   matrix was created
186 - Fixed a bug in Mathlib m4x4_t code where the tolerance for a singular matrix
187   was too low and crapping out on small (scaled down) matrices
188 - Fixed bug in divide-by-zero on lightmap efficiency calculation
189 - Added -force switch, allows unsupported BSP formats to (try) to be loaded
190
191
192 2.5.6 (2003-08-15)
193
194 - New: can convert BSP files to MAP files via -convert -format map. Note: not
195   perfect by any means, as certain pieces of data are irretrievably lost, such
196   as func_group entities (including terrain specifics), brush face texturing
197   info, and light/misc_model entities with Q3Map2-generated BSPs
198
199
200 2.5.5
201
202 - New: -scale N.N mode to scale the BSP
203 - New: -light -lomem switch to supress trace BSP optimization. This
204   feature trades lighting performance for decreased memory usage
205 - New: Added negative light support (note: will not darken below _minlight value)
206   might screw up radiosity, haven't tested much. Should work with entity
207   lights, shader lights, sun/sky lights and radiosity. Lightfilter shadows
208   tint negative lights too, so the end effect is subtraction of the color
209 - New: Lightstyle support for non-Raven (JK2/SOF2) games, including Quake 3,
210   RTCW, ET, EF. Only works with lightmapped surfaces, use with care
211 - Fixed long standing terrain texturing bug, should produce exact desired
212   results all of the time now. May require fixing alphamaps that were
213   kludged together to accomodate this bug on existing maps
214 - Fixed bug (huh, wtf) causing misc_model surfaces to not be fogged
215 - Fixed bug where fog brushes wouldn't fog surfaces if a global map fog
216   shader was present
217 - Fixed bug where -patchmeta surfaces were being ignored for raytracing
218 - Fixed long-standing bug where twosided surfaces were not correctly
219   bouncing light. You can now have a foggy glass window that re-emits
220   bright light with q3map_bounce 3.0 or so
221 - Fixed really stupid bug in radiosity with bouncing styled lights
222 - Stripping .map and appending .bsp in -info mode
223 - Fixed bug where tesselated brush face surfaces were not being fogged
224 - Twosided surfaces (using cull disable/twosided/none) are now lit twosided
225 - Added tighter tolerance for alphashadow/lightfilter shadowing to raytracer
226   which fixed problem with double shadows from tracing near triangle seams
227 - Brush entities should now be properly fogged. Really.
228 - Styled lightmaps are no longer affected by _minlight (doh)
229
230
231 2.5.4 (2003-04-01)
232
233 - New: q3map_tessSize support for JK2/SOF2
234 - New: -lightmapsize N argument
235 - Fixed bug where switched styled lights weren't working correctly in SOF2/JK2
236 - Fixed bug where external lightmaps with generated shaders were referencing
237   the wrong lightmap
238 - Fixed bug causing lightgrid brushes to be ignored
239 - Added variable sphere around trace sample points to inhibit occluder geometry
240
241
242 2.5.3 (2003-03-06)
243
244 - New: SOF2/JK2 light styles now supported
245 - New: q3map_lightStyle N to set shader lightstyles
246 - New: Tenebrae 2 support via -game tenebrae
247 - New: -light -deluxe and -debugdeluxe for Tenebrae "deluxemap" static
248   lighting algorithm
249 - Light envelopes now properly clipped to the PVS
250 - q3map_vertexScale re-enabled (scales vertex lighting per-shader)
251 - Minor bug in brush bevel code corrected
252 - Brushes from func_group entities are correctly sorted on insertion
253 - Fixed a couple misc warnings to print "percent" instead of "%"
254 - Added -custinfoparms support to -light mode to suppress warnings
255 - _minlight, _minvertexlight and _mingridlight order independent, and now
256   allow for values of 0
257
258
259 2.5.2 (2003-02-17)
260
261 - Fixed crash bugs with global map fog
262 - Model loading really only warns once now
263
264
265 2.5.1 (2003-02-17) (Splash Damage internal release)
266
267 - Added more Hella-Fast juice to light code. Overall should be 35% faster
268 - Refactored surface portion of raytracer code for less memory usage
269 - Changed UVW epsilon in raytracer to catch more edge cases
270 - Removed bounds check on occluded luxel finding, was causing more problems
271   than it was solving
272 - Adaptive antialiasing code now ignores unmapped luxels for better shadow
273   edges and higher performance
274 - Brushes in the BSP are now sorted opaque first
275 - Fixed Really Stupid bug causing MapRawLightmap to take about 4x as long
276 - Added optimization to make MapRawLightmap 2x as fast
277 - New non-sucky quadrilateral subdivision of patches for MapRawLightmap
278 - Patches with < 90 degrees of curvature are now box-lightmapped
279 - Patch vertex normals now correctly stored, fixing bug in 2.5.0
280 - Prints warning if map with < 10% detail brushes is detected
281
282
283 2.5.0 (2003-02-14) (Splash Damage internal release)
284
285 RAYTRACING AND SHADOW CALCULATION
286 - New raytracing code. Rewrote the raytracer to maximize efficiency on modern
287   "caulk-hull" maps. Uses triangle intercept code written by SPoG, based on code
288   by Tomas Moller and Ben Trumbore (Journal of Graphics Tools, 2(1):21-28, 1997)
289   and a biased octree leaf subdivision scheme by Y.T.
290 - Shadows (casting and receiving) are now controllable per-entity
291   New entity keys: "_castShadows" or "_cs" and "_receiveShadows" or "_rc"
292   Values: 0 = no shadows, 1 = worldspawn shadows, > 1 explicit shadow group,
293   negative values imply no worldspawn shadow interation.
294   *Entities, including model2 and RTCW misc_gamemodels can now cast shadows*
295
296 RADIOSITY
297 - Bumped up default and smallest radiosity patch size. Performance should be
298   approximately 4x with a small quality tradeoff
299 - Radiosity patches now trace to centroid of triangle, and not bounds center
300 - Radiosity and surface lights are now nudged around a bit if in solid
301 - Radiosity light generation code is now thread-safe
302 - Radiosity -dump files now .map instead of .pfb
303 - Poorly worded "q3map_bounce" renamed to "q3map_bounceScale" (old still works)
304 - New -bounceonly switch to store only bounced light in the BSP (for Tenebrae)
305
306 MISC LIGHTING
307 - Optimized case where light and sample are coplanar
308 - Forcing nudged luxels to stay within lightmap surfaces' bounds
309
310 CURVED SURFACES
311 - New -subdivisions N argument, works with -patchmeta and -light for setting
312   patch level-of-detail. Default value is 8, use 4 to simulate default Q3
313 - All patch tesselation code changed to create x-patterned tesselation for
314   better lighting
315 - Storing patch LOD info in the .srf file for better patch light/shadows
316
317 FOG
318 - Reworked fog code to fix bad interation with fog and clipped models
319
320 MODELS
321 - Entities with attached MD3/ASE misc_models now have their bounds correctly set
322 - Attached misc_models now support q3map_clipModel for solidity
323 - Missing models will only warn once, rather than spew errors
324
325 MISC
326 - Metasurface merging no longer folds nonplanar triangles into planar surfaces
327   and vice-versa *
328 - Fixed Really Stupid Bug where entity numbering was not loaded by lighting code
329   resulting in lightmaps merging across entity boundaries *
330
331 * Might result in slightly larger BSP. For maximum efficiency, ungroup
332   func_group entities before doing a final compile
333
334 TODO
335 + Document new shadow stuff
336 + Merge adjacent light-casting triangles into convex windings
337
338
339 2.3.38 (2003-02-07)
340
341 - New lighting code, return of Smoove-B. Intelligently antialises shadow edges
342   when you use the new -samples N switch. Get -extra quality in 1/3 the time
343 - New lightmap filtering code. Now using a proper 0.25/0.5/1.0 filter kernel.
344   Also operates on individual lightsources, so per-lightsource filter/kernel
345   settings are now possible
346 - New -patchmeta fixes, now does stitching and adaptive subdivision.
347   Thanks Sock!
348 - Nonsolid patches will no longer be in the BSP when run with -patchmeta
349 - Misc fog fixes, including q3map_noFog support in maps with global _fog
350   support (SOF2/JK2)
351 - Now stripping misc_model entities from the BSP
352 - Fixed disappearing face bug that's been present since 2.3.36.
353   Thanks Shadowspawn!
354
355
356 2.3.37 (2003-01-24)
357
358 - Building from GtkRadiant CVS trunk
359 - Added new brush bevel code by MrElusive to fix lingering aas problems (sweet!)
360 - Added -snap N arg to BSP phase for axial bevel plane snapping to reduce
361   clipped model plane count (note: will muck with above, use with care)
362 - Patches in terrain entities should now have proper vertex alpha set
363 - Fixed bug in fur code where fur was being limited to 2 layers (thanks pazur)
364 - Reduced vertexlight search area to a reasonable size to keep vertex lighting
365   times down
366
367
368 2.3.36 (2003-01-15)
369
370 - Plane hashing re-enabled (I suck)
371 - Plane hashing optimized (faster parsing of larger maps)
372 - Plane finding accuracy code enabled
373 - New ASE clipping code
374   + With above should be 10-50% faster
375   + Should generate 33% fewer planes
376   + Generates mostly-axial 5-sided polyhedra instead of pyramids,
377     for tighter 2-sided clipping
378 - New -light args:
379   + -scale N -- scales all lightsources (area, radiosity, point, sky)
380   + -sky[scale] N -- scales sky lights (q3map_skylight, q3map_sunlight)
381 - Changed fur code to scale fur offset based on original vertex alpha
382
383
384 2.3.35 (2003-01-14)
385
386 - PicoModel now inverts ASE T coordinate
387 - BSP to ASE converter now inverts T coordinate
388 - Disabling 2.3.34 triangle optimization code until I find out why it crashes
389 - Fixed Conscript-q3map2 to use stack_size ld flags directly on Darwin/OS X
390 - Added Conscript-q3map2 to q3map2.dsp for easier Win32 edit, *nix target
391
392
393 2.3.34 (2003-01-08)
394
395 - Building from merged GtkRadiant 1.2 -> 1.3 merged codebase
396 - IMPORTANT NEW CHANGE: Light entities are now STRIPPED from the BSP file.
397   They are re-read in by -light from the MAP file. This has two consequences:
398   + It is no longer necessary to re-BSP & re-vis a map in order to change
399     lighting. You can just change lights in the map file and run -light.
400   + Slightly smaller BSP file, due to fewer entities
401   + Faster loading time, as the game code doesn't have to deal with them
402 - Added new -ne (normal epsilon) and -de (distance epsilon) for tuning precision
403   of plane snapping to correct potential AAS/BSP issues
404 - Using latest PicoModel, with support for RTCW MDC models
405 - Surfaces per raw lightmap are now sorted by shader name, which should give
406   slightly better lightmap efficiency and lower in-game shader counts
407 - Adjusted model code to use correct m4x4_t code & angles key
408 - Minor bugfix in patch color gradient calculation code
409 - Silenced erroneous areaportal warning spew
410 - q3map_tcGen now works on model surfaces
411 - Using default radiosity subdivide of 256 again (should make radiosity faster)
412 - Enabled byte-swapping code so Q3Map2 can be compiled/run on little-endian
413   architectures (Mac OS X)
414
415
416 2.3.33 (2002-12-08)
417
418 - Added new -bouncescale argument for radiosity scaling
419 - Added -pointscale and -areascale for consistent naming
420 - Radiosity patch subdivision code enhanced
421 - Hint portals split the BSP first (higher priority)
422 - Antiportal and areaportal faces split the BSP last, to minimize errors
423 - Areaportals work internally like hint and antiportals, so they no longer need
424   to be full brushes (the other sides can be skip)
425 - External lightmaps are now named "lm_NNNN.tga" in the maps/mapname dir
426 - Cleaned up some of -light argument processing
427 - Planar surfaces w/o lightmaps will no longer be tagged as MST_TRIANGLE_SOUP
428   (this fixes problems with Particle Studio particles dropping out of view)
429
430
431 2.3.32 (2002-11-30)
432
433 - GtkRadiant (1.2.11) integration
434 - Added epsilon to texture plane choose code to eliminate numerical
435   inconsistencies on brush faces slanted at 45 degree angles (bug 637)
436 - Fixed bug in lightmap export after lighting when map contains 0 BSP lightmaps
437 - Adjusted some light tracing constants to fix certain brush/patch seam shadows
438 - Tinkered with skylight code again
439 - Fixed bug where lightgrid would be black if level was compiled with -nogrid
440 - Fixed -approx code to work in floating-point space, using _minlight
441 - Fixed bug where vertex light code was using invalid pvs data to create
442   light list for surface, leading to incorrect vertex lighting
443 - Fixed related bug in anti-light-leak code that was causing brush faces to go
444   black (bug 694)
445 - New: _minlight sets _minvertexlight and (new) _mingridlight automatically
446 - New: _mingridlight key to set minimum grid lighting
447
448
449 2.3.31 (2002-11-21)
450
451 - Stitching the edges of lightmaps on patches that wrap around (cyls and cones)
452   so the seam is no longer visible
453 - The -patchmeta switch works better now, the patches are still stored in the
454   BSP for collision, but are pre-tesselated into nonplanar meta surfaces for
455   more efficient rendering
456 - Better, more uniform lightmap sample position finding on patch meshes
457 - Moved q3map_tcMod and q3map_alphaMod processing to the final phase
458 - New: q3map_skylight AMOUNT ITERATIONS to replace surfacelight on sky surfaces
459   for much faster and more uniform sky illumination
460
461
462 2.3.30 (Splash Damage internal release)
463
464 - Fixed bug in PicoModel ASE material parsing code
465 - Fixed a few seam/lightmap precision/projection errors
466 - Increased MAX_SHADER FILES to 1024 and fixed overrun error when more than that
467   number of shaders was listed in shaderlist.txt
468 - Increased a few compiler maximums for larger maps
469 - New: -np N switch on BSP phase, works like -shadeangle, in that it forces all
470   planar shaders to be nonplanar with the shading angle specified
471 - New: -nohint switch on BSP phase, omits hint brushes from compile for testing
472 - New: -debugaxis switch on light mode. Colors lightmaps based on their lightmap
473   axis (which direction the lightmap was projected on)
474 - New: -debugorigin switch on light mode. Colors lightmaps based on the luxel
475   origin relative to the raw lightmap's bounding box
476 - New: -debugcluster switch on light mode. Colors lightmaps based on the pvs
477   cluster the luxel falls into
478 - New: -convert switch to convert BSP to ASE file (experimental)
479 - New: q3map_lightmapmergable directive to allow terrain to be mapped onto a
480   single lightmap page for seamless terrain shadows
481
482
483 2.3.29 (2002-11-03)
484
485 - Merged with latest CVS, fixed minor issues with matrix order
486 - Fixed minor Sys_FPrintf/Sys_Printf substitution typo in Q3Map2
487 - Expanded debug colors to 12 for debugging surface meshes
488 - PicoModel: fixed ASE loader to support > 1 texture coordinate per-vertex,
489   so more models supported correctly, also loading vertex normals
490 - PicoModel: md3 shader names are now cleaned. Suffixes (such as .tga or .jpg)
491   are stripped, and \ path separators are changed to /
492 - New: Add :q3map to the end of any shader name, and it will be interpreted as
493   the named shader minus :q3map. Example:
494   textures/shaderlab/concrete:q3map -> textures/shaderlab/concrete
495   One potential use is the -approx feature to collapse lightmapped  surfaces
496   into vertexlit surfaces, saving lightmap space/memory
497 - New: q3map_clipModel -- does what you think it does, sort of. This code ix
498   really experimental, and should *only* be used on large models such as terrain
499   (not small decorative models). This code will be evolving. Note: the shader's
500   surfaceparms are inherited by the magic clip brush, so if you have nonsolid
501   in your model's shader that uses q3map_clipModel, then the brush will also
502   be nonsolid
503
504
505 2.3.28 (2002-11-01)
506
507 - Bug 654 (http://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=654):
508   Fixed problem where brush faces, drawsurfaces, and surfaceparms weren't living
509   together in perfect harmony (terrain surfaceparms now inherited by brushes)
510 - Nodraw fog works now, albeit when you're underneath, surfaces above don't get
511   fogged properly. Could be good for foggy water where you want the above-water
512   portions to only be occluded by the water surface
513 - Bug 656 (http://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=656):
514   Number of lightgrid points displayed (byte size is currently out of proportion
515   due to internal storage format) when Q3Map is called with the -info switch
516 - Fixed wack surface merging bug where code would attempt to merge triangles not
517   adjacent to the current set, causing bad lightmap projections on nonplanar
518   surfaces
519 - Fixed tiny 1-character bug in 2d lightmap texture allocator where adjacent
520   luxels were being checked for occlusion rather than the actual source luxel
521
522
523 2.3.27 (2002-10-31) Happy Halloween!
524
525 - Fixed minor bug in scriplib bugfix where the last character in a file wasn't
526   being read.
527 - Fixed bug where 0-area or bogus triangles were causing crash in MapRawLightmap
528   if they used a shader with a normalmap (thanks ShadowSpawn)
529 - Fixed bug where lightmaps were getting hosed levelwide on a prerelease version
530   of 2.3.27
531 - Fixed bug where lightmaps were getting knackered on models and certain patches
532 - Merged latest PicoModel version from seaw0lf, adding support for ASE and WF OBJ
533   models (preliminary)
534 - Increased MAX_MAP_PLANES to 0x40000 (~256k)
535
536 Known issues:
537 - Lightmap projection and surface merging on large ASE models sometimes flakes
538 - Surface to brush surfaceparm propogation doesn't work properly with large
539   metasurfaces: http://zerowing.idsoftware.com/bugzilla/show_bug.cgi?id=654
540
541
542 2.3.26 (2002-10-27)
543
544 - Now using GtkRadiant's libpng and zlib config (linked as DLLs)
545 - Fixed bug in script parser where repeat calls to GetToken() were causing
546   memory corruption
547 - Fixed SOF2 -rename bug
548 - When using -game sof2 or -game jk2, the -flares argument is implied
549 - Added -noflares argument to disable the above behavior
550 - Added support for flares on entities. Use one of the following keys:
551   "_flare" "1" -- use default flare (different for each game)
552   "_flareshader" "path/to/flareshader" -- use a specific flare shader
553   Note: This only matters in SOF2/JK2 now. Make a light targetted (a spotlight)
554   to get it to aim the correct direction, otherwise it defaults to pointing 
555   downward. You cannot have omnidirectional flares
556 - Lightgrid size is automatically increased to accomodate large maps. The
557   MAX_MAP_LIGHTGRID error will never happen again
558
559
560 2.3.25 (2002-10-22)
561
562 - Go Giants!
563 - Fixed bug where Q3Map would crash on writing the BSP after the light stage.
564   Thanks to Rap7or (#q3map) and loon8 (Q3W forums) [bug 641]
565 - Fixed bug where surface lights were not affecting the light grid properly.
566   Thanks to Shadowspawn and djbob [bug 642]
567 - NEW: Added -faster support to lightgrid calculations while fixing previous bug
568 - NEW: Changed it so the BSP file is written to a temp file first, then renamed.
569   This should prevent BSP file corruption on crashes during writes
570
571
572 2.3.24 (2002-10-20)
573
574 - Fixed numerous outstanding bugs and issues.
575 - Normal interpolation is now improved. It's slightly slower, but more 'correct'
576   in cases where you have 10 triangles in one plane and 1 triangle in another
577   meeting up and the 10 triangles were over-affecting the average. Only new
578   identical normals are averaged now. This change affects phong shading, meta
579   surfaces, and PicoModel
580 - PicoModel up to version 0.7.6, BSD license, better 3DS model support
581 - PicoModel library now fixes broken normals on MD3 and 3DS models
582 - Bumpmapping code is improved. The correct tangent vectors per-triangle are
583   now calculated so the bumpmaps are consistent with regards to light direction
584 - Metasurface merging code optimized. Should be about 100x as fast on complex
585   maps or maps using models with high triangle counts
586 - Vertexlight code tweaked a bit
587 - Triangle/winding orders now more consistent. Tesselated surfaces will have
588   a uniform triangle ordering (thanks RR2DO2)
589 - NEW: "vertexDeform move" now parsed and surfaces are merged into the
590   appropriate  BSP leaves they may enter into (thanks to Bart Vrijkorte)
591 - NEW: shader command: q3map_alphaMod. Currently takes a single form:
592   q3map_alphaMod dotproduct ( NX NY NZ )
593   where NX NY NZ are a unit normal (length of 1.0) specifying direction.
594   An example use would be snow in a shader's 2nd pass, using alphaFunc or
595   blendFunc:
596   q3map_alphaMod dotproduct ( 0 0 1 ) // surfaces facing upwards have snow
597   (idea contributed by RR2DO2)
598
599
600 2.3.23 (2002-10-18)
601
602 - In my haste to release the previous version, I neglected to give credit where
603   it was due. Seaw0lf had as much (probably more) to do with the new model
604   loading library (PicoModel). Because of his efforts, you can load 3DS models
605   and use them in misc_model entities.
606 - PicoModel model library up to version 0.7. Improved 3DS support, more stable.
607 - Surface models still not reenabled. Soon. :)
608 - You can now remap a misc_model's shaders like this:
609   Key "_remapNN" "the/model/shader;the/real/shader"
610   This works just like TA terrain vertexRemapShader key. You can also supply a
611   * glob for the source shader if you want all your model's shaders to use the
612   specified shader:
613   "_remap" "*;models/mapobjects/tree/bark"
614
615
616 2.3.22 (2002-10-16)
617
618 - Moving to sensible Linux-style versioning.
619 - The misc_model code has been completely rewritten, breaking surface models.
620   Surface models will reappear in the next release, once the new model API has
621   stablized.
622 - New: MD3 and 3D Studio 3DS models now natively supported.
623 - The misc_model "angles" key now supported. Values: "pitch yaw roll" in keeping
624   with standard Quake 3 angles order.
625 - Models scaled with "modelscale_vec" now have proper normal scaling/rotation
626   (thanks SPOG).
627 - Models can now be lightmapped.
628 - Models can now have > 1000 vertexes per surface.
629 - For best results for above, add the following to models' shaders:
630   q3map_splotchfix
631   q3map_nonplanar
632 - 3DS models' MATERIAL NAMES ARE THE FINAL Q3 SHADER NAMES. YOU HAVE BEEN WARNED.
633 - Models are generally 13373R. :)
634
635
636 2.3.0-a21 (2002-10-02)
637
638 - Fixed a stack of really stupid bugs in the lightgrid code. Should be faster
639   and more predictable now.
640 - SOF2/JK2 lightgrid now compiled. This is the first version of Q3Map2 that can
641   compile full, release-worthy SOF2 and JK2 maps.
642 - SOF2/JK2 damageshader and damagable brush faces should work correctly now.
643
644
645 2.3.0-a20 (2002-09-26)
646
647 - SOF2/JK2 worldspawn "fog" (and "_fog") shader key support for levelwide fog
648 - SOF2/JK2 light "scale" key to scale light brightness
649 - SOF2/JK2 -rename function for _bsp and _rmg_bsp shader renaming
650
651
652 2.3.0-a19 (2002-09-24)
653
654 - Shaders can now be subclassed (Q3Map relavant portions only, such as
655   surfaceparms, lighting, texture projection, etc). To subclass an existing
656   shader, add "q3map_baseshader X" where X is the name of the base shader.
657 - Preliminary auto-model distribution over surfaces. You can now have things
658   like grass and tree models automatically distributed across your terrain
659   or other surfaces. To wit:
660
661   q3map_surfacemodel models/mapobjects/tree2/tree2.md3 64 0.001 0.5 4.0 0 360 1
662
663   q3map_surfacemodel <path to md3> <density in units> <odds of appearing>
664       <min scale> <max scale> <min angle> <max angle> <oriented>
665   
666   The last flag is 1 or 0, and sets whether the model gets fitted to the
667   orientation of the surface. Not functional yet. See screenshots page for
668   shots of this in action.
669
670
671 2.3.0-a18 (2002-09-21)
672
673 - misc_models can now be attached to any brush model entity. Just target the
674   brush entity with the misc_model (select model, then entity, hit Ctrl+K)
675 - q3map_tcMod translate (or shift or offset) <s offset> <t offset>
676 - q3map_tcMod rotate <degrees> (rotates around origin, not center)
677 - q3map_tcMod scale <s scale> <t scale>
678 - Metasurface merging now much, much better. Merges into roughly rectangular or
679   square areas wherever possible
680 - q3map_terrain no longer sets Z-axis lightmap projection. It must be set in
681   the terrain layer shaders if you want previous behavior
682 - Worlspawn _blocksize key now supports 3 elements for setting X Y and Z splits
683   independently of each other (use a value of 0 for no splits on that axis)
684 - Misc bugfixes
685
686
687 2.3.0-a1 through 2.3.0-a17 (2002-07 through 2002-09-20)
688
689 - Elite Force support (via -game ef)
690 - SOF2 and JK2 support (via -game sof2 or -game jk2)
691 - All new image handling with PNG support
692 - q3map_lightimage specifies image for radiosity and lighting
693 - External lightmaps, set using q3map_lightmapsize <width> <height>. Up to
694   1024 x 1024 supported.
695 - q3map_lightmapGamma <value> sets the brightness scale of a lightmap
696 - q3map_lightmapsampleoffset <distance> to fix glitches in lightmapped terrain
697 - Tons more features and bugfixes. See the forum threads for details/screenshots
698 - Two new surfaceparms, "antiportal" and "skip," and associated shaders, for
699   allowing the mapper to more cleanly set up visibility data
700 - Lightmaps will always have square texels now (no more stretching)
701 - Vertex light improvements
702 - Light grid improvements
703 - q3map_lightrgb support for RTCW
704
705
706
707
708
709