What is most efficient? Two sided materials or 300k more polygons?

So many CAD models in at least the boat and yacht industry does not have wall thickness on their parts.

This goes for pretty much anything that’s made out of fiber glass or vacuum molding.

I know that Epic people say that it’s bad to put two sided materials on everything (which 100% of all CAD applications do), but even if it’s possible to add thickness (which in som cases it’s not), is it really better to have 300k more polygons (per object in some instances)?

Before someone says “Nanite”, even for the cases where it works to add thickness (again, not all cases), does it even work in VR?

I think it is,

Triangles with double sided material re rendered no matter if they face camera or
not. Geometry that has single sided material and its normal is away from camera is skipped, this is done on hardware level so checking it does not affect rendering or cpu, however skipping those surfaces is.

Looks silly at first glance, but if you have some curvy surface, and camera is not perpendicular, there will be a lot of triangles rendered with two sided material, while they would be skipped with single sided mat.

Best way is to create shell of outside mesh for inside part of boat (bit smaller, and flip faces, also if possible reduce number of faces). I tried to use some CAD meshes, and usually they are terrible for game. Missing uvs, some tiny detail with 500k polys (usually tiny torus that is almost invisible).

That tiny torus is a radius fillet that failed to import properly, and should be reported to the Datasmith team so they can fix it. :slight_smile:

But again, it’s not always possible to create thickness, and it’s extra work for the person who wants to import the CAD into Unreal anyway (also, we’re not doing games here).

If you have few (or dozen) of such models it will be fine, however if you make whole game out of such poor quality unoptimized models your project will suffer.

UNREAL is not 3d app or CAD, its game engine, you should optimize those models.
Many years ago i found some great 3d model website (some cad professional page), and they had 1 or 2 demo models. Ant those were terrible for unreal. No UVs, no second uv for lightmaps, many surfaces that should be 2 sided material, degenerate triangles, almost like every possible error in model that could be done they did. And at that time it was “top” 3d model package.

The fact that double-sided triangles are rendered no matter what doesn’t matter here, because you have to render those triangles anyway – either as separate triangle lists with a second winding, or as double-sided. The culling doesn’t matter – if it blocks the background, the triangle needs rendering.

The one efficiency problem I can think of is the shader needs to do a little more work to invert the normal, and your normal maps will end up mirrored on the backside because of the flipped UV order. If you’re OK with those artifacts, and frame rate is good enough for you, then you can use double-sided materials.

Except EPIC is explicitly also trying to sell it as an archviz / car UI / movie production / virtual set product. So, it is a 3D app and CAD app, too.

Yes epic made fine truck that they try to sell now as boat plane tank, racing car and wheelchair. But it is still a truck at its core.

I don’t disagree!

I think they have a better chance of selling into CAD space now, than the CAD/scene-graph people did trying to sell into game space in the past, though. (OpenVega for games? Yeah, no.)

Anyway, if you need those triangles rendered, and can live with the mirrored tangent space (“inverted normal maps”) then double-sided can be fine. As long as it looks the way you want, and you hit your performance budget, whatever it is, all is good!

Yup, unreal at its core is game engine, meshes should be optimized like they are for games. And i think that biggest pull for CAD and archviz community is realtime rendering, so those meshes should be properly optimized.

1 Like