.scroll_div { -ms-overflow-style: none; /* for Internet Explorer, Edge */ scrollbar-width: none; /* for Firefox */ overflow-y: scroll; } .scroll_div::-webkit-scrollbar { display: none; /* for Chrome, Safari, and Opera */ }

Prop Optimisation I

Latest update
September 15, 2024
COURSE

WRITTEN BY

get support

We're here to support you on your journey, feel free to contact us!

TABLE OF CONTENTS

INTRODUCTION

In this chapter we will be going over the definition of what the meaning of optimization in games is, where the differences between animated and non-animated meshes lie and what it looks like. In the last section, we will also list a few in-game examples and see how it’s done on different platforms and how much it changed over the years.

LESSON OVERVIEW

1. Optimization Definition

Optimizing basically means being efficient with your model's geometry, texture space and texture map's size. It ensures that the memory usage isn’t reaching its limits and reduces the computing resources, so your RAM doesn’t have to work overtime. It helps with keeping your frame rates stable and provides for a smooth-running game. However, it’s also important to note “Optimization” doesn’t automatically mean that your tri-count or textures need to be as small as possible - it is dependent on what purpose it fulfills and where it will be used later (console/PC/portfolio?).

For example, do I need higher topology for “perfect” shading or can a texture-bake take care of that? Or do I need even topology since it will be animated and deformed?

2. Optimizing your Geometry

First, let’s go over the different types of topology-optimization and see what rules exist, when it’s good to follow them and the different approaches you can take.

Non-animated Meshes

If you have a “normal” static mesh which you know won’t be animated later on, optimization can be quite easy and just takes a bit of practice to do quickly. The main rule here is: Only keep edges that contribute to the asset’s silhouette or help with the shading. When it comes to uniquely baked assets, you don’t have to worry about the shading that much, since you’ll be creating a normal map and therefore you can just concentrate on having a lower tri-count {{"Baking I"}}. When it comes to meshes that you decimated to reduce geometry (e.g. rocks), going over the mesh to clean up small triangles and hidden faces, is a good practice as well.

If you have assets made with the mid-poly workflow, you will most likely go and spend a bit more polys as you won’t have a highpoly to bake a specific normal map from and therefore will give more attention to your shading {{"Midpoly Workflow"}}.

One exception to mention here is, it’s okay to have an edge specifically for cutting your UVs. Often there’s a perfectly optimized mesh with an edge in the middle. Most likely that is because the asset is either symmetrical and the modeler is mirroring one half of the mesh to have their UV shells overlap (and save space there) or they want to arrange the UV shells in a specific way.

2 - (add image of unique optimized asset and midpoly with trim technique)

A tip that makes the change more obvious, you can go to your modelling software and turn your viewport to its “lit” mode without having any lights in the scene. Rotate around to see how your mesh's silhouette is looking and switch between it whenever you’re unsure how much of a difference the edge you just deleted really made.

Animated Meshes

As mentioned earlier, optimization is done differently for meshes that will be animated. Most of the time that means the polycount will be higher, with even topology and more quads instead of tris (but not exclusively). That way, the skinning job for a Rigger will also be easier later on and the deformation or stretching of your asset can look natural.

But keep in mind, even if you know an asset will be animated, consider what type of movements it will be doing. If for example it is a stiff and rigid robot, it most likely will not need a lot of topology to perform convincible robot-movements. But if it’s the case of an organic mesh (like a bag on a character, cloth in general or a moving teddy bear) well planned geometry will be necessary, which might result in a higher tri-count.

3- (add image of a comparison/examples)  ⚠️CREDIT https://80.lv/articles/topology-for-game-and-game-based-characters ⚠️

In the {{"Sub Division Modelling"}} lesson under “Edge Flow - Terminating Edges”, you can see another another guide for how to dissolve or redirect edges on a flat surface where you know you don’t need that extra geometry but want to keep the remaining faces relatively even. I have also added some Youtube videos in the Resource section that go over the same subject.

( ⚠️IGNORE - I tried to delete this image but I notion won’t let me⚠️)

Go with the question: Do I need this geometry to do something for me? If it won’t be used in animation, doesn’t contribute to a form-defining silhouette and isn’t there to support better shading, it’s probably a “No”.  And don’t be afraid to just try out and delete edges, if you see it makes too much of a difference, you can always revert it.

LODs

LOD stands for Level of Detail and is used instead of your original mesh when the camera is at a far distance. It is turned into a lower-poly version and it’s texture map size also decreases to save on performance. The reduction of textures is also referred to as “mip-mapping” and will be discussed in a section below.

4- (add image of LOD example)

Your finished optimized model is your LOD 0, or sometimes related to as your Base LOD. Everything after that will be counted as LOD 1, LOD 2, LOD 3,.. and will stay as close to the shape of your mesh as possible until, at some point, it might be turned into a “billboard”, which is a simple plane. As with everything, there’s no fixed rule at what distance your mesh changes into the next LOD - it depends on the size of your asset, where it is placed and how important it is. Typically the default amount of generated LODs is 5 but the “simpler” (as in geometry) or smaller your asset it, the less LODs will be needed.

One popular example is grass - I’m sure you have noticed it popping in and out of the image depending on a few steps your character takes or how the camera moves. To combat a harsh transition, a technique to make the fade into the next LOD look smoother, is using a dithering effect in your material setup.

5 - (add image of lod dithering) ⚠️CREDIT https://www.youtube.com/watch?v=Mj_-2SdsYLw⚠️

Sometimes grass in games can be a complicated cluster of geometry to make it look extra three dimensional, at the next LOD it might just be a few polys and the next LOD might not even exist because the green grass texture of the floor is good enough.

6- (add image of grass lod - megascan asset)

Nowadays, we can call ourselves lucky because some engines already do our LOD creation for us during the import (e.g. Unreal) or sometimes, when a company has a house-engine, the technical artists create tools for the others to use and generate LODs as well. They might need a bit of tweaking but in general it is a fast process. If you want to know more about LODs, you can take a look at this lesson -  {{"Level Of Detail"}}.

3. Optimizing your Textures

To optimize your textures, you need to know how to use your UV space efficiently, what kind of texture creation is smart and what resolution is appropriate. This is yet again decided by the importance and size of your asset.When it comes to hero props, you will most likely have a unique texture for it but if you got a collection of similar assets that still need to look unique in themselves, you can try and pack as many as you can into one texture space while maintaining the texel-density you’re aiming for. These are often called “texture atlas” as well can be used for various cases, like a collection of books or stickers. Derk Elshof has good examples on his Artwork here:

7 - (add image of texure atlas) ⚠️CREDIT https://www.artstation.com/artwork/k4nkR6⚠️

2:1 Textures

For the UV space, you pack your shells in a way where you scale down faces you know will hardly be seen or stack them with similar shells together. Another popular thing is to create 2:1 textures. Meaning, you only fill half of the UV space and them stretch them to double their size. You bake with 2:1 settings and export it like that as well. The Engine then should adjust the size of your map accordingly but you were able to safe some memory.

8- (add image of 2:1 texture example) ⚠️CREDIT to Georg’s BE Project asset hehe⚠️

Tileable Textures and Trimsheets

Besides that, another way to optimize texture usage is using tileable textures or trimsheets. With those you don’t have to bake and can build all kinds of assets using only one already finished material. Of course, they might look a little “boring” in the beginning but that’s when vertex painting or decal sheets come in handy. Those do require you to add more geo (having more segments for your vertex painting or planes for your decals) so your tri-count becomes higher but you can be extremely versatile and quick with iterations in your asset creation. Also, here are the other articles about tileables and trims if you want to read more about it. {{"Tileable Materials I"}} {{"Tileable Textures I"}}

9- (add image of all kinds of models being created with one trim material)

Mip-Mapping

As hinted at above, in combination with LOD creation, your textures play an important part here as well. As mentioned in the Unwrapping article {{"Unwrapping I"}}, having enough space - or padding - between your shells is necessary for your LOD creation because of the dilation that is being created to prevent bleeding. Not only is your models geometry being changed, but also your texture map is turned into a lower resolution the further away the player is. You can see the change in the following picture:

10- (change of texture for different LODS)

The lower the resolution, the fewer pixels are your texture map made out of and the space between your shells might be reduced from 8 pixels between them to only 4. And the lower it goes, the less clear will your texture be and your colors and such might start bleeding into each other. But with the right amount of padding, it counteracts how soon it might happen.

4. Closing

Now having shown you all different kinds of ways for prop optimization, it’s important to keep in mind that optimization for your portfolio can be looked at differently than in production. These are all things crucial to know when doing your job but in your portfolio it’s okay to go a bit over the top with your tri-count, as long as you keep the basics rules in mind (keeping form-defining edges, not going with a 4k texture for assets in the background,…).

But if you’d go ahead and do it just like it would be done in games, you’re not able to show your skill to its full potential. For example, if we take a simple rubrics-cube, even if it’s a super small asset it’s fine to bevel the edges and have the indents be apparent in your geometry because you know you will take close-up beautyshots of it to impress with your texturing skills. In a game on the other hand, that same cube might never be taking up a big amount of the screen space so bevels wouldn’t even be visible and therefore not necessary.  Same goes for your textures, feel free to have a higher texel-density and use bigger texture maps. In your portfolio you want to show what you can do and it doesn’t need to be rendered in real-time.

5. Optimization In-Game Examples

Last but not least, we want to take a look at how some games handle their geometry and how contrasting it can be in different genres. Here are a few examples:

12( add images of:⚠️CREDIT: https://blog.playstation.com/2019/12/16/the-polygonal-evolution-of-5-iconic-playstation-characters/ - SirDanielFortesqueA+Start - https://www.youtube.com/watch?v=A2gXyEyy_2U - MarioEdgar A. Martinez - https://www.artstation.com/artwork/Xv9o0 - Uncharted cView Studios - https://www.artstation.com/artwork/JlO4VR - Metro WagencView Studios - https://www.artstation.com/artwork/zAkaddMatthias Develtere - https://www.artstation.com/artwork/lRR2vO - Wolfenstein Laserhund ⚠️An interesting thread about polycounts in next gen-consoles can also be found here {{https://polycount.com/discussion/141061/polycounts-in-next-gen-games-thread}} and a few are also listed down at the resources.

EXERCISES

Curated list of resources provided by our team of industry experts.
LAST UPDATED ON
September 15, 2024

Prop Optimisation I - Create your own Assets

Prop Optimisation I - Create your own Assets

Create your own optimized assets

OVERVIEW

1. try to optimize the asset’s geometry 2. layout the UVs in an appropriate way (keep texel-density in mind) optional: 3. apply simple texutures and export into an Engine 4. let it auto-create LODs and visualize them in the project

EXAMPLES

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

SPECIALISATION OVERVIEW

In this chapter we will be going over the definition of what the meaning of optimization in games is, where the differences between animated and non-animated meshes lie and what it looks like. In the last section, we will also list a few in-game examples and see how it’s done on different platforms and how much it changed over the years.

COMMON RESPONSIBILITIES

DAILY ROUTINE

WHO YOU COLLABORATE WITH

INSIGHTS FROM THE ARTISTS

PLACEHOLDER

PROGRAMS YOU MIGHT USE