Have you ever run into this when building a large-scale scene?
You used DrawMeshInstancedIndirect
to render millions of objects, and at first, it seemed like the perfect solution.
But then, as the number of instance types increased, things got messy. You had to break things up into multiple buffers, issue multiple draw calls—and worst of all, you had no way to know which instances were actually visible.
That means for every type of object, even if it’s not visible at all, the CPU still needs to issue a DrawMeshInstancedIndirect call to the GPU. That’s wasted draw overhead and CPU-GPU communication cost—for absolutely nothing rendered.
And on top of that? You’re manually managing transforms, rotations, scaling, and LODs for potentially millions of instances. Eventually, your scene becomes an unmaintainable blob of dense matrix data.
That’s exactly why we built Tile3DInstancer.
Tile3DInstancer was born from a very simple idea:
"Why are we duplicating every object, when we could just reuse templates?"
Just like building a puzzle, we only need to store where each piece goes, not copy every piece over and over again.
We implemented a Template Cell architecture that takes this concept to the extreme—and the results were not just elegant, but shockingly powerful:
-
🔁 All instance data is expanded only when needed
-
💾 No more transform bloat or memory overload
-
🚀 Per-instance culling via CPU Jobs
-
🧠 NonSync Jobs for lightweight objects (e.g. grass, pebbles), to avoid blocking the main thread
-
🏔 Sync Jobs for rare large objects (e.g. mountains), to ensure rendering is visually correct
Unlike traditional instancing systems that flatten every transform into a dense memory buffer, Tile3DInstancer keeps things modular and scalable. Our Template Cell system reuses transform data, and only expands real geometry at the right time.
We also provide a full TileMap Editing Mode, allowing you to paint out large areas using tile-based layout, and preview results in real time. No more planting thousands of objects manually in the Hierarchy view—everything is fast, visual, and GPU-backed.
Want even more control? Our CellHolder Brush Tool lets you create reusable templates with ease. You also get per-cell instance count monitoring, so you can paint freely without accidentally overpopulating your scene.
The result?
A Unity toolset that combines GPU-friendly batching, per-instance culling, and real-time TileMap editing—letting you build and run massive, complex, multi-type 3D worlds with performance that works even on mobile.
🎥 Demo Video:
📦 Try Tile3DInstancer now:
Tile3DInstancer
🧰 More tools by SmallBurger:
SmallBurger
TestAPK
沒有留言:
張貼留言