Copy Link
Add to Bookmark

Quake Editing Digest Volume 1 : Number 15

eZine's profile picture
Published in 
quake editing digest
 · 20 Apr 2024

quake-editing-digest       Friday, 22 March 1996       Volume 01 : Number 015 

More Visibility Progress
RE: Visibility Lists Revisited


From: (David Etherton)
Date: Wed, 20 Mar 1996 23:13:19 +0800
Subject: More Visibility Progress

Okay, here's what I've been able to nail down.

- - If a leaf's visibility offset is -1, this means that it can see all
other leaves. Likewise, all other leaves can see this one. I determined
this by setting every leaf's offset to -1 in test1.bsp and then noting
that the reverse BSP draw now showed the entire level (and the framerate
dropped even more).

- - The visibility list is 1-based, not 0-based. Furthermore, individual
bits are encoded using (1<<((offset-1)&7).

With this new formula, I was able to finally verify that every leaf's
visibility list does indeed contain its own leaf. So, in other words,
the visibility list

10 ff 00 03 7f

"unpacks" to

10 ff 00 00 00 7f

Leaf 5 is visible because 0x10 & (1<<((5-1)&7)) is true.
Leaves 9-16 are visible, leaves 1,2,3,4,6,7,8,17-40 are
not visible, and leaves 41-47 are visible. Leaf 48 is
not visible either. (It's almost midnight here, hope I
didn't screw that up).

Hope this helps,

- -Dave


From: Olivier <>
Date: 21 Mar 96 10:31:43+0100
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.



End of quake-editing-digest V1 #15

← previous
next →
sending ...
New to Neperos ? Sign Up for free
download Neperos App from Google Play
install Neperos as PWA

Let's discover also

Recent Articles

Recent Comments

Neperos cookies
This website uses cookies to store your preferences and improve the service. Cookies authorization will allow me and / or my partners to process personal data such as browsing behaviour.

By pressing OK you agree to the Terms of Service and acknowledge the Privacy Policy

By pressing REJECT you will be able to continue to use Neperos (like read articles or write comments) but some important cookies will not be set. This may affect certain features and functions of the platform.