Prepare meshes for a level


I just downloaded the unreal engine (4.8) a couple days ago. Mostly I am still reading up on various topics. However, I have a question about level design. I read that you should use BSP for blocking out the level and testing game play, but have meshes in the final product. I guess a typical workflow would be something like:

  • blocking out the level
  • convert BSP to a mesh
  • export mesh
  • refine mesh in 3rd party program (blender, modo, maya etc.)
  • import the final mesh as a level

What isn’t clear to me is if I need to take some precaution when modeling the level in a 3rd party program. Surely the engine will somehow optimize the mesh so it can be rendered at reasonable speeds. Does that require some special steps? I mean, do I need to break the mesh into smaller parts? Are there some limits to the amount of materials or textures that I can use or is it possible to have a single huge mesh and import that into the unreal engine without having to worry about anything?


Welcome to the UE4 community :slight_smile:
Well, a lot of questions, so its good you are reading the docs and tutorials :slight_smile:

So for the workflow on level design: Zes, you can work that way.
However, I have abandoned BSP brushes altogether and use simple meshes for blocking out.
One disadvantage of brushes is that they draw a lot of performance. So if you have a level with 300+ brushes, you might see some lag, whereas with 500+ meshes things still run smoothly.

On the topic of modularity: It depens on the kind of mesh. If you have a large mesh, it needs a larger texture than small meshes.
There is really no rule of thumb and you will have to treat each mesh differently and use different approaches from case to case.

Each material can have up to 16 unique texture samplers and some more shared, if DX11 is used. But im not sure about that exactly.
That has changed recently.

The most important things for modelling to keep in mind are:

  • Create “clean” geometry. Use quads/triangles, no NGons, avoid booleans.
  • Give walls thickness, avoid paper-thin geometry
  • Create a second UV layout for thelightmap data. Make sure it is non overlapping and the islands have some padding

So, just keep on reading and experimenting… :slight_smile:

From what you write, I think It will be best not to have one huge mesh for the entire level. Instead break it apart into smaller meshes and stitch them back together in UE4. I guess that makes generally most sense as it should also allow me to build simplified meshes for collision.

Not sure what you mean here. Should I generate UV mappings but not have a texture applied, as the light map will take it’s place? What if I get content from the market place? Will I have to add UV maps to those models if they are missing? I thought, that the engine would take care of the lightning.

I will have to look into it further down the road. For now I want to get some grip on the engine. Proper modeling comes a bit later. I just wanted to get a somewhat sensible workflow to create demo content to play around with. So, that I don’t have to reinvent the workflow later on.

Thanks for you help!

You’re correct, you want to block your environment out in BSP and once you’re ready, then start replacing everything with static meshes (these are created in a DCC app like Maya, 3dsMax, etc.)

The one thing I will say is do not make your entire level one single super large static mesh. You want to build modular environment set pieces that you will use to world build inside of Unreal 4. Remember that each mesh and material will cost you a separate draw call, so avoid for example a door that has 15 materials applied to it, this is not good.

If you have any other questions feel free to ask!

Prepare meshes for a level [SOLVED]

Awesome, thanks for the input. I think I got what I need for now. If I have further questions down the line (e.g. preparing UV mapping for lightning etc.) I will come back with a specific question.

p.s. not sure how to mark the thread as solved…