InstanceCollector
SmallBurger
$40.00
(no ratings)
Date |
Price |
---|---|
Date |
Price($) |
10/04(2024) |
40.0 |
10/04(2024) |
20.0 |
10/18(2024) |
40.0 |
11/22(2024) |
40.0 |
Jump AssetStore
InstanceCollector is an asset specifically developed for Unity, designed to dynamically and efficiently collect instance rendering arrays while maintaining main thread performance.As SRP Batch technology has advanced, Unity's automatic instancing feature is often disabled, leading to performance degradation when rendering a large number of objects. While manual instancing (such as using Graphics.DrawMeshInstanced) offers better performance, it is typically limited to rendering large amounts of single-type objects and lacks support for full-scene optimization.The unique advantage of InstanceCollector is its ability to optimize GPU instancing across the entire scene. It not only effectively collects instance objects but also leverages Unity's Job System for precise culling calculations, ensuring optimal rendering performance. If the culling is not accurate enough, the performance might even be worse than SRP Batch, highlighting the core strength of InstanceCollector's technology.Additionally, through the InstanceDataExporter, you can export matrix data for the scene, significantly speeding up scene loading while maintaining the flexibility of dynamic instance collection and rendering.Why Not Use DrawMeshInstancedIndirect?Generally speaking, compared to DrawMeshInstanced, DrawMeshInstancedIndirect offers better performance because it gathers matrix data in the compute shader. However, the biggest issue arises when the object count is zero. Since the CPU cannot determine the number of objects, it still calls the rendering API, and it seems like additional data is being sent to the GPU. When there are many different types of objects, this may lead to a performance drop. Therefore, to handle instance collections for multiple object types, we choose to use DrawMeshInstanced along with culling via the job system.Precise per-instance culling.Dynamic instance collection using the Job System, without occupying the main thread’s resources.Supports multiple types of instance objects, and even full-scene GPU instancing.Provides a matrix array output tool to speed up scene loading and reduce memory usage.Without using SSBO, it has better cross-platform compatibility.For hardware that doesn't support GPU instancing, the rendering process will fall back to using.Simple instance object setup process (just add the Instancer script and enable "Enable GPU Instancing" in the material).Compatible with SRP Batcher.Customizable maximum visible object count for each type, adjustable based on project memory and performance requirements.Support URP and Built-in render pipeline.