Hiding Unused Meshes

Blitz3D Forums/Blitz3D Programming/Hiding Unused Meshes

The forum is locked. These are the original blitzbasic.com forums, kept so they can still be read. No new topics, replies or edits can be made here. To join in, head over to the Blitz3D+ forums.

Are you kiddin? It takes a lot of time to load things. Especially the textures of the meshes.

My advice is: don't worry about EntityInView. DirectX will automaticly skip meshes from rendering when they are out of the camera range or behind the cameras back, aka not in view.

Hiding meshes will disable their collision detection, something that could be a problem (imagine you're walking backwards and the stuff behind you will not react on collsion).

Autofade is a good thing for stuff like grass. Other things like parts of the map, entrire buildings etc. should be handled by the camera range or a homebrew Hide/Show system, many times discussed under topics like "VIS Occlusion".

It's still not so clear what's the best VIS system. It really depends. EG: I was working on a VIS System for my engine. It turned out it worked at the best speed when I simply clusterized the mesh and didn't hide/show anything manually.

I used to write a VIS Compiler that was capable of storing visability data for every cluster, watched from every clusters viewpoint. When I used this Data to dynamicly show and hide things, it was even slower.

Using a map that is made of a reasonable number of clusters or parts seems to be very important. Loading a level as a single mesh is a massive bottleneck. In that case you may use some kind of clusterisation as seen in the code archives. (althouh to design a level based on clusters in the first place will surely help to reduce the surface count)