GPU Instancer Pro:FAQ

From GurBu Wiki
Revision as of 16:52, 8 April 2024 by GurBu Admin (talk | contribs) (General Questions)
Jump to: navigation, search

About GPU Instance Pro | Getting Started | Terminology | Best Practices | API Documentation | F.A.Q.


General Questions


What is new in GPU Instancer Pro?


The system has undergone a complete redesign with numerous performance and quality-of-life improvements, catering to a broader range of use cases. It will require Unity 2022.3 or higher to take advantage of the latest Unity features. Here are some key highlights of the new version:

Centralized Rendering System: The new version features a centralized rendering system, allowing for efficient rendering of objects with minimal draw calls and compute shader calculations. This leads to improved GPU memory usage and overall performance. With the centralized rendering system, the use of GPUI Managers will be optional. Users will have the option to render objects with few API calls directly from their scripts without the need for GPUI Managers in the scene.

Profile Scriptable Object: The settings related to rendering (culling, LOD, etc.) will be stored in a Profile Scriptable Object, which will be shared between prototypes (There will be no more Prototype Scriptable Objects). Profile Settings will be written to persistent GPU buffers instead of sending the data to GPU every frame. This reduces the number of files, simplifies the addition/removal of prototypes, and optimizes GPU data transfer.

Native Support for Multiple Terrains: The Detail and Tree Managers will offer native support for multiple terrains with minimal draw calls. They will also handle runtime changes more efficiently with fewer allocations. New optimization features such as distance-based density reduction will be introduced. Adding and removing detail and tree instances at runtime will be possible.

Custom Terrain Support: The system will support custom terrains in addition to Unity built-in terrains. This can be achieved by implementing methods to supply a tree instance array and detail density textures.

Enhanced Crowd Animations Workflow: Crowd Animations will feature a new workflow where the system reads bones instead of controlling animations directly. This enables features like IK or custom animators. Additionally, hybrid usage will be possible, allowing seamless switching between different workflows for instances of the same prototype at runtime.

The primary objectives of these enhancements are to improve performance, flexibility, and ease of use. If you have any specific recommendations or features you'd like to see in the Pro version, please feel free to share them.



What are the Minimum Requirements?


To provide the fastest possible performance, GPU Instancer Pro utilizes indirect GPU instancing using Unity's RenderMeshInstanced API and Compute Shaders. The target devices should support GPU instancing (SystemInfo.supportsInstancing) and Compute Shaders (SystemInfo.supportsComputeShaders).

Please also note that even though some integrated graphics cards may satisfy these requirements, they may not provide the boost you can get from GPU Instancing. Therefore, hardware with a dedicated GPU is recommended.


What are the Known Limitations?


There are certain limitations that are introduced by the way Indirect GPU instancing works and/or how Unity handles it. Below you can find a list of the known limitations.


Lighting Limitations:

  • Baked Global Illumination is not supported for instanced prototypes (baked lighting data will be ignored for GPUI instances, but you can use it for the rest of the scene objects)
  • Light Probes are not supported (all the instances share the same probe value).
  • Ray Tracing is not supported.


Shader Limitations:

  • Geometry shaders are not supported.
  • Tesselation shaders are not supported


Android Limitations:

  • It requires special care to decide what you can render when targeting Android Devices. Android platforms have inherent GPU limitations and target devices must both support GPU instancing and fare good with it. For example the amount of objects possible to render would be lower than a desktop platform - where the maximum number of instances and prototypes might vary depending on the devices' GPU limitations. Therefore, you must make sure that the number of prototypes and instances per those prototypes do not exceed the target devices' GPU limitations.


Miscellaneous Limitations:

  • Negative scaling on GameObjects is not supported.
  • Occlusion culling feature is not supported when using HDRP Dynamic Resolution.


How can I make a Support Request?


For your support requests, please write an e-mail to support@gurbu.com with the following information:

  • Your invoice number(s) (except for pre-purchase questions)
  • Your Unity version number
  • Target platform(s)
  • Render Pipeline (Builtin/URP/HDRP)


For issues or bug reports, please also include:

  • A sample project (e.g. a scene with minimum amount of content to show the problem) or step by step description of how to reproduce the issue on a new/empty project
  • Detailed description of the problem

If applicable:

  • Console logs related to GPU Instancer
  • Screenshots of the GPUI Managers in use
  • Screenshots and/or videos related to the issue