Repository navigation
Releases: metita/ReSDHLT
Release list
v0.20.0
ReSDHLT 0.20.0 reads the models for model shadows from the game, so a map
compiled outside the game folder keeps them, and stops counting player spawns
as models.
Highlights
- RAD: the
.mdlfiles for model shadows are also read from the game. After
the folder above the map's, RAD looks in-moddir <folder>(for example
Half-Life/cstrike), and without it in Counter-Strike in any Steam library
it finds. In the game it reads<mod>_addon,<mod>,<mod>_downloadsand
valve, like the engine. The GUI passes-moddirfrom the game folder set
for "Probar en el juego". - RAD: player spawns and other
info_,lightandpath_entities no longer
count as models. Theirmodelkey (gsg9.mdlon the CS spawns) only tells
the editor what to draw; with-studioshadowallthey cast shadows of
players that are not there. - RAD: a missing model gives one warning with the number of entities using it,
followed by the folders it was looked for in, instead of one warning per
entity. - RAD: a model path longer than 63 characters no longer overflows the model's
name.
Maps without shadow-casting models light the same as with 0.19.0. Checked on a
test map compiled outside the game, not in the game yet.
Full Changelog: v0.19.0...v0.20.0
v0.19.0
ReSDHLT 0.19.0 lets every model on the map cast a shadow and stops a model from
going dark under its own shadow.
Highlights
- New:
-studioshadowallin RAD ("Sombras de todos los modelos" in the GUI).
Every point entity with a.mdlmodel,cycler_spriteand the like, casts a
shadow withoutzhlt_studioshadow 1on each one. Additive models and any
other non-normal render mode under renderamt 255 are left out, and
zhlt_studioshadow 0opts a single model out. It is off by default. RAD
looks for the models in the folder abovemaps, so compile inside the game
folder or the shadows are skipped. - RAD: a model no longer goes dark from its own shadow. The game lights a whole
model with one lightmap texel under it, and a model that shadowed that texel
came out black. RAD now finds that texel the way the engine does and keeps it
out of the model's own shadow. In a test room a tree right under a light read
69 from its own shadow and now reads 159, against 160 for the same tree
without shadows. The floor right under the model comes out a little lighter
(5x5 texels, 3x3 with-extra). It is on by default and only touches models
that cast shadows; "Dejar que el modelo tape su luz" in the GUI, or
-nostudiolightspot, turns it off. - RAD: a warning for every
.mdlthe game will draw black because there is no
lightmap under it, saying when its origin is inside a solid.
Maps without shadow-casting models light the same as with 0.18.0. Checked on a
test map, not in the game yet: look at a map with models before you publish it.
Full Changelog: v0.18.0...v0.19.0
v0.18.0
ReSDHLT 0.18.0 adds an optional way to subdivide faces that leaves fewer of
them to draw, makes RAD's bounces 2.4 times faster and lets the GUI copy the
map to the game and open it.
Highlights
- New:
-gridsubdividein BSP ("Subdividir por celdas de luz" in the GUI).
The engine takes a face that covers 16 lightmap cells or fewer; the classic
rule cuts every 224 units without looking at the cells, so a 256 unit wall
on the grid came out as 224 + 32. With the option BSP counts the cells the
way the engine does and only cuts when it has to: 3% to 20% fewer faces on
the maps measured (ze_sanctorum 5882 to 5256, ba_coliseum 815 to 655), with
the same geometry and lighting. BSP counts again before it writes the file
and stops with an error rather than leave a map that does not load. It is
off by default and has not been checked in the game yet: try the map before
you publish it. - RAD: each bounce is 2.4 times faster and the CPU gather about 7% faster.
fp_squidgame_thno went from 16.7 s to 14.6 s with the GPU and from 19.0 s to
16.8 s on the CPU. BSP is about 17% faster on the same map. - GUI: "Probar en el juego" in the Compilar tab copies the
.bspto
cstrike/mapswhen a compile ends well, opens the game on the map, or both. - GUI: the taskbar button asks for attention when a compile ends and the
window is in the background. - Fixed: running VIS twice on the same BSP output stopped with "Corrupted leaf
mapping". The error now says to run BSP again first.
Without -gridsubdivide the tools write the same .bsp as 0.17.2, byte for
byte, on every map checked.
Full Changelog: v0.17.2...v0.18.0
v0.17.2
ReSDHLT 0.17.2 keeps RAD alive when the GPU driver crashes on start.
Highlights
- Fixed: on some PCs RAD with the GPU on died right after the visibility
matrix, with no error in the log and exit code -1073741819 (0xC0000005).
The crash happened inside the Vulkan driver or an overlay layer while it
started. RAD now starts Vulkan without the overlay layers, and if the driver
still crashes it prints the reason and finishes the lighting on the CPU. - The GUI shows the exit code of a stage that fails, so a crash no longer
looks like a silent error. - The
-texchopwarning only shows below 16, as it says.
Full Changelog: v0.17.1...v0.17.2
v0.17.1
ReSDHLT 0.17.1 fixes maps with a dot in their name.
Highlights
- Fixed: a map named like
pl_2.1.mapcompiled through CSG and then BSP
stopped with "BSP terminó con error" and nothing inpl_2.1.log. The tools
took the.1for an extension and went looking forpl_2.bsp, writing the
real error topl_2.log. They now only strip.map,.bspand.ent, and
the GUI passes BSP, VIS and RAD the fullpl_2.1.bsp, so the dot stays part
of the name all the way through.
Full Changelog: v0.17.0...v0.17.1
v0.17.0
ReSDHLT 0.17.0 fixes dark moving entities under ambient occlusion and trims
the shadow rays RAD traces for nothing.
Highlights
- Fixed: with
-aoor-aoall, a func_plat, func_door, func_train or any
other entity that moves came out dark. Its occlusion was baked where it
starts (a plat down in its shaft, walled in) and went with it everywhere.
Those entities get no ambient occlusion now.zhlt_noao 1turns it off on
any other brush entity. - New:
-lightskip(default 0.001). A light that could add less than a
thousandth of a lightmap step to a sample gets no shadow ray, on the CPU and
in the GPU kernel. On ze_elysium_b1 that is 19% of all shadow rays: 33.7 s to
31.8 s with the GPU, 70.9 s to 65.1 s on the CPU. 1% of the lighting bytes
move by 1/255.-lightskip 0gives the previous output byte for byte.
Full Changelog: v0.16.0...v0.17.0
v0.16.0
ReSDHLT 0.16.0 makes RAD with the GPU a third faster again.
Highlights
- On ze_elysium_b1 with the GUI's settings, RAD went from 52 s in 0.15.0 to
34 s, with the same .bsp as 0.15.0's GPU output. - The GPU and the CPU now work at the same time: while the GPU lights one
batch of faces, the CPU prepares the next one and finishes the previous. - The texlight pairs the GPU hands back to the CPU are resolved on all cores;
before, they ran on one thread and hid inside the GPU's time. - Automatic Vismatrix picks sparse when the GPU is on, since the GPU only
computes transfer factors for that matrix. - BuildVisLeafs no longer scans every face of the map for each leaf.
- On the CPU alone the .bsp is byte for byte the one 0.14.0 wrote.
Full Changelog: v0.15.0...v0.16.0
v0.15.0
ReSDHLT 0.15.0 makes RAD much faster on maps with many lights, such as maps
lit by texlights.
Highlights
- On ze_elysium_b1 (1,561 direct lights), with the GUI's settings, RAD went
from 88.5 s to 49 s with the GPU on, and to 70.5 s on the CPU alone. - New:
-vismatrix auto. RAD uses the fast plain visibility matrix when it
needs 512 MB or less, and the compressed one otherwise. On that map this
phase went from 14 s to 3.4 s. - The plain visibility matrix builds twice as fast.
- RAD no longer walks every leaf of the map for each light sample.
- On the CPU the .bsp is byte-identical to 0.14.0 on the five maps tested.
- GUI: Vismatrix now defaults to automatic and GPU acceleration defaults to on,
with RAD choosing CPU or GPU for each phase. Without a Vulkan driver it
falls back to the CPU. With the GPU, 0.6% of the lighting bytes change, by
3/255 at most, which does not show. Projects saved with the old defaults
move to the new ones once; values you changed by hand stay as they are.
Full Changelog: v0.14.0...v0.15.0
v0.14.0
ReSDHLT 0.14.0 removes the world faces a func_wall hides completely, and fixes
two misleading results of the Análisis tab.
Highlights
- New: "Poner NULL en caras tapadas" in the CSG tab (
-autonull). World faces
that a static func_wall covers entirely are set to NULL, as you would do by
hand, without touching the editor. Only a func_wall nothing can change counts:
no targetname, rendermode Normal, no zhlt_invisible or zhlt_noclip, and only
opaque textures. A face is removed only when one of its brushes covers the
whole face. Off by default: without it the map compiles exactly as in 0.13.0. - Fixed: the Análisis tab no longer treats a func_illusionary as covering what
is behind it. It is not solid, so a player can walk into a bush and see the
floor under it; putting NULL there would show the void. - Fixed: a spot a static func_wall covers is no longer reported as a hole, and
hole rays no longer start inside one.
Full Changelog: v0.13.0...v0.14.0
v0.13.0
ReSDHLT 0.13.0 puts everything in the GUI: every option this fork adds has a
control, and the compiled map gets checked without Python.
Highlights
- New in the CSG tab, "Brushes deformados": the fix for brushes bent with vertex
manipulation and the gap that triggers it (-noconvexfix,-convexgap). - New in the RAD tab, "Sombras y oclusión": ambient occlusion (
-aoor
-aoall, with scale, opacity, falloff, rays and color), soft shadows (-pcf)
and-blurclamp. All off by default: without touching them the map compiles
exactly as before. - New "Análisis" tab. After every successful compile it checks the
.bspby
itself: see-through holes, the areas that draw the most wpoly, faces hidden
behind a func_wall or func_illusionary or buried in walls, and broken
geometry. Each finding has a coordinate to copy, and each list saves as a
pointfile you open in J.A.C.K. with Map > Load Pointfile, like a leak trail. - The Python scripts stay in the repo for command-line use; the GUI gives the
same results. - The compile tools themselves did not change: same output as 0.12.0.
Full Changelog: v0.12.0...v0.13.0