Culling/Visibility Techniques

I’m still getting used to the volume system of culling in UE after years of experience with portal based visibility systems, so I have a few questions.

1)Are there any flags for always draw? ie I always want this radio tower mesh to draw no matter where I am in the level and the building below the tower should cull out. I know a distance of 0 will give never cull but I figured that wouldn’t work inside another volume because it wasn’t the most aggressive. Maybe I’m wrong.

2)Testing- is F1 wireframe mode a valid way to debug occlusion in the engine? Are there other methods?

3)Terrain - having a number of issues with terrain occlusion, don’t even know if this is possible. I’d love any ideas on this.

How can I turn the terrain off when I’m inside cave geo? When I’m inside my cave, the outside world is still drawing. I’m using culling volumes, even some of the cave sections are still drawing when I’m on the terrain.

This was on idea I had and I don’t even know if that is possible, can you access rendering visibility through blueprints?

  1. Is there any equivalent of a placeable vis blocker? I know UE uses a different kind of rendering where it uses a depth buffer to determine visibility right? I would still think something manual would be helpful.

Feel free to add anything else you’ve found helpful in optimization.

Just going by UE3 knowledge here as I haven’t looked at UE4 a lot but most of it is pretty similar so:

  1. There should be an “Allow CullDistance Volume” setting or similar on your tower mesh actor. Untick that to make sure it always uses your draw distance of 0 and it will always draw.

  2. Wireframe will show you your distance culling but I don’t think will show you your auto/gpu occlusion happening. There is an option to turn on culling in viewports (so as you move around in perspective, the orthographic viewports show all the occlusion happening including frustum culling) but I never found it particularly useful. My most trusted method is just to go to a spot in-game and use the console command “freezerendering” (I bind that to a key) - then you can zoom around and see what was being rendered at that point, including GPU occlusion.

  3. Hm yea not sure if there is any way to specifically cull terrain at any point unless you can use blueprint to toggle off the whole landscape (or use streaming). Landscape components should get GPU occluded though if their bounds are deemed to be occluded.

When it comes down to it (again, still going by UE3 here so forgive me if it’s changed a bit), you mainly have your CullDistance/MaxDrawDistance and your streaming to manage visibility manually. You want to do as much as you can with those and GPU occlusion should take care of the rest. GPU occlusion is pretty fast and cheap, albeit a little delayed if it’s doing lots of work.

That said, I’ve always wanted some better control over visibility to squeeze the most out of things like consoles (especially when you have to deal with split screen). I started coding some volumes that kinda emulated a basic portal system but never got the time to finish them.

  1. you are just abel to cull an entire terrain actor -> as Spoondog already mentioned with level streaming/world composition :slight_smile:

Thanks guys- I did forget to mention this is multiplayer so level streaming might be off the plate. Or am I wrong about that? I also just have one landscape actor.