No BSP-Tree in UE4?

I red U4 doesn’t use anymore BSP-Tree spatial structure tu accelerate the frustum culling.

Does it now use a stupid and slow brute force frustum test on all objects of the maps ?..

If UE4 isn’t optimized anymore for games based on a complex architecture, what sort of games is it optimized for now ? Large outdoors like CryEngine ?

Pretty much no one uses BSP tree for level geometry anymore. It was a technique designed to cull individual polygons, which is infeasible nowadays where scenes are displaying millions of them at once and built mostly with meshes.

AFAIK UE4 has two visibility culling mechanisms: hardware occlusion queries and precomputed visibility. The former is fully automatic and can deal with fully dynamic scenes but is not available on mobile platforms while the later requires manual placement of Precomputed Visibility Volumes in the areas the player/camera can access, which will generate spatially-specific visibility lists for static objects during build time.

Thanks for your answer.

So what spatial structure is used now to perform occlusion query and store precomptuded visibility cells ?
An octree ?

With such a rude tone from original poster of this thread, i wasn’t expecting such great answers. A real Gentleman.

I’m sorry my english is a bit clumsy, i’m not a native english speaker. :wink:

Another question about occlusion query, can we accelerate it with primitives ?

Unfortunately, I’m not knowledgeable on the internal workings of the precomputed visibility system and it’s not very well documented. I’m afraid you’d have to take a look at its source code to get an idea of the specifics, unless someone more familiar with it drops by on this thread.

From its description, I suppose it splits the visibility volumes in cells and pre-calculates a list of visible static meshes from each cell (I would need to read the source to find out the actual data structures used for this). I don’t know if it also generates octree cells for dynamic objects. It would be nice if this were better documented.

Anyway, I believe there are visualization modes and stat commands for debugging and profiling visibility and occlusion. That should at least help in letting you know if things are working as intended.