Can I view player collision without drawing render geo?

Using the “player collision” viewport, I’m drawing render collision over world geo. While useful, it’s tanking my performance. Is it possible to draw only player collision, in the hopes of retaining as much performance as possible?

You can do this by setting your view mode to player collision:

thanks. but when i do that, i’m drawing render geo and player collision. hoping to just render just player collision. i’m at about 5 fps right now and it takes about 60 seconds to restore normal performance when i exit the editor

Instead of using player collisions view you can turn off ‘hidden in game’ flag on your pawn primitive colliders, while it won’t visualize collisions per se might be good enough approximation?

laggy, i’m not sure i follow. i’m new to a team making an open world game. there are thousands of assets and instances. if i’m understanding correctly, you’re suggesting i toggle a bunch of assets to approximate collision?

my contribution to the team is artist. so i’m currently authoring wallsets and assets, and then trying to identify problem areas before i submit. but with render geo visible, that’s not an option. nevermind the performance hits i’m getting that make navigation near impossible

nope, since I don’t know anything about your setup I’m suggesting to unhide colliders on your player pawn which may or may not be what you are looking for. If you just have bunch of assets to check if player fits in you can do that in empty level instead of proper game world? btw how many frames do you get without collision drawing?

With player collision enabled, I’m getting ~5 FPS.
2023-03-03 12_25_28-Moon - Unreal Editor

With it disabled, and the game running lit/ llumen/ naninte meshes I’m getting ~30 FPS.
2023-03-03 12_25_46-Moon - Unreal Editor

What I find most unusual is that in a test level, I dropped some assets and am not seeing any render geo visible. Only in the main level that matters.

Above, that’s exactly what I’m after- to only view player collion in the viewport. What settings could have changed to caused my viewport to display both?

I don’t know what exactly do you mean by ‘level geo’, in ‘player collision’ view mode collisions are drawn as solid shapes, including landscape. Foliage and instanced static meshes are drawn as usual even if they have collisions. Maybe you just have a lot of collision boxes to be drawn? I’ve seen some assets on the market place that have hundreds of colliders inside a fairly simple shapes.

Apologies for poor communication. When I’m in the game, this is a screenshot of what I see when player collision is enabled. All the geometry is displayed along with player geo, in an “unlit” view.

And in a test level, this is a screenshot of what I see when player collision is enabled. All the render geometry is hidden and I only see player collision.

I’m not sure what’s causing the two levels to display different results when using the same button (in this case “player collision”) but my guess is that drawing all this geometry on screen is what’s causing my performance drops.

Which is basically my original question. How do I enable player collision and hide all geometry except player collision.

As shown in your own second image, it is supposed to render only the player collision.

There is something wrong with your project. Try troubleshooting to see what may help- ie creating a new level to see if it’s a project-wide or level-specific issue.

Just a side note- you really should use simplified custom colliders.
You can make a custom mesh in a program like blender and use that as the custom collider.
You probably don’t need every indent on a house to have a collider reflecting it.

Unless you have a really bad system, there is absolutely no way you should be getting 30fps even with it disabled.
Lumen isn’t the most performant, but it certainly wouldn’t decrease your FPS to 30 unless you were already getting low FPS- and nanite boosts performance.

Lots to unpack here. I don’t think there’s something “wrong” with my project. Both images are from the same project, but the second is in a separate level. It’s clear the project is capable of displaying only player collision. I just don’t know how to toggle it.

If I were a betting man, I’d wager it has something to do with world settings. Partly because that seems like where the toggle would be, but also because those settings didn’t carry over when I created a new level. So that’s why I’n here. If you, or anybody else, know what setting I’m looking for so I can disable the render geo when viewing player collision.

As for your other notes, it’s a little too off topic to go into. But TLDR, I’m using very simple colliders. Both images are referencing the same assets- none of this “100 colliders” riff raff. You just can’t tell though because render geo is visible- which is what I’m trying to resolve.

Regarding FPS, there are too many factors at play to really address this. From light count, light fade distance, shadows, draw distance, overdraw, asset count, LODs, and yadda yadda. Not to mention hardware. Overall though, I’m fine with 30 FPS when working. Game runs at 60 from our builds.

Back to the topic at hand- I’m only trying to disable render geo when toggling the player collision viewport.

Gray is supposed to be landscape, is this what you mean by ‘render geo’? One way or another you just have too much stuff to draw for your card to handle which probably also means problem with collision complexity.

the grey is a metal asset in a proxy state

Going to necro this so someone else can find this and maybe Epic can fix this. If your meshes are Nanite enabled that would be why this is occurring. It appears to be a render bug with that specific viewmode. Happens on any nanite enabled mesh.

1 Like