2015-12-10 TyrUtils-ericw 0.15.4 release New features: * light: new "-parse_escape_sequences" command-line flag. The "\b" escape sequence toggles red text on/off, you can use this in any strings in the map file. e.g. "message" "Here is \bsome red text\b..." * light: new "-surflight_dump" command-line flag. Saves the lights generated by surfacelights to a "mapname-surflights.map" file. * light: new "_sunlight3" and "_sunlight3_color" keys. Same as "_sunlight2", except creates suns on the bottom hemispere ("_sunlight2" creates suns on the top hemisphere.) * build: support compiling with Visual Studio Bugfixes: * light: fix antilights (broken in last release) * light: fix _mincolor to accept 0-1 float colors * light: fix surface lights on rotating bmodels from incorrectly spawning lights near the origin * qbsp: log coordinates for CheckFace errors * qbsp: round texture coordinates that are close to integers, for Darkplaces compatibility * qbsp: remove 128 char limit on entity key/value values 2015-10-26 TyrUtils-ericw 0.15.3 release * hexen2 support, patch from Spike * light: add "_surface_spotlight" key for making surface lights into spotlights based on the surface normal * vis: Reuse each cluster's visdata for all leafs in the cluster * light: add "-sunsamples" flag to control number of samples for _sunlight_penumbra and _sunlight2 * qbsp: add "-epsilon" option to control ON_EPSILON, from txqbsp-xt * light: silence "no model has face" warning generated by "skip" faces. * light: fix "-gate" (was calculating too-large bounding spheres for delay 2 lights.) * qbsp: updates to the "-maxNodeSize" feature added in 0.15.2 to be closer to the txqbsp-xt version. * light: Adjust the trace algorithm to match that in q3map. * qbsp: print coordinates for "New portal was clipped away" warning 2015-08-09 TyrUtils-ericw 0.15.2 release * qbsp: add "-maxNodeSize" option, from txqbsp-xt. Defaults to 1024. Makes large maps process much faster and should generate better bsp trees. If it causes a problem disable with "-maxNodeSize 0" * qbsp: make "mixed face contents" and "degenerate edge" non-fatal, from txqbsp-xt * qbsp: make "-oldaxis" the default. new "-nooldaxis" flag to get the previous behaviour. * light: add "-surflight_subdivide" flag to control amount of surface lights created * light, vis: use below normal process priority on Windows * light: allow negative surface light offset * light: average the lit file color components to generate the bsp lightmap value. TODO: use a perceptually weighted average. * light: fix lighting of hipnotic rotating entities. * light: fix crash in "Bad texture axes on face:" * light: fix surface lights being mistakenly duplicated * light: add "-onlyents" * light: add "-dirtangle" setting to control dirtmapping cone angle, default 88 degrees. 2015-07-09 TyrUtils-ericw 0.15.1 release * light: .lux file support from Spike, for deluxemapping * light: add gamma control with -gamma flag and "_gamma" key * light: various optimizations * light: rename -dirty flag to -dirt for consistency * light: make fence texture tracing opt-in with the "-fence" flag. fix an issue with fence texture coords. * light: support switchable lights with any light* classname, not just "light" * light: fix debugging spam output from last build 2015-05-01 TyrUtils-ericw snapshot * light: fix hang when using _deviance, make _samples default to 16 when _deviance is set. * light: fix for always generating a .lit file when surface lights are used 2015-04-29 TyrUtils-ericw snapshot * qbsp: fix broken -onlyents flag * qbsp: fix texture offset on rotate_object, so they match in the editor. Added "-oldrottex" flag to revert to old behaviour. From txqbsp-xt. 2015-04-27 TyrUtils-ericw snapshot new features: * light: fence texture tracing, for bmodels with "_shadow" "1" * light: surface light support via "_surface" "texturename" light key convenience: * light: respect "_dirt" "-1" bmodel key in -dirtdebug mode * light: allow setting "-dist" and "-range" command-line flags in worldspawn ("_dist", "_range") * light: accept "_sunlight_mangle" as an alternative for "_sun_mangle" other: * all: increase stack size to 8MB. Fixes qbsp crash with bbin1.map on Windows, light crashes. * qbsp: switch to hardcoded MAX_MAP_PLANES (262K), speeds up map file loading phase. * qbsp: MakeFaceEdges: accelerate with a hash table to avoid slow O(n^2) search for edges * qbsp: ChooseMidPlaneFromList: fix off-by-one error in axial plane test. On the first SolidBSP pass, gives fewer split nodes on bbin1.map (128k vs 199k) * light: MatchTargets: disable copying "style" key/value from a light to the entity that targets it. Don't see any point, and causes problems if "style" is meaningful for the targetting entity (e.g. a monster). 2015-03-05 TyrUtils-ericw shapshot * light: support "_dirt" "-1" on bmodels to disable dirtmapping 2015-02-24 TyrUtils-ericw snapshot * light: _sunlight2 (sky light/light dome) support from q3map2 * light: _sunlight_penumbra (deviance) from q3map2 2015-01-31 TyrUtils-ericw snapshot * light: per-light dirtmapping control 2015-01-21 TyrUtils-ericw snapshot * light: revert trace change in TyrUtils 0.7 that was causing artifacts. fix bug in determining trace hitpoint 2015-01-19 TyrUtils-ericw snapshot * light: handle colours in the range 0-1 * light: ambient occlusion / dirtmapping from q3map2 support * qbsp: account for miptex struct in wad3 lump disksize * light: Increase precision of lightmap extents calculations * qbsp: fix coordinates in degenerate edge error in tjunc.c * build: bump the fallback version number in Makefile * bsputil: fix wad export from bsp with missing textures 2014-02-16 TyrUtils v0.15 * qbsp: Cope with textures names containing '{' or '}' (e.g. for alpha mask) * qbsp: Increase MAXEDGES limit from 32 to 64 * qbsp: Make transparent water the default (same as txqbsp) * qbsp: Improve some clip hull errors with map source line numbers * qbsp: Ignore func_detail entities on -onlyents compiles * light: Fix bug with minglight clamping with coloured lighting 2013-10-03 TyrUtils v0.14 * qbsp: Added Quake 2 map compatibility (extra surface attributes ignored) * qbsp: Add -2psb option to output in RMQ compatible BSP2 format 2013-09-30 TyrUtils v0.13 * Fix handling of func_group/detail entities with no solid brushes * Fix automatic adding of animated texture frames 2013-09-29 TyrUtils v0.12 * Implement the Darkplaces (LordHavoc) style BSP2 format and use as default * Still support the RMQ style BSP2 format (but don't create any new ones) * qbsp: Fix bug causing sky brushes to be non-solid 2013-09-24 TyrUtils v0.11 * Support BSP2 format (qbsp requires the "-bsp2" command line option) * qbsp: Fix animating texture bug when brushes are textured with alt-animations * qbsp: Fix a crash in tjunc calculations * qbsp: Exit with error if verticies exceed 65535 (BSP29 limit) * qbsp: Add experimental "-forcegoodtree" command line option (thanks Rebb) * vis: reduce "leaf recursion" error to a warning and continue processing 2013-04-25 TyrUtils v0.10 * Documentation added for bspinfo and bsputil * Fix vis bug due to missing vertex copy in v0.9 portal clip changes 2013-04-24 TyrUtils v0.9 * qbsp: fixed bad pointfile generation 2013-04-23 TyrUtils v0.8 * qbsp: fixed surface edge corruption when using skip surfaces * qbsp: fixed portal generation for transparent water and detail nodes * qbsp: added "-noskip" option for troubleshooting skip related problems * light: reduce "no model has face ###" to a warning * vis: fix portal stack corruption in ClipStackWinding * bsputil: added a "--check" option (beta!) to check internal data consistency 2013-04-10 TyrUtils v0.7 * Unix man page documentation for the main tools (qbsp, light, vis) * HTML and text documentation is generated from the man page sources * qbsp: added support for using WAD3 texture wads used by Hammer * qbsp: include clip brushes when calculating bmodel bounding box * qbsp: enable creation of clip-only bmodels * qbsp: recognise and remove *waterskip, *slimeskip and *lavaskip surfaces * qbsp: added hintskip texture support * qbsp: fixed some bugs parsing empty func_group/func_detail entities * light: implemented self shadowing and full shadows for brush models * light: implemented the "-soft" command line option * light: implemented the "-addmin" command line option * light: implemented the "_anglescale" (aka "_anglesense") key and cmdline * light: remove support for negative color components (never worked properly) * light: removed the "-nominlimit" option (now the default behaviour) * light: removed the "-compress" option (a bad idea from long ago) * light: make -gate command line affect linear falloff lights as well * vis: changed the default testlevel to 4 * vis: added the '-noambient*' options to disable auto ambient sounds. 2013-03-07 TyrUtils v0.6 * qbsp: respect floating point texture rotation and shift in map files * qbsp: support for Valve's 220 map format used in later Worldcraft/Hammer * qbsp: support func_group entities used by Radiant and similar editors * qbsp: surfaces with the skip texture are now removed from the compiled bsp * qbsp: hint brush support similar to Quake 2 for hand-tweaking the PVS * qbsp: fixed a problem where leak files were not written for hull0 or hull1 * light: fixed a race condition in multithreaded coloured light processing * light: fixed bug preventing use of all 4 light styles in a common case * light: implemented attenutation formulae "delay" 4+5, ala Bengt's tools * light: removed old bsp30 support * light: lit files now automatically generated when coloured lights detected * light: implemented 4x4 oversampling with -extra4 command line * light: implemented the -gate option to help speed processing (default 0.001) * light: implemented the "_softangle" key for spotlights * light: implemented minlighting for brush models 2013-02-25 TyrUtils v0.5 * New changelog to summarise changes going forward * light and vis both now multithreaded on Unix and Windows platforms * vis now writes a state file every 5 minutes so it can resume if needed * qbsp and vis now support a form of detail brushes, similar to Quake 2. See qbsp.txt for further details. * added a small optimisation to vis for a minor speedup (usually only 1-2%) * build system re-written and lots of cleanups all over the code