Asset optimization (lg)

Learning goal on asset optimization

Introduction to asset Optimization

Before we can start optimizing assets we first need to know what this means. What are the different ways we can optimize assets and when to use them.

What kind of assets are we trying to optimize?

The first most important thing we need to think about optimizing is the 3Dmodels/game assets as we will be making a lot of those. An because one of the teammembers that are currenlty creating the 3D models mainly know how to sculpt this means we will probably be looking at high poly models.
So how high poly can an asset be for unity?
After doing some research i came across this link from the unity documentation, it doesnt state precisely how many poly's a gameobject can contain. However they do state that keeping the polycount as low as possible helps optimize the game. Looking further through the unity forums i came across multiple answers saying that a mesh should not contain more that 16bits worth of poly's which comes to 65,536.
Lets have a look at one of the current models that hava been created by our team sculpter so we can decide if this is necacary.

Character model

So if we take a look at our current character we can see that in its entirety it has over 1 million faces. Lets come this to what is being said on the Unity forum. Lets say whats being said is true and our mesh must stay under the 65k poly's. This means we have a lot of work to do. Even if it isnt true and we can have far more than this, 1 million is still pretty far away from the 65 000 previously mentioned. If we take a look at the head alone we can see that this also has a high amount of poly's. So what can we do?

Retopology

After having a good look around on how we can make our meshes have a lower poly count i came across retopology. What is retopology?
"Retopology is the process of converting high-resolution models into something much smaller that can be used for animation. It can be a difficult process, but the basic idea is to create another mesh that simplifies the original HD asset."
In the past people would create models using the box-modeling technique. This is considered old fashioned and it is more common to start with high resolution models and work backwards.
Retopologizing models also makes it easier to add textures to the sculptured model.
So how does it work?
After watching some tutorials on how to retopologize models it was time to start working with our character.
The first thing i needed to do was create a plane and place this over the top of our current character. Tis could easily be done by using the snapping tool you see onderneath.
However this left us with 1 problem. That the plane was barely visible because is was on/sometimes IN the character. we can fix this by using the viewport display options in Blender and specifically the In Front option.
Now we can see whats going on. The next step was to add a Mirror modifier as you can see in the image above, set the clipping on so that the centerline where the mirror takes place clips together. Now we can just extrude around the head keeping in mind that we want to have the form of the plane look as natuaral as possible.
Example of face retopology from pinterest!
So by the time i had finished Retopologizing the head i had gotton it down to 152 faces as seen below. This is a MASSIVE improvement compared to our 65k faces from the previous head model.
Retopo of the head
Retopo of the hair
Retopologized body
Final Retopologized model
As we can see the final model we got down to alt 13000 faces, which is a huge improvement to the original 1 million. Next on the list was to de the same thing with our Cave model, as this was also a pretty high poly model.

Cave

Now it was time for the cave model.
The original cave at 29k faces
Retopologized cave of 292 faces
As we can see the retopologized model is a little over 1% of the original model, another huge improvement!

Feedback and iterations

As i explain in my learning goals i was able to look into how we can optimize our experience using. i looked into how we can use the Unity profiler and see which aspects we can improve. I was unfortunatly not able to do those improvements.
Here are a few aspects we would be able to improve.
Scripts/physics/Others & Rendering
active dynamic, active Kinematic, static colliders & Rigidbodies
Vertices Count & Triangles count
audio sources & Audio voices
Input lighting/Solve tasks & Total cpu

Looking back

Rotopologizing was nesacary for us there is no doubt about that. But perhaps the way that i did this wasnt the most efficient. I wanted to learn about how to optimise our game assets and that goal i have acomplished, however i feel that it still sometimes took way to long to manually do this myself.
These days there are tools that can do most of the work for you and even in Blender there are plugins that can help you in the retopology process. I think it migh of been less time consuming to have used one of these after doing the research on how retopology works.
In the future this will definitly be something i will look into when optimizing assets.