Modern render pipelines spend significant CPU overhead organizing draw calls, sorting depth state changes, and managing instance buffers. Mesh Combine Studio 2 addresses these bottlenecks by utilizing a voxel-based 3D spatial partitioning grid system. Instead of merging entire scene hierarchies into monolithic geometry blobs—which destroys spatial frustum culling efficiency—the asset organizes game objects into dynamic spatial cells based on customizable grid dimensions.
During the batch processing phase, the asset parses scene geometry, sorts mesh primitives by unique material signature, lightmap indices, and shadow-casting modes, and merges identical material groups per spatial cell. This prevents multi-material draw call overhead while preserving Unity's built-in Frustum Culling and Occlusion Culling systems. The engine can cull entire combined cells that reside outside the camera's view frustum, maintaining geometry throughput optimizations without wasting rasterization time on off-screen polygons.
UInt16) index buffers for legacy/mobile constraints and 32-bit (UInt32) index buffers for massive dense mesh operations exceeding 65,535 vertices per combined mesh.Combining geometry in complex environments often breaks standard LODGroup configurations. Mesh Combine Studio 2 solves this by evaluating scene hierarchies and extracting individual Level of Detail levels into synchronized grid cells. Each generated grid cell maintains corresponding LOD distance thresholds, allowing complex vegetation, modular buildings, and terrain props to transition across detail levels collectively per spatial unit.
For mobile optimization and memory-constrained targets, reducing draw calls must be balanced against local GPU memory consumption. By merging static props into static batch cells, the system reduces the CPU main thread bottleneck caused by thousands of active Transform components and draw call submission overhead. When configured for mobile targets, the asset minimizes mesh buffer allocations, allowing high-density modular environments to run efficiently within strict frame budgets.
When working with Unity's Occlusion Culling bake system, combined spatial cells act as occlusion targets or static occluders. Ensure that input meshes are marked with appropriate static flags before executing a combine pass, as merged cells inherit structural occlusion attributes from their constituent source geometry.
While batching can be executed directly inside the Unity Editor, runtime combining is often necessary for procedurally generated environments, dynamic streaming worlds, or custom level loaders. Integrating the combine manager requires initializing the MeshCombiner component, specifying source hierarchy roots, defining spatial cell bounds, and firing the asynchronous combine procedure.
The following example demonstrates standard initialization and runtime execution pattern using the public API:
using UnityEngine;
using MeshCombineStudio;
public class RuntimeCombineController : MonoBehaviour
{
[SerializeField] private MeshCombiner meshCombiner;
[SerializeField] private GameObject environmentParent;
private void Start()
{
if (meshCombiner == null)
{
meshCombiner = GetComponent<MeshCombiner>();
}
ExecuteRuntimeCombine();
}
public void ExecuteRuntimeCombine()
{
if (environmentParent == null)
{
Debug.LogWarning("RuntimeCombineController: No environment parent assigned.");
return;
}
// Assign the parent transform containing target meshes
meshCombiner.searchOptions.parent = environmentParent.transform;
// Disable original mesh renderers after successfully building combined cells
meshCombiner.combineOptions.disableOriginalObjects = true;
// Execute spatial cell generation and asynchronous mesh combining
meshCombiner.CombineAll();
Debug.Log("Mesh Combine Studio 2: Runtime combining complete.");
}
public void RevertCombinedMeshes()
{
// Restores source objects and cleans up dynamically generated combined meshes from memory
meshCombiner.RestoreOriginalMeshes();
}
}
Evaluating geometry batching efficiency requires systematic analysis using the Unity Profiler and Frame Debugger. Pay close attention to draw call counts (setpasses), saved batch numbers, VBO (Vertex Buffer Object) memory usage, and main-thread CPU overhead related to garbage collection.
Yes. The asset operates directly at the raw mesh buffer geometry and sub-mesh structural level, making it independent of specific rendering pipelines. It functions fully under URP, HDRP, and the Built-in Render Pipeline without breaking custom SRP shader passes or material graph structures.
The asset includes automated collider batching features. It can process underlying target MeshCollider, BoxCollider, or custom primitive collider assets, merging spatial geometry into unified runtime mesh colliders to optimize physics broadphase processing alongside visible surface rendering.
Yes. When using standard GPU Instancing, identical objects share single geometry buffers in VRAM. Combining these objects creates unique, merged vertex and index arrays, increasing overall mesh memory overhead. Balancing cell bounds is critical to finding the optimal trade-off between CPU draw-call savings and memory utilization.
Assets provided on this platform are hosted strictly for educational, testing, and system evaluation purposes. They are not cleared for commercial production releases or public distribution in finished titles. Developers must purchase an official license directly from the original publisher's Unity Asset Store page to support the original creators and secure valid deployment rights for commercial game releases.
| Category | Tools / Modeling |
|---|---|
| Latest Version | v2.997 (2 tracked releases) |
| File Size | 1.55 MB |
| Added to Platform | February 5, 2026 |
| Views | 4 views |
| Downloads | 1 downloads |
| Favourites | 0 favourites |
| Official Store | Buy Original License on Unity Asset Store → |
| Issue with Package? | Report Broken Link → |