# How to optimize the FPS of a character with multiply materials?

**URL:** <https://forums.unrealengine.com/t/how-to-optimize-the-fps-of-a-character-with-multiply-materials/237189>\
**Category:** Rendering\
**Tags:** unreal-engine\
**Created:** [June 24, 2021, 3:16pm UTC](https://forums.unrealengine.com/t/how-to-optimize-the-fps-of-a-character-with-multiply-materials/237189 "2021-06-24T15:16:24Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![gpu2015](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@gpu2015](https://forums.unrealengine.com/u/gpu2015)\
**Post date:** [June 24, 2021, 3:16pm UTC](https://forums.unrealengine.com/t/how-to-optimize-the-fps-of-a-character-with-multiply-materials/237189/1 "2021-06-24T15:16:24Z")

</div>

how to optimize the FPS of a character with multiply materials?  
by default, each subMesh owns a material? is it able to be optimized?

---

<div class="post-metadata">

**Author:** ![JaredTherriault](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/jaredtherriault/32/1194499_2.png) [@JaredTherriault](https://forums.unrealengine.com/u/JaredTherriault)\
**Post date:** [June 24, 2021, 3:59pm UTC](https://forums.unrealengine.com/t/how-to-optimize-the-fps-of-a-character-with-multiply-materials/237189/2 "2021-06-24T15:59:15Z")

</div>

So you have a group of skeletal meshes? Or is it one skeletal mesh?

Each skeletal mesh has its own draw call to begin with. So if each character has multiple a good optimization would be to condense them all into a single skeletal mesh. This can be done at runtime: [Working with Modular Characters | Unreal Engine Documentation](https://docs.unrealengine.com/4.26/en-US/AnimatingObjects/SkeletalMeshAnimation/WorkingwithModularCharacters/#:~:text=on%20our%20character.-,Skeletal%20Mesh%20Merge,Mesh%20through%20code%20with%20FSkeletalMeshMerge%20.&text=Without%20Skeletal%20Mesh%20Merge%2C%20each,total%20of%20150%20draw%20calls)

Then each material is its own draw call, and if each submesh has a separate texture that’s another draw call. The best you can do here is pack all of the textures into a single mega texture, or atlas. Then map each material instance to a different region of the atlas to get the desired texture. Don’t ask me how to do this, I don’t even know. I know the process, but I’ve never done it in UE4.

What this all comes down to though is this: Is your character actually a bottleneck for your game? If you’re seeing slowdown, have you profiled the game on your target platform/configuration to see what’s causing it? Having a few characters on screen with a few dozen draw calls each isn’t usually an issue unless you’re on mobile. For me, I had a couple dozen characters onscreen with some slowdown, but the reason for that was the IK calculations. I gated the calculations behind LOD1 and that did the trick. What does Session Frontend say?

* * *

[Runtime DataTable](https://www.unrealengine.com/marketplace/en-US/product/4c7c4f8d523f4c90b2e26d23502c526c) : Import and export game data to and from CSV or Google Sheets while your game is running!

[easyCSV](https://www.unrealengine.com/marketplace/en-US/product/b25b855096e74d088d7553ccbe4072f2) : Read data from any CSV and put them in an easy-to-access string map!

[iTween](https://forums.unrealengine.com/t/open-beta-procedural-on-the-fly-animation-in-ue4-itween/10472) : Free, smooth, procedural object animation

---

<div class="post-metadata">

**Author:** ![gpu2015](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@gpu2015](https://forums.unrealengine.com/u/gpu2015)\
**Post date:** [June 27, 2021, 12:43am UTC](https://forums.unrealengine.com/t/how-to-optimize-the-fps-of-a-character-with-multiply-materials/237189/3 "2021-06-27T00:43:35Z")

</div>

> [@AnotherUser23245](#):
>
> nowhere fps wise

pardon? not sure what this mean 🤣
