3D-modeling for UE4 -Myths Busted?

I have a couple of questions, any help would be hugely appreciated…

  1. We were taught to make our models out of one single clean mesh, this means no exposed edges like in this image:

However one of my old tutors told me that “this is more common than you would think”, and in the excellent ‘Create a current gen hot rod’ modelling tutorials, the guy (sorry, can’t remember his name) leaves hundreds, if not thousands of these ‘messy edges’. Creating ‘single’ meshes often increases my polycount substantially (and can be very time consuming when working purely with quads). How important is it, is it an issue in modern engines like UE4?
-If so, to what extent does it affect rendering time?
-Will I get hit with a load of t-vert warnings when I try exporting as an .FBX?

  1. Exactly how ‘low’ should my low-poly models be?..
    I’ve read elsewhere that the only way to know for sure is to test in the engine to see how your framerate is, but this isn’t very helpful for the poor sod slaving away at Max (in this case me). It leaves me suffering with severe “polycount anxiety”. Getting it wrong means starting the whole dam workflow again from scratch.
    -As a rough rule of thumb, how many polys can UE4 handle on screen at the same time without significant performance loss -are we talking 100k or 1 million?
    -I know static meshes can be huge, but my game is sea-based …that means my ships, subs, and planes are all floating/flying -will this make a significant difference?

Haha, thats a good one.
1.
As long as those types of setups like on the screenshot are on the inside of the models that isnt gonna be seen, its fine.
As far as I know ue4 also doesnt care if your models consist of a single shell or not. As long as its all combined and the number of skinClusters as low as possible, youre good.
In the end “rendering” time gets affected the amount and complexity of draw calls. Theres a few threads discussing those, might be worth having a search for that keyword (draw call) as its a topic of its own.

The thing you showed there in the pic isnt a t-face tho, so youre good. For a t-face you basically require one edge to connect more than two faces. In that image that doesnt happen, its just one mesh pushed through the other, they arent actually connected.

Well this is also very dependent on lots of other things. Polycount in particular doesnt affect the engine as much as youd think. Shader complexity, vertex animation, lighting, and all those things take a way bigger impact.
As a little example: I once tested one of my characters with detailed skin shader, eye shader, hair shader, almost 100k triangles, 490 bones in skincluster, 8max influences on and 11 material elements with full body animations. Had that around 40x then in the environment scene that already had a rather high polygon and object count. So the engine was displaying roughly 4.5 million triangles and the framerate was pretty good. Now im not sure how much of a valid benchmark that is so take that with a big grain of salt.

As a general rule of thumb, just try to optimize everything as much as you can. However, optimizie != reduce, so it still means you aim to maximize quality while keeping expenses low. It helps a lot to check out game modeler reels and portfolios as they mostly post wireframes too, so you can kinda see what a good topology for games looks like.

I’ll try and refrain from blabbering on about how helpful the Unreal community is, so I’ll just say thanks instead!

Triangulation affects shading.

Working in quads ensures that:

  • firstly, you are unlikely to get unexpected shading errors,
  • secondly, that triangle strippingwill be decent,
  • thirdly, quads will deform more predictably on skinned meshes.

However, if you are perfectly aware of these, and know where a triangle will be better, nothing exactly forces you to use quads.

Another part, that might affect rendering time, is long and thin triangles. These should be avoided, sometimes even at cost of increasing overall triangle count.

You can’t exactly have a T-Vert, because everything is triangles. What you refer as to T-Vert in modelling package will be a surface discontinuity and eventually produce visual inconsistency in shading in the engine, unless the surface is planar.

Regarding, how low poly should you models be, a proper answer would be as low as you can get, without spending undue time optimizing the mesh. It is pretty obvious, that spending 20 minutes to get off 30 triangles off from a 30 000 mesh is unworthy, yet spending even two hours removing 50 triangles from a 300 triangles mesh, that would be used a lot in the scene, might be totally fine.

UE4 can handle up to 20kk triangles on screen off current hardware reasonably well. It is subject to change under a good deal of factors though.

Making a model out of single mesh is a good practice. Technical part of it being good lies in triangle stripping mostly. Proper, continuous mesh is unlikely to have z-fighting issues. But if leaving floating bits of geo proves to be a major production time win at almost no noticeable visual degrade, why not?

In conclusion, whoever was your tutor, he was insisting on you modelling that way, not because you’d do it this way only, but to ensure that your basic modelling knowledge is clean. He teaches you the proper way, and you’ll eventually learn all the shortcuts as you start working and gain experience. It works way worse if you start the other way around.

If you are using baked lighting, I would suggest using water tight, or closed meshes for any static objects, most of the time. Sometimes a few intersecting closed meshes is fine as well. For characters or dynamic objects, it’s not an issue.

A full scene in a modern AAA typically goes us to around 20 million tris. Important characters up to 40k-80k. The difference between a 200 tri and a 1,000 tri object is normally pretty tiny in performance (definitely not x5), so don’t over optimize for no reason.

Games aren’t usually as perfect as you think, when you actually look at the assets so don’t worry about it too much.

The issue you can run into with a mesh like you have there is that lightmap shadows can bleed–so the part that is underneath the surface will get shadow and the pixels will bleed onto the visible area, same with the part that is covered. If you actually weld the parts together then it will get better lighting results–but, most of the time it won’t be noticeable. You should still delete hidden faces when you can though, but I would still model things the way that’s fastest rather than trying to actually weld everything together.

2: this may be of help

In general most engines can push polygons around at higher resolutions than expected with little or no impact to playable frame rates with out knowing the configuration of the lowest common denominator.

Some notes:

The need for actual count limitations had little to do with overall performance but was more about memory footprint requirements like CD rom disk space and the minimum ram requirements of the day as compared to delivery portals like Steam where the downloading of an AAA game can be as high as 16-20 gigabytes.

Unreal 4 is very good at optimizing geometry via GPU pathways but the big hit continues to be in the area of complex shader and materials, draw calls, where the fat could be added. We have found that in most cases it’s better to build the detail into the object than it is to try and “imply” detail via complex materiel and texture design that has the higher impact as to GPU Vram memory and texture streaming.

In short our guidelines as to polycount limitations is to make the object in question look like the object in question based on function over form. The most common frame of mind when building content is thinking in terms as to fit-to-finish to end user application with out considering that something built to higher standards and resolutions where their use has little or no impact as to practical game play. Things like menus for player setup, customization, load out menus and in general just showing off can add a polish to the end result. Cut scenes for as another example you could do a model swap for studio grade character models that can be animated to act and not shoot guns on demand.

Make more than whats needed. Granted have a car that can do 200 MPH is nice but not always needed but it’s easier to take to much and make it less than it is to try and make not enough do more and with tools like 3ds Max,Maya, or better still Zbrush added to the pipeline it’s a lot more fun and productive to make decisions based on what you have in hand.

Overall polycounts is a legacy issue that no longer exist, more so in a “new” engine design like UE4, and only persists because the Internet never forgets along the same ideals that “One day man will land on the moon” :wink:

1: Build stuff also follows the demand for function over form but we do put more focus as to materiel, shader, and texture usage as to the design as it is the one area that can get out of hand quickly. It’s not an uncommon pratice to use the LOD system to switch out higher detail and more complex materials and textures than to included traditional lower count models.

Just for the fun of it.