Deleting undersides - Good or bad?

I’ve always been told to delete faces that the player will never see to save on memory. For example a simple small table you would delete the underside of the surface and the undersides of the legs. What happens though when you’re baking lights into the scene? Surely you want that table surface underside so it casts a large flat shadow onto the floor?

Would be great if anyone could go into this regarding level creation in Unreal4.

I would say ,there’s nothing special regarding UE4 specifically. It’s a general thing across all engines. In short, you can either do it or you don’t. In a lot of cases the gains from doing this isn’t much these days. Also in a lot of cases you want to be able to see all sides of the model at some point. Maybe for placement variation, or movable objects, or whatever.

As far as lighting goes, you can have it cast 2 sided shadows, meaning the “open” side can also cast shadow. There are cases where this is problematic. But it shouldn’t be a huge problem overall.

I’ve worked both ways and to be honest, I think the mentality of getting rid of every last unseen polygon is more of an “old” way of squeezing out performance back when really low poly was the order of the day.

Usually this type of thing comes down to the balance. So lets say you take your little table and kill the underside faces. You save a few polygons. But now you’re limited to how you can use that table. What if you want to push one over, do you make one with and one without those faces?. That’s a much greater waste of memory. There’s always a trade off somewhere and you just need to make the choice of where you put that trade off.

There’s no right or wrong with this really. Like I said, I’ve done it both ways and sometimes I have gone back and added back faces and I’ve gone in and killed faces where I ultimately did not need them. You can always kill faces easily, but it’s much more work to add them back, so it’s worth making sure of that. In my current project, it’s probably the first project where I’m basically keeping all faces. I have not found the need to kill any faces. In the end, will I go and optimize some?.. I may very well do so, but, really it’s not actually required, I don’t think I’ll gain anything by doing so. I work with extremely low or optimized models in general.

Ultimately though, these days, really the gain for killing a few hidden polygons is not that great. Though it’s always better to work efficiently, keep good poly counts… etc. Worrying about some possible hidden faces is one of the less important things. Work efficiently in general and you won’t feel the need to kill a few polys here and there. It’s not like the old days where the difference of 1000 polygons can really help you. You need to kill 10’s or even 100’s of 1000’s of polys to make a dent on performance issues related to poly counts and in those cases, a few hidden faces isn’t gonna save you, in those cases you’ll have general problems there with overall need of optimizing other than hidden faces.

2 Likes

Great answer! Thanks for taking the time to explain.

Hi ,

I would definitely agree with Obihb here. The only place where every polygon could really count is on mobile. There is a limit per scene for any view set at 500k tris. As Obihb already stated, Optimization is key with any project and using techniques for profiling what’s going on in your scene will be more beneficial for this than a couple of polygons, even if they are never seen by the player.

I just wanted to touch on this one part though since Obihb offered some stellar advice.

Let’s look at a table example.

If you have a light in the ceiling casting light down on the table. That polygon on the bottom is never going to receive that light thus being shadowed by lightmass. The shadow that is cast on the floor is not a result of that missing polygon. It’s shadowed by anything else in the path of that light.

In this image I’ve got a little test just to show what the results would look like.

Left side (light brown): This is a box with no deleted faces. Furthest away is the top of the mesh, Closest is the bottom.
Right Side (green): This is the same box with a face deleted on the bottom. Furthest is the top of the mesh, closest is the bottom.

As you can see if there is no geometry light will pass right through. As Obihb suggested you can set the mesh to cast shadows as two sided in the details panel or make the material two sided. This would be more performance hampering than just leaving the face in the first place though.

I hope this helps add to the previous post for a little more clarification. :slight_smile:

Tim

I never thought of the light working like that with the bottom right table in the image. I get it now. Ok, I’m going to avoid double sided solution and try and just keep backfaces and undersides in since it will mostly just be squares. One other downside to this that hasn’t been mentioned is that leaving in these faces means you have to deal with their UVS (both channels) and scale them smaller than the rest so that the faces you DO see get more density. Not too much extra work.

Another downside I can think of are light rays that should bounce off from this surface, but they cant or
any dynamic light, that could somehow manage to get under the table would just pass through the table
(except your material is two-sided).