Welcome to the Second Life Forums Archive

These forums are CLOSED. Please visit the new forums HERE

Occlusion Culling and texture loading?

Haravikk Mistral
Registered User
Join date: 8 Oct 2005
Posts: 2,482
07-25-2006 03:44
This is something I'm wondering again (asked during 1.10 preview but never got a definite answer from anyone) after visiting the infamous Furnation SkyMall, which can take upwards of 10 minutes for me to fully load nearby content!

However, what I tried to figure out (to little avail since EVERYTHING was slow) was if occlusion culling is being used to determine the order in which textures are downloaded?
It seems like a logical improvement to make using it, ie; load textures in unculled cubes first, then once they're done begin loading ones that are not visible. Or alternatively devote more bandwidth to nearer textures (as much as is needed to get close to a good loading time as possible, all of it if necessary as in the previous method), with any reasonable bandwidth left over being passed over to the invisible textures so they aren't grey when they become visible.
Doing this for other forms of content (e.g preloaded sounds and even primitives) would be good too where possible. While it is primarily a rendering optimisation tool, it is perfectly suited to determining the order content is delivered, and could make a loading world quite a bit more responsive and quick (especially in regards to buildings like homes).

I've also posted a topic a little while ago about improving the culling itself, as far as I can see and understand it that is. It could be a load of ignorant fluff on my part, but I'd like to know if any such tweaks and continued improvement to occlusion culling are currently being worked on or are genuinely coming soon? We get a lot of things said that "Are coming soon" but are in fact in a queue that could take many updates to even start, whereas more performance is always better sooner rather than new features, which can come later.

The topic is titled Occlusion Culling Tweaks and details a few observations I've made and ideas on how to improve them for greater overall performance.

Thanks!
_____________________
Computer (Mac Pro):
2 x Quad Core 3.2ghz Xeon
10gb DDR2 800mhz FB-DIMMS
4 x 750gb, 32mb cache hard-drives (RAID-0/striped)
NVidia GeForce 8800GT (512mb)
Torley Linden
Enlightenment!
Join date: 15 Sep 2004
Posts: 16,530
07-25-2006 12:09
Runitai knowz occlusion culling. I will ask him.
_____________________
Runitai Linden
Linden Lab Employee
Join date: 29 Aug 2005
Posts: 52
07-25-2006 13:09
Textures are prioritized for download heavily based on visibility, and the occlusion culling sets occluded objects to not visible, so occluded objects should load their textures at a much lower priority than non occluded objects.

As per the other thread, I tried most/all of those tweaks at one point or another, and you're more or less describing the way things work now, with the exception that it is always assumed an unknown object is counted as being visible. This is because assuming the object is occluded always results in moving objects (like attachments) visibly flickering.

Keep in mind, the latency in occlusion calculations has to do with the asynchronous nature of hardware occlusion queries. There is no way to immediately determine if a node is occluded using hardware occlusion queries without severely degrading performance, as this would cause the CPU to wait on the GPU and vice versa, no matter how many prims are involved.