Join Craig Barr for an in-depth discussion in this video Tips for optimal performance, part of Unreal Essential Training (2016).
- Now that we've seen how we can create a beautiful scene, how we can assemble it, take advantage of the different effects within Unreal Engine 4 as well as how to place meshes and work with some pretty amazing materials within this Engine environment. We've also looked at how we can create a beautiful cinematic. Let's take a look at some of the performance tips to get optimal performance out of your project. So some optimal performance tips for working within Unreal Engine 4, keep the number of object elements minimized and combine models when you can.
So you want to minimize the number of elements available within an asset as well as when you can, combine models to be a little more efficient within the Engine space. Combining models is actually going to reduce the number of object calls within a scene as well. So limiting the number of hard-edged objects, and this can be important for two reasons. The way the Engine is going to calculate hard-edged objects that can get into a high vertex count depending on what kind of resolution or detail you're working with on that object.
But it can also work on the way of UV seams. So if you have very hard-stopped edges that represent a UV seam, this can get a little costly in processing within Unreal Engine 4 as well. So another key factor here is that static meshes are always going to be much lighter on your overall processing or your performance. For example, anything that with deformation is definitely going to equal higher processing cost, and that includes morph targets, things like blend shaping and different kind of vertex-based animation as well.
Definitely try to minimize the texture resolution. So I know we all want really high resolution beautiful textures, but try to get away with as low a res as you can to give the best performance. And you're going to get a couple of different benefits in there. You're going to get an overall lighter load on the scene for processing the scene. You're going to get a nicer result in materials, so your materials are going to work faster as well. So if you do have some functions or some effects going on with your materials, the material's going to run a little faster when it's processing smaller textures there as well.
And you'll get smoother texture transitions. For example, if you have something where you have a zoom or a focus in on a specific detail within your environment, you'll find that smaller texture resolution is going to result in a lot more smooth transition between texture maps. Simplify your materials. So this is a couple different points here. Opaque materials are going to be fastest, and that is anything that has any kind of translucency or transparency or any kind of effects related to translucency or transparency or other different effects on material channels are going to result in more processing time as well.
And keep your functions simple. So anything with complex math or complex functions layered over top of each other is going to equal obviously more compiling of that material, but also more reading into and processing that material properly. So some of the most simple, basic functions like multiply, add, and subtract are overall easiest for materials to process. And lastly, we want to minimize tessellation. So keep your tessellation to a minimum. Anything with dynamic tessellation is obviously going to be process-intensive on your scene.
And another tip there, if you are going to use tessellation, pre-tessellated models are obviously going to be a little bit better to deal with or to process within your scene. So there are a few tips related to optimal performance within Unreal Engine 4.
- Customizing the Unreal UI
- Creating a new project
- Creating landscapes
- Blocking out levels
- Assembling a scene
- Working with materials and lights
- Adding post-processing effects
- Defining bodies of water
- Adding atmospherics, foliage, and wind
- Working with the Blueprint editor
- Creating cinematics
- Monitoring performance
- Packaging a game for distribution