Difference between revisions of "GPU Instancer Pro:FAQ"

From GurBu Wiki
Jump to: navigation, search
(What is new in GPU Instancer Pro?)
(What is new in GPU Instancer Pro?)
Line 11: Line 11:
  
 
'''Native Support for Multiple Cameras:''' The Pro version enables users to seamlessly use multiple cameras. By simply adding a component to a camera, users can utilize multiple cameras without any additional adjustments. This feature allows users to effortlessly leverage GPUI's rendering and culling systems' various performance improvements.
 
'''Native Support for Multiple Cameras:''' The Pro version enables users to seamlessly use multiple cameras. By simply adding a component to a camera, users can utilize multiple cameras without any additional adjustments. This feature allows users to effortlessly leverage GPUI's rendering and culling systems' various performance improvements.
 
'''Native Support for Multiple Terrains:''' The Detail and Tree Managers offer native support for multiple terrains with minimal draw calls. They can also handle runtime changes to the terrains more efficiently with fewer allocations. New optimization features such as distance-based density reduction is available. Adding and removing detail and tree instances at runtime is possible in a performant manner, enhancing the overall flexibility and usability of the system.
 
 
'''[WIP] Custom Terrain Support:''' In addition to Unity's built-in terrains, the Tree and Detail Managers now support custom terrains. Users can utilize existing custom terrain components or develop their own by extending the GPUITerrain class.
 
  
 
'''Centralized Rendering System:''' The Pro 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 is optional. Users have the option to render objects with few API calls directly from their scripts without the need for GPUI Managers in the scene.
 
'''Centralized Rendering System:''' The Pro 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 is optional. Users have the option to render objects with few API calls directly from their scripts without the need for GPUI Managers in the scene.
Line 26: Line 22:
 
'''Statistical Analysis:''' The Statistics Tab on the GPUI Managers offers detailed information on GPU Instancer rendering, including vertex counts and visible LOD counts. This data allows users to identify performance bottlenecks and optimize their projects effectively. Additionally, users can enable/disable rendering of individual prototypes with a single click to assess the performance impact of each prototype.
 
'''Statistical Analysis:''' The Statistics Tab on the GPUI Managers offers detailed information on GPU Instancer rendering, including vertex counts and visible LOD counts. This data allows users to identify performance bottlenecks and optimize their projects effectively. Additionally, users can enable/disable rendering of individual prototypes with a single click to assess the performance impact of each prototype.
  
 +
'''Native Support for Multiple Terrains:''' The Detail and Tree Managers offer native support for multiple terrains with minimal draw calls. They can also handle runtime changes to the terrains more efficiently with fewer allocations. New optimization features such as distance-based density reduction is available. Adding and removing detail and tree instances at runtime is possible in a performant manner, enhancing the overall flexibility and usability of the system.
 +
 +
'''[WIP] Custom Terrain Support:''' In addition to Unity's built-in terrains, the Tree and Detail Managers now support custom terrains. Users can utilize existing custom terrain components or develop their own by extending the GPUITerrain class.
  
 
'''[WIP] 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. For instance, you can have a detailed animator with IK for close-up instances and a simpler, more performant one for distant ones, with their draw calls still being batched.
 
'''[WIP] 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. For instance, you can have a detailed animator with IK for close-up instances and a simpler, more performant one for distant ones, with their draw calls still being batched.

Revision as of 01:48, 9 April 2024

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. GPU Instancer Pro requires Unity 2022.3 or higher to take advantage of the latest Unity features. Here are some key highlights of the Pro version:

Native Support for Multiple Cameras: The Pro version enables users to seamlessly use multiple cameras. By simply adding a component to a camera, users can utilize multiple cameras without any additional adjustments. This feature allows users to effortlessly leverage GPUI's rendering and culling systems' various performance improvements.

Centralized Rendering System: The Pro 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 is optional. Users 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.) are stored in a Profile Scriptable Object, which is shared between prototypes (eliminating the need for Prototype Scriptable Objects). Profile Settings are 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.

Distributed in Packages Folder: To enhance workflow efficiency, GPU Instancer Pro is structured into multiple modules, each shipped as individual packages.

Improved Editor Mode Rendering: Significant improvements have been made to the performance and user experience of rendering instances in edit mode.

Statistical Analysis: The Statistics Tab on the GPUI Managers offers detailed information on GPU Instancer rendering, including vertex counts and visible LOD counts. This data allows users to identify performance bottlenecks and optimize their projects effectively. Additionally, users can enable/disable rendering of individual prototypes with a single click to assess the performance impact of each prototype.

Native Support for Multiple Terrains: The Detail and Tree Managers offer native support for multiple terrains with minimal draw calls. They can also handle runtime changes to the terrains more efficiently with fewer allocations. New optimization features such as distance-based density reduction is available. Adding and removing detail and tree instances at runtime is possible in a performant manner, enhancing the overall flexibility and usability of the system.

[WIP] Custom Terrain Support: In addition to Unity's built-in terrains, the Tree and Detail Managers now support custom terrains. Users can utilize existing custom terrain components or develop their own by extending the GPUITerrain class.

[WIP] 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. For instance, you can have a detailed animator with IK for close-up instances and a simpler, more performant one for distant ones, with their draw calls still being batched.


[WIP] Features marked with this annotation are 'Work in Progress' and describe the current planned implementation. The final result may differ from what is described here.


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