RE: Visibility Lists Revisited

Olivier (
21 Mar 96 10:31:43+0100

Date: 21 Mar 96 10:31:43+0100
From: Olivier <>
Subject: RE: Visibility Lists Revisited

>Olivier has probably already figured this out and written it up in
> the specs, but just in case...
Yeah, but I found out only this morning (because I wasted time trying
to check if it was related to BSP trees, as experiments seems to show)
You're first to claim.

>It looks like the visibility lists are RLE compressed.
I confirm this. My explanation differs a bit though.

>It seems like RLE compressing 0xFF's as well as 0x00's would work
>well, but who am I to question to id gods? :)
I think they DO NOT DECOMPRESS the visilists in memory.

The WinTex visibility list viewer just decodes the visilists each
time it's needed. If you test for zero, and unpack on the fly, you go
faster than if you read the unpacked visibility list, even from the
processor L2 cache. BTW, that's would explain why only ZERO is tested,
two tests would slow down the processor too much.

>I hope this furthers the Great Hacking Effort...
Sure justify a mention in upcoming specs 3.1.
Nice to see I'm not the only one hacking levels to death.

Well, now the spec is complete. I just have to correct it and publish.


BTW, anyone has already swam into acid? it hurts. less than lava, though.
Leaf code for acid is -4

Another trick: if you put a leaf code of -3 (water) in a leaf, then
the player inside can swim, but his vision is blurred. whereas players
outside the leaf can see him as usual, not blurred. Now that's a deadly
deathmatch trick :-)
I love that concept of water appearing by surprise in the middle of nowhere.