# Performance - Merge Meshes or keep meshes separate?

**URL:** <https://forum.babylonjs.com/t/performance-merge-meshes-or-keep-meshes-separate/6401>\
**Category:** Questions\
**Created:** [October 16, 2019, 10:50am UTC](https://forum.babylonjs.com/t/performance-merge-meshes-or-keep-meshes-separate/6401 "2019-10-16T10:50:45Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![digitaloranges](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/digitaloranges/32/4975_2.png) [@digitaloranges](https://forum.babylonjs.com/u/digitaloranges)\
**Post date:** [October 16, 2019, 10:50am UTC](https://forum.babylonjs.com/t/performance-merge-meshes-or-keep-meshes-separate/6401/1 "2019-10-16T10:50:45Z")

</div>

I have a scene that contains around 20,000 planes, all using the same material.

From a performance point of view, my instinct tells me that as they all share the same material, merging these meshes into single mesh would be more performant (as it reduces draw calls). However, I’m assuming that the whole of the mesh would still be passed to the GPU for rendering, regardless of whether polygons were visible to the camera or not.

OR - would it be better to keep the planes as separate objects so the culling mechanism doesn’t pass the to the GPU if they’re not visible?

Thanks in advance!

---

<div class="post-metadata">

**Author:** ![jerome](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/jerome/32/22_2.png) [@jerome](https://forum.babylonjs.com/u/jerome)\
**Post date:** [October 16, 2019, 12:13pm UTC](https://forum.babylonjs.com/t/performance-merge-meshes-or-keep-meshes-separate/6401/2 "2019-10-16T12:13:24Z")

</div>

Hello,  
You might use instances instead : [Use Instances - Babylon.js Documentation](https://doc.babylonjs.com/how_to/how_to_use_instances)  
One draw call and a culling mechanism (I guess), but still one world matrix computation per instance if you don’t freeze it.

And you’re right : merging all the meshes or using a solid particle system passes all the vertices, including invisible ones, to the GPU.

So just make the test in your own case (moving planes or not ?) to check what’s the best option. I think instances should be the best for you.

---

<div class="post-metadata">

**Author:** ![jerome](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/jerome/32/22_2.png) [@jerome](https://forum.babylonjs.com/u/jerome)\
**Post date:** [October 25, 2019, 7:39pm UTC](https://forum.babylonjs.com/t/performance-merge-meshes-or-keep-meshes-separate/6401/3 "2019-10-25T19:39:25Z")

</div>

@Deltakosh will be back from Berlin soon and he’ll come with a brand new feature to manage dozens thousands instances at 60 fps (+ a faster PG)  
stay tuned 😉

---

<div class="post-metadata">

**Author:** ![Deltakosh](https://sea2.discourse-cdn.com/flex024/user_avatar/forum.babylonjs.com/deltakosh/32/26635_2.png) [@Deltakosh](https://forum.babylonjs.com/u/Deltakosh)\
**Post date:** [October 27, 2019, 7:29am UTC](https://forum.babylonjs.com/t/performance-merge-meshes-or-keep-meshes-separate/6401/4 "2019-10-27T07:29:46Z")

</div>

Faster PG is definitely rad:) it is transparent and every single pg is now just faster!
