Changelog

2.0.0-alpha10

Changes

  • qbsp: .texinfo.json file is always written (simplifies passing data between qbsp and vis/light)

  • light: switchable shadow casters now self-shadow when the switchable shadow is off.

    Previously, turning off the switchable shadow would both stop casting shadows on the world and stop self-shadowing.

    This won’t be a visible change on the majority of switchable shadow uses case that are simple walls, or where the bmodel is hidden when the shadow turns off.

Features

  • vis: support _noambient on func_group to selectively disable ambient sounds from the grouped brushes

  • light: allow light -hdr, light -bspxhdr, light -lux, light -bspxlux on Q2 BSP’s. These are experimental in Q2 and not yet supported by any engines, but both .lit and BSPX HDR formats can be viewed in lightpreview with Q2 BSP’s.

Bug fixes

  • qbsp: Fix func_detail_fence causing “grey flash” on winquke, FTEQW, and others (but not Fitz/QS), for faces embedded inside the func_detail_fence’s volume.

    We were previously implemeting func_detail_fence by emitting marksurfaces for solid leafs, which are not rendered in FTEQW/winquake. The new implementation emits marksurfaces on neighbouring leafs which renders in all engines.

  • lightpreview: don’t render marksurfaces on solid leafs, for consistency with FTEQW/winquake

  • light: Fix lighting of faces embedded inside func_detail_fence (previously, always solid black)

  • light: Better check for whether a map contains color, i.e. whether a .lit file needs to be generated

Developer Changes

  • Qt 6 now required for lightpreview (previously Qt 5 was required)

  • Embree 4 is now required (previously 3 or 4 were supported)

  • Share more code between Q1 and Q2 that was previously duplicated

2.0.0-alpha9

Changes

  • qbsp: never merge across liquids, deprecate -nomergeacrossliquids

  • qbsp: remove treating __TB_empty as skip

  • qbsp: deprecate _chop and replace with _chop_order

  • macOS builds now compiled on macOS 14

Features

  • light: add _surflight_atten key, supported on worldspawn/func_group/func_detail/etc.

  • light: add _switchableshadow_target

  • qbsp: add _hulls bmodel key for omitting specific collision hulls

  • lightpreview: add “view -> move camera to” menu item, show Q2 area in statusbar

Bug fixes

2.0.0-alpha8

Changes

  • light: invalid “delay” settings are now a warning rather than a fatal error

  • qbsp: q2: write out true leaf contents even if CONTENTS_SOLID is set. Previous behaviour (including original qbsp3 compiler) was that CONTENTS_SOLID would clear any other set contents bits in leafs (but not in brushes.) (#420)

Features

  • lightpreview: show leaf contents in status bar

  • light: LIGHTING_E5BGR9 + HDR .lit support (from @dsvensson and @Shpoike)

Bug fixes

  • light: fix “mangle” on _sun 1 entities (#266)

  • light: fix sunlight artifacts (21b3b696)

  • qbsp: q2: fix areaportals which were broken in 2.0.0-alpha7 (70a08013)

2.0.0-alpha7

Changes

  • light: q2: opaque lit liquids receive light from both sides by default (specifically if they have the “warp” surf flag)

  • qbsp: remove broken -transsky feature

Features

  • bsputil: gained --svg export

  • lightpreview: add camera bookmarks, stats panel with BSP lump sizes

Bug fixes

  • qbsp: fix “sides not found” warning spam on Q1 maps with sky

  • light: fix -dirtdebug causing a .lit file to be generated in Q2 mode

  • lightpreview: fix -dirtdebug broken in Q2 mode (due to the above bug)

  • light: reduce excess memory use

Enhancements

  • qbsp: liquids are automatically detail (according to -transwater).

2.0.0-alpha6

This is the sixth alpha release of our 2.0.0 “dev builds”.

The old stable v0.18.2-rc1 release still has more optimized output for Q1 and faster/less memory use for qbsp/light, but we’re working on regressions and welcome feedback as we work towards a stable 2.0.0 build.

Changes since alpha5:

  • light: fix “-emissivequality high” having incorrect brightness due to a bad gate setting. This will cause different output from 2.0.0-alpha1 through alpha5 when emissives / bounce are in use.

  • qbsp: change so liquids don’t cause splits in perpendicular walls, by default. You can opt back into the old behaviour with “-nomergeacrossliquids” (or setting “_nomergeacrossliquids” “1” as a worldspawn key/value). This will be necessary for maps targetting water caustics (e.g. ezQuake), otherwise the water caustics effect will extend out of the water.

  • packaging: get rid of the “bin” subfolder in the releases

Fixes since alpha5:

  • fix macOS builds which were broken since alpha1

  • lightpreview: package in macOS + Linux builds (@jonathanlinat)

  • light: fix -bounce not being recognized as a shortcut for -bounce 1

  • qbsp: make Q2_SURF_ALPHATEST imply TRANSLUCENT + DETAIL

  • qbsp: never write 0, 1, or 2-vertex faces

  • qbsp: improve tjunc logic to avoid excessive welding (Previously in the alpha builds, and a regression from 0.18.1, func_detail_wall was welding to structural.)

    The new idea is, translucent things (e.g. translucent water, func_detail_fence, etc.) weld to other translucent things, and opaque things (func_detail, worldpsawn, etc.) weld to each other. func_detail_wall is special and only welds to itself.

  • qbsp: fix .tga/.jpg/.png files with the same names as .wad textures causing corrupt .bsp textures

Enhancements since alpha5:

  • docs: fill in a lot of missing documentation

Other notes:

Upcoming

Note

  • Windows builds are 64-bit only for this release. I’m planning to restore 32-bit support but dropping it for this release made a dependency update easier. Not sure how many users this affects - let me know if it is a problem for you.

Bug fixes

  • qbsp: make origin brushes not use hiprotate bounds expansion (c30a0a4)

  • qbsp: fix external maps with no worldspawn brushes (5e74b4d)

  • qbsp: fixes for -wrbrushes (cefd20c, 1577981, 209d481)

  • qbsp: fix relative paths for .wad files (79d3aa9)

  • light: fix _shadow -1 being interpreted as _shadow 1 for bmodels (b04c06a)

  • light: fix “unexpected geomID” error with bounce (dca61f8)

Enhancements

  • qbsp: initial multithreading support

  • qbsp: experimental Half-Life support (8936594)

  • qbsp: more logging of face line numbers for errors/warnings (4ec22ee)

  • qbsp: Add support for _minlight_excludeN where N is in 2..9 (0460165)

  • light: support _minlight_exclude, _lightignore on func_group, detail, etc. (b343b95, a4c1ce6)

  • light: add _nostaticlight key (2d3aa22)

  • light: add _light_alpha func_group key for making faces translucent for light (d6136c1)

  • light: bounce: also make shadow-casting bmodels bounce (unless they opt-out with _bounce -1) (5010dc9)

  • light: support “_suntexture” key on “_sun” “1” entities to limit them to being cast from a specific sky texture. (f220b2f)

  • light: support “style” / “targetname” on “_sun” “1” entities. (d2ecc73)

  • light: remove 65536 ray limit, fixes #276

  • light: support sky faces up to 10^6 units away (ba7bdf8)

  • light: allow starting assigning switchable styles before default of 32 (b132152)

  • light: add _sunlight2/_sunlight3 to be configured with a light entity, similar to “_sun” “1” (fa62b20, d4cc19a)

  • light: print key name for Key length > MAX_ENT_KEY-1 error (af4deba)

  • vis: temporary hack of raising MAX_PORTALS_ON_LEAF to 512 (e2a5f62)

Removed

  • qbsp: -oldleak, -bspleak, -contenthack flags

2019-03-25 ericw-tools 0.18.2-rc1

Bug fixes

  • qbsp: fix “_mirrorinside” on bmodels

  • qbsp: fix t-junctions on bmodels (fixes sparkles, lightmap seams, phong shading)

  • qbsp: fix a case where func_detail faces were incorrectly deleted during outside-filling

  • light: fix seams on “_mirrorinside” geometry (#236)

  • light: fix black faces with sunlight pointing straight down

  • vis: fix for microleafs blocking vis (e.g. 0.01 units thick). This fixes HOMs appearing when a map was vised. (#261)

Features

  • qbsp: support a hybrid Valve 220 texturing + q2/q3 surface flags .map format

  • qbsp: added -worldextent option for large maps (deault=65536, meaning +/-65536 units):

  • light: Add “_bounce” “-1” model entity key to prevent light from bouncing off those brushes

  • light: experimental support for lighting Quake 2 .bsp’s

2018-04-05 ericw-tools 0.18.1

  • qbsp: fix crash when worldspawn has 0 brushes

  • qbsp: support reading Q2/Q3 detail flag

  • qbsp: experimental “_noclipfaces” key

  • qbsp: fix “_mirrorinside” on bmodels

  • qbsp: improve an error message for when BSP2 is needed

  • vis: fix “average leafs visible” message overflowing

  • light: fix crash with surface lights

2018-02-18 ericw-tools 0.18

  • light: tweak phong shading to use area and angle weighting

  • light: add “_phong_angle_concave” key

  • light: fix -bspx option

2018-01-29 ericw-tools 0.17

  • qbsp: fix hint/skip having corrupt texturing with -convert option

  • qbsp: warn and heal invalid texture projections

  • qbsp: fix -omitdetail to affect all types of detail

  • light: warn and ignore invalid texture projections instead of aborting

  • light: make more robust against degenerate tris

2017-12-28 ericw-tools 0.16

  • light: add flood-filling to fix black seams in detailwall.map when no -extra/-extra4 used

  • light: fix color->greyscale conversion to be compatible with MarkV and some QuakeWorld engines

  • light: don’t mark sample points inside semi-transparent shadow casters as occluded.

  • qbsp: add “_external_map_scale” key for misc_external_map

  • qbsp: experimental func_illusionary_visblocker entity

  • qbsp: better detection of when a map exceeds BSP29 limits. Previously, a corrupt BSP would be written when nodes/leafs exceeded BSP29 limits.

  • bsputil: add –convert option. Not very useful, but can convert between BSP2 and 2PSB, for example.

  • bsputil: “–check” option logs world mins/maxs

  • bsputil, bspinfo: can now read Q2 BSP files

2017-09-17 TyrUtils-ericw 0.15.11

  • light: add “_sun” entity key to configure sunlight in an entity instead of worldspawn. More than one “_sun” entity is supported.

  • light: add “_falloff” light entity key to configure light falloff in map units. Only supported on linear (delay 0) lights.

  • light: add “_spotlightautofalloff”.

  • light: fix light cutoff on curved surfaces (https://github.com/ericwa/tyrutils-ericw/issues/172)

  • light: adjust -soft to fix regression in 0.15.10 (https://github.com/ericwa/tyrutils-ericw/issues/171)

  • qbsp: add “_mirrorinside” key for mirroring the outside faces of bmodels so they are visible from inside. for func_water, or func_illusionary fences, etc.

  • qbsp: fix CSG issue with overlapping off grid brushes (https://github.com/ericwa/tyrutils-ericw/issues/174)

  • qbsp: fix HOMs introduced in 0.15.10, which were caused by an attempt to fix leaks-through-solids in 0.15.10. To re-enable the buggy code that may fix leaks through solids but add HOMs, use “-contenthack” (https://github.com/ericwa/tyrutils-ericw/issues/175).

2017-07-30 TyrUtils-ericw 0.15.10

  • light: add “_shadowworldonly” bmodel key - only cast shadows on world, not other bmodels.

  • light: switchable bmodel shadows (requires QuakeC support, see light manual).

  • light: accept “_minlight” in worldspawn as an alias for “light”

  • light: handle degenerate faces, print out the vertex coordinates

  • qbsp: misc_external_map prefab system (see qbsp manual)

  • qbsp: don’t write unused texinfo

  • qbsp: rewrite outside filling similar to q3map

  • qbsp: revert change to SubdivideFace which was increasing faces a bit (see 53743dd)

  • qbsp: add -expand option to dump the hull expansion to a “expanded.map”, from q3map

  • qbsp: add -leaktest option to abort compilation when a leak is found, from qbsp3

  • qbsp: fix handling of duplicate planes, which was causing id1 maps to leak

  • qbsp: try to get more reliable leaf content assignment (see a910dd8)

  • bsputil: –check: print BSP tree heights at the first few levels of the tree

  • bsputil: –check: check for unreferenced texinfo, vertices, planes

  • bsputil: –check: print number of used lightstyles

  • misc: travis-ci now runs qbsp on all id1 maps, the build fails if any maps leak

2017-06-10 TyrUtils-ericw 0.15.10-beta2

  • light: styled lights no longer bounce by default, set “_bouncestyled” “1” to enable.

  • qbsp: map format conversion: fix reversing of epairs in converted maps

  • qbsp: func_detail rewrite to fix vis issues with previous version. func_detail no longer seals maps.

  • qbsp: add -omitdetail to omit all func_detail entities from the compile

  • qbsp: new func_detail_illusionary entity. func_detail variant with no collision (players / monsters / gunfire) and doesn’t split world faces. Doesn’t cast shadows unless enabled with “_shadow” “1”. Useful for hanging vines. Still creates BSP leafs. (Possible enhancement: avoid creating new leafs and just insert marksurfaces into existing leafs?)

  • qbsp: new func_detail_wall entity. func_detail variant that doesn’t split world faces. Useful for when you want a decoration touching a floor or wall to not split the floor/wall faces (you’ll get some overdraw instead.) If it completely covers up a world face, that face will get clipped away, so it’s not suitable for fence textures; see func_detail_fence instead.

  • qbsp: new func_detail_fence entity. Similar to func_detail_wall except it’s suitable for fence textures, never clips away world faces. Useful for fences, grates, etc., that are solid and block gunfire.

  • qbsp: add -forceprt1 option to generate a .prt file that GTKRadiant’s prtview plugin can load (but will be unusable by vis). When func_detail is in use you normally get a PRT2 file that ptrview can’t load.

  • qbsp, light: allow _shadow -1 to stop a func_detail from casting shadows

2017-03-26 TyrUtils-ericw 0.15.10-beta1

  • light: fix Linux binary

  • light: lights with a lightstyle now bounce

  • light: new sample point positioning code

  • light: per-light “_bouncescale” key

  • qbsp: origin brush support

  • qbsp: add -omitdetail option, strips out all func_detail brushes

  • qbsp: add -convert option for converting between .MAP formats

2016-11-20 TyrUtils-ericw 0.15.9 release

  • light: fix black fringes on bmodels that are touching against the world

  • light: light passing through glass lights up the back side

  • light: bmodels with “_alpha” < 1 and “_shadow” “1” set cast tinted shadows

  • qbsp: support Quake 3 “Brush Primitives” .MAP format

  • qbsp: save “_mincolor” for func_detail/group to the .texinfo file, now used by light

  • qbsp: performance improvements

2016-10-03 TyrUtils-ericw 0.15.8 release

  • light: fix black noise in some cases when using -bounce. (reported by Pritchard)

  • light: try to limit artifacts caused by “too many lightstyles on a face”, by saving the 4 brightest lightmaps. The previous behaviour was random, so you would likely get bad artifacts when that warning occurred.

  • light: restore and expand the “unmatched target” warnings. Now checks “target”, “killtarget”, “target2”, “angrytarget”, “deathtarget”. Also checks for any “targetname” that is never targetted.

  • light: restore support for skip-textured bmodels with “_shadow” “1”. This is only supported on bmodels where all faces are textured with “skip”.

  • light: add “_lightignore” model key, makes a model receive minlight only.

  • qbsp: accept absolute path to map (reported by lurq)

2016-09-09 TyrUtils-ericw 0.15.7 release

Bugfixes

  • light: fix shadow-casting bmodels that touch the world from messing up sample points on world faces, and prevent the world from messing up bmodel sample points (regression in 0.15.5)

  • light: clamp lightmap samples to 255 before smoothing, downscaling. reduces jaggies in cases with very bright lights casting hard shadows.

  • light: fix order of “_project_mangle” value to be consistent with “mangle”

  • light: various crash fixes

  • light: minlight no longer bounces

Performance

  • light: new, faster raytracing backend (Embree)

  • light: estimate visible bounding box each light by shooting rays in a sphere. this gives a speedup similar to vised maps in 0.15.5, without requiring the map to be vised. As a downside, there is a small chance of introducing artifacts where lights cut off too soon. Disable with “-novisapprox”.

  • light: bounce lighting code redesigned to use less memory

Other

2016-06-17 TyrUtils-ericw 0.15.6 release

  • rebuild OS X binary as it was built in debug mode by accident

2016-06-10 TyrUtils-ericw 0.15.5 release

New features

  • light: added a better options summary with the -help flag

  • light: added -bounce option, “_phong”, “_project_texture” key

  • light: use vis data to accelerate lighting

  • light: “_minlight_exclude” key to exclude a texture from receiving minlight

  • light: add “_sun2” “_sun2_color” “_sun2_mangle” which creates a second sun (unrelated to “_sunlight2” which is the sky dome light)

  • vis: support .prt files written by bjptools-xt

  • qbsp: add -objexport flag

Bugfixes

  • vis: fix ambient sounds when using func_detail, broken in tyrutils-ericw-v0.15.3

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 textb…”

  • 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