Page 1 of 1

How far does vis see?

Posted: Wed Jun 16, 2010 2:31 am
by Mexicouger
Well, I am wondering Why vis can see on the other side of walls and stuff. If I make a Brush and Make it func_wall, So it doesn't split the brush it's touching, Will Vis see it as an object and a wall? I mean, what's the negatives to using Func_walls.

Because I have a room under the ground. I have some quake heads in there. The room is not visible at all where I am, But if I get directly above the room and Look down, While I have r_speeds 1 on, My epoly count will go up, Indicating that It is reading the model. Why is that? is there a certain thickness or something?

Posted: Wed Jun 16, 2010 4:04 am
by Downsider
func_wall is treated like any other brush-based entity and it does not affect VIS whatsoever.

Posted: Wed Jun 16, 2010 5:35 am
by Mexicouger
So when you say Doesn't effect Vis whatsoever, Do you mean Vis ignores it, OR vis runs just like normal, As if it weren't even a Func_wall or entity?

I think I gotcha. I took your idea, And made some complex brushes on 1 side, And put a func_illusionary with an invisible texture blocking off me and those complex brushes. It still sees them. yet vis takes 6 minutes to vis this little box. And when I go into the map and Type r_speeds 1, It sees the brushes... Vis is flippin Confusing...

Posted: Wed Jun 16, 2010 5:57 am
by Downsider
VIS is taking a long time because of the complex brushes you were talking about. It creates visleafs for them.

Posted: Wed Jun 16, 2010 7:33 am
by negke
What the player sees is not automatically what the engine sees.

VIS determines which point in the map can be seen from where, thus what the engine has to render at any given time. The map is divided into so-called portals depending on the geometry which then undergo a visibility check. Like Downsider says, func_ entites don't affect VIS, it only focuses on solid geometry. Different areas need to be properly blocked off by regular brushes for this to work (google "vis blocking"). That's why there are so many L-shaped corridors in stock Quake, for example.

To get an idea of how VIS works, run through a stock map with "r_showtris 1" (in Fitzquake or DP). This is what the engine sees.

Posted: Wed Jun 16, 2010 9:05 am
by Spike
func_* does not block light, they only accept it.

Posted: Wed Jun 16, 2010 3:36 pm
by goldenboy
everything that's an entity except worldspawn is ignored by vis. In other words, a func_wall does NOT block the line of sight, to vis at least.

Doors don't block vis either (!)

The only thing that will block the line of sight, to vis, is solid brush geometry - corners of corridors, solid walls (like in donut corridors - you know, corridors to both sides and a solid wall in the middle).

If you can see directly from one area into another, and you have a very long line of sight this way, Quake has to render both areas at the same time. Ideally, everything that the player cannot see is not drawn (culled), so the game will run faster (lower r_speeds).

Slanted brushes, like triangle terrain etc, will increase the number of portals required as far as I know... -> complicated brushwork.

Vis is a pretty weird customer, though. Sometimes you think you have decent vis blocking, and then when you look closer (some engines have r_lockpvs or r_lockfrustum commands, which "freeze" the current state of rendering and let you move around to see what is really being drawn), you'll have a nice surprise where half the map is indeed drawn... because VIS found a loophole somewhere.

endless "fun".

It is tempting to say "fuck VIS" and require recent hardware instead.

Posted: Wed Jun 16, 2010 7:39 pm
by Mexicouger
Alright, I getcha now. I guess that Explains why Entity brushes don't fracture Solids. Makes sense now. 1 Time, I made the entire map a func_wall, And I got an error Because It didn't find any brushes. That explains alot. And I must have some sort of leak or something. I guess Ima fire it up In darkplaces and Do some testing. (I normally test in Kurok psp). It just kinda sucks having to go and find a super small area where VIS sees. But the end result is Promising. I just wish that Someone Came up with an awesome way to trick VIs and We could get some speedup for psp mods.

Posted: Wed Jun 16, 2010 7:51 pm
by Downsider
Mexicouger wrote:Alright, I getcha now. I guess that Explains why Entity brushes don't fracture Solids. Makes sense now. 1 Time, I made the entire map a func_wall, And I got an error Because It didn't find any brushes. That explains alot. And I must have some sort of leak or something. I guess Ima fire it up In darkplaces and Do some testing. (I normally test in Kurok psp). It just kinda sucks having to go and find a super small area where VIS sees. But the end result is Promising. I just wish that Someone Came up with an awesome way to trick VIs and We could get some speedup for psp mods.
If there's a leak, VIS doesn't run.

Posted: Wed Jun 16, 2010 7:56 pm
by Mexicouger
Downsider wrote:
Mexicouger wrote:Alright, I getcha now. I guess that Explains why Entity brushes don't fracture Solids. Makes sense now. 1 Time, I made the entire map a func_wall, And I got an error Because It didn't find any brushes. That explains alot. And I must have some sort of leak or something. I guess Ima fire it up In darkplaces and Do some testing. (I normally test in Kurok psp). It just kinda sucks having to go and find a super small area where VIS sees. But the end result is Promising. I just wish that Someone Came up with an awesome way to trick VIs and We could get some speedup for psp mods.
If there's a leak, VIS doesn't run.
I know that, I meant If there is a small crack, dividing 2 areas, VIS thinks it can see the other side. I apparently Have a small crack somewhere, So vis can partially see on the other side.