q3map2/vis


(VolumetricSteve) #1

so, this map i’ve been working on for about 4 weeks is coming to the end of its development. However, the last room I added made the -vis process time go from about 8 minutes shoot up to about 4 hours. I have no idea what’s so special about one big room that looks into another big room, but apparently that just murdered my vis time, even my friend’s 3Ghz quad core system takes just about over an hour to do the vis process on my map.

Isn’t there something about hint brushes…or…vis portals or something like that where you can tell the compiler where to put the splits so it doesn’t have to spend hours figuring it out at compile time?

Thanks


(-SSF-Sage) #2

You probably forgot to turn the needed brushes detail. Or you don’t know about structural vs. detail brushes at all. Only structural brushes makes splits.


(VolumetricSteve) #3

That’s…a really good point…huh

ok, I’ll try making more non-hull things into detail brushes.

…that should fix it.

Thank you.


(VolumetricSteve) #4

same problem, need a different answer.

I’ve been working on a new map…the last map I had this problem with ended up having about 15,000 brushes, I was able to “detail-out” about 2,000 of them which helped a LOT. However, the map I’m working on now…this is a different beast.

I’d say this level is about half way done…maybe less than half…and it’s already at 35,000 brushes. While I realize quake 3 was not intended to handle this level of complexity, that doesn’t mean that it can’t. I can get the BSP and Light processes to compile just fine, Vis…is either all or nothing.

According to the tests I’ve done so far…
I can only get “vis -fast” to complete correctly, OR I have to set every brush to be a detail except for the hull. What i’ve done is I made the whole level “detailed” and then I went through by hand and selected the brushes that were the “outside” of the map, and made all of those structural. For all I know q3map2 does that automatically…but…I did it anyway and it works. Naturally, the problem now is that there is no REAL vis computation being done, I’ve just found a way to make vis work…by ensuring that it doesn’t calculate anything.

A lot of the partitions of visual space are made up by stair-cases, so what I’m trying to do now is take that version where only the hull is structural, and i’m making hint brushes that take up the volumetric space of the stairs (roughly)

in other words, stairs have a jagged shape when viewed from the size, and I’m assuming that all of those angles add a LOT to the vis time (because there are literally thousands of them) so I’m putting in hint brushes under the stairs that are the shape of a razor blade sticking out of a box cutter. I figure this way, the maximum amount of space inside the stairs is taken up with a single brush that’ll occlude or “vis-out” the stuff behind it as opposed to calculating hundreds of times more visportals per staircase.

I’m trying to think of other ways to work around the vis issue because there are a LOT of triangles processed in the whole map, but the way I have it put together, you shouldn’t be able to see more than like…2,000 or maybe 5,000 triangles at a time if vis worked the way it should.

Any suggestions? thanks

*******edit

I’ve been adding hint brushes, and I’m getting slightly higher frame rates…but not in places I’d expect to have the best improvements, for example, I’ll go up next to a huge wall that clearly obscures everything behind it, so really I should be hitting 90fps as quake 3 should only be drawing that wall, but it’s still drawing almost everything behind the wall, what gives? I’ve also noticed that q3map2 automatically produces 1024^3 cubes that become the visportals…is there a way to make these automatically generated visportals more like 512^3 or 256^3? I wonder if a more detailed data-set would help quake 3 draw the right things…? Thanks again

*****re-edit

I tried manually putting in a smaller grid of those cubes, but it seemed roughly as effective as chemo therapy. Before I did that, it took seconds to do vis, this last time it took 4 and a half hours JUST for vis. the in-game framerates were sometimes 5fps higher in some places, but that’s still not right.

Essentially the problem i’m having is that I have my whole map is on the inside of a rectangular prism, and towards the center of the prism there are little partitioned rooms, and when you view it all from a distance, all of the walls of the stuff in the middle obscure the stuff behind it.
The stuff inside the rooms at the middle of the prism is fairly complicated to draw, but it should be taken off the draw list if you’re looking at it from the outside assuming Vis does what I think it does, and assuming it’s doing that. What i’m finding though is when I do full Vis compiles, there are more visportals…but it’s like they don’t make a difference at all. Like I mentioned earlier, going up to a wall and looking directly at it, Quake 3 should know that it shouldn’t draw anything behind it. In my case, Quake 3 draws EVERYTHING behind it. I’ve looked at a bunch of tutorials for hint brushing maps, and those tricks just don’t seem to be helping much. Why does quake 3 love to draw everything all the time? How can I make it stop?


(obsidian) #5

You might want to read up about how the engine creates stuff like portals and blocks to better understand exactly what is going on. Try this:

http://www.quake3world.com/forum/viewtopic.php?t=3620