GPU Instancer Logo


Change Log



v1.2.0 - submitted Jul 9, 2019


  • New: Occlusion Culling now works in LWRP and HDRP
  • New: Added Occlusion Culling debugger with overlaying option
  • New: Added LWRP and HDRP support for instancing simulation in the Editor
  • New: Added setting option to disable auto shader conversion and auto shader variation handling
  • New: Added DrawCallColorDebugger
  • Changed: Occlusion Culling performance improvements
  • Changed: Added error messages for materials with missing shaders
  • Changed: Added error messages for detail and tree prototypes with missing prefabs
  • Fixed: Prototype ordering error when same terrain used in multiple scenes
  • Fixed: GPUIStandardInclude.cginc Unity 5.6.6-7 compatibility issues
  • Fixed: GPUInstancerPrefabRuntimeHandler error when using multiple prefab managers in multiple scenes with the same prototypes

v1.1.4 - submitted Jun 12, 2019


  • New: Context menu item to setup materials for GPUI support from editor without using managers
  • Changed: Added set renderers enabled/disabled option for enable/disable instancing API methods
  • Changed: UpdateVisibilityBufferWithMatrix4x4Array can now optionally be used for uploading partial data to buffers
  • Changed: Variation buffers can now be defined after the Prefab Manager is initialized
  • Changed: UpdateVariationFromArray can now optionally be used for uploading partial data to buffers
  • Changed: Color variation shader example edited to work in all platforms
  • Fixed: Auto. Add/Remove does not modify variation buffer sizes

v1.1.3 - submitted May 7, 2019


  • New: Context menu item to setup shaders for GPUI support from editor without using managers
  • New: API method to change mesh at runtime
  • New: API method to run auto shader conversion through editor scripts
  • New: API methods to start/stop GPUI rendering simulation in editor mode
  • New: API method to add shader variants through editor scripts
  • New: Added Min Distance culling option
  • New: Added Bounds Size Offset option
  • Changed: TerrainData instanceID check changed to GUID to not to update SOs frequently
  • Changed: Duplicated prefabs are now added to the Managers as seperate prototypes
  • Fixed: Instance Remover wrong position calculation with box colliders
  • Fixed: Scene Prefab Importer window error with child transforms

v1.1.2 - submitted Apr 26, 2019


  • New: API method to change materials at runtime
  • New: API method to change instance counts at runtime
  • New: API method to get the instance data array
  • New: API method to get the prototype list of the GPUI manager
  • Changed: Optimization for Auto. Add/Remove instances feature
  • Changed: Optimization for runtime API methods
  • Fixed: Instance count being ignored on Compute Shader visibility calculations
  • Fixed: Unity 2019.1 obsolete PreferenceItem warning fix
  • Fixed: Compile error with AssetDatabase reference

v1.1.1 - submitted Apr 22, 2019


  • New: Added LWRP support for the GPUI Foliage Shader
  • New: Added ShaderGraph GPUI Setup node (ShaderGraph v4.x only)
  • New: Added a new overload for the InitializeGPUInstancer API method where you can initialize a specific prefab prototype
  • New: Added Prefab Instance Serialization advanced action, to render prefab instances without GameObjects by saving transform data without aditional coding (Unty 2018.1 and above only)
  • New: Added experimental Simulation feature to render instances in Edit Mode for disabled mesh renderers and serialized prefab instances
  • New: Added LOD color debugger tool to visualize prototype LOD levels
  • Changed: DrawMeshInstancedIndirect argsBuffer stride size is fixed to uint and the count is set according to the renderer amount
  • Changed: InitializeWithMatrix4x4Array API method so that it is not required to call the InitializeGPUInstancer before calling this method
  • Changed: Optimization for Prefab Manager Editor which will no longer re-enable renderers while exiting Play Mode
  • Changed: Nested Prefabs Optimization for Scene Prefab Importer tool
  • Fixed: DefineGameObjectAsPrefabPrototypeAtRuntime API method null reference exception when the manager is created at runtime
  • Fixed: HiZ Occlusion Generator controls for stereoTargetEye as "both eyes" when VR is enabled only
  • Fixed: Compute Buffer not set error when using 5 or more LOD levels

v1.1.0 - submitted Mar 22, 2019


  • New: Occlusion culling VR support (both single pass and multi pass)
  • New: API method to change LOD Bias values for prototypes at runtime
  • New: Setting to edit instancing bounds size
  • New: Integration to version control systems like Perforce which uses readonly files
  • New: Options to disable scaling on Tree prototypes
  • New: Added custom depth normals shader
  • New: MapMagic integration Biome support
  • Changed: Modified foliage shader to use the custom depth normals shader
  • Fixed: GLES shadow rendering error
  • Fixed: Occlusion culling disabling DepthNormals on the camera
  • Fixed: Null pointer error when Prefab Manager manager is disabled with Auto. Add/Remove Instances enabled
  • Fixed: Prefab Manager not creating Proxy for SpeedTree8
  • Fixed: Map Magic integration GameObject not being saved in scene when imported
  • Fixed: Detail Manager not finalizing initialization when the activeThreads list is not cleared

v1.0.2 - submitted Feb 25, 2019


  • Changed: LOD cross-fading feature is optimized to run according to shader feature and graphics API
  • Changed: OpenGL compute shader max thread count changed to 512
  • Fixed: OpenGL compute shader matrix type error
  • Fixed: OpenGL not rendering instances with shaders that has cross-fading enabled
  • Fixed: DrawMesh error when there are more materials than the number of submeshes on the renderer
  • Fixed: SpeedTree 8 shader import dialog showing multiple times during prototype generation

v1.0.1 - submitted Feb 22, 2019


  • Fixed: Settings showing wrong labels for prefab options

v1.0.0 - submitted Feb 20, 2019


  • New: SpeedTree8 support with top-down billboards
  • New: Editor multiple add/edit/remove option for Prototypes
  • New: Edit function to Tree and Detail prototypes to change the prefabs
  • New: GPU Instancer Preferences to personalize various editor behaviours
  • New: Auto-update system for upgrading from previous GPUI versions
  • New: Auto. generated Shader Variant Collection for including used shader variants in builds automatically
  • New: Auto. Floating Origin handling option
  • New: Instance count warning system for Prefab Managers
  • New: CameraHandler component to manage camera switching automatically
  • New: Text-Mode for prototype lists
  • New: Custom Preview texture drawing system for prototypes
  • Changed: Shaders moved out of Resources folder to reduce the amount of shaders included in builds
  • Changed: Included shaders are modified according to new folder structure
  • Changed: Tree Manager coroutine initialization is now optional
  • Changed: Manager Editor sections changed to Foldouts
  • Changed: Reduced asset package size considerably by optimizing demo assets
  • Fixed: Dark preview icons for Unity 2018.3 versions on Linear color space
  • Fixed: Tree Manager showing trees in wrong positions when terrain position is changed during initialization
  • Fixed: Show Rendered Amount GUI not showing zero instance count when draw calls are disabled
  • Fixed: Prefab manager adding incorrect rigidbodies to instances when disabled

v0.9.9 - submitted Jan 16, 2019


  • New: Threading option for Detail Manager initialization
  • New: Option to disable Mesh Renderers on prefabs to increase initialization speed
  • New: Prefab streaming system with PrefabListRuntimeHandler component
  • New: Added an option to all billboards to face camera position (ignoring camera View Matrix rotations, ideal for VR)
  • New: Min. Culling Distance option per prototype
  • New: Option to filter prototypes when removing instances with colliders or bounds
  • New: MapMagic Integration single Prefab Manager option
  • New: MapMagic Integration Threading option for Prefabs when using single Prefab Manager with disabled Mesh Renderers
  • New: Added GetDetailMapData/SetDetailMapData API methods for Detail Manager
  • Changed: SetGlobalPositionOffset null checks and warnings added
  • Changed: AddPrefabInstance method optimization when automatically increasing buffer size
  • Fixed: Tree Proxy not being created when using no-GameObject workflow
  • Fixed: Tree Proxy not being cleared when proxy GameObject is destroyed
  • Fixed: Built-in shader source code not recognized without updating material when first added to project
  • Fixed: Prototype preview icon lighting problem for Unity 2017 on Linear color space
  • Fixed: Cross-fade method error on shaders when building in Unity 5.6 versions
  • Fixed: Possible memory leak on repeated initialization for visibility buffer
  • Fixed: SetGlobalPositionOffset not updating spatial partitions on Detail Manager
  • Fixed: GPUInstancerInclude PSSL dot method casting error when building for PS4

v0.9.8 - submitted Dec 12, 2018


  • New: Managers can now continue rendering in Scene View camera while the editor is paused
  • New: All managers and tools now have "Wiki" buttons that will take you to their respective documentation pages
  • New: Tree Managers now have an option to disable the random rotation of trees on Unity terrains
  • Changed: Automatic shader conversion update for LWRP/HDRP 4.3.0 version
  • Changed: Menu items moved under Tools
  • Changed: The way prototype previews are displayed
  • Changed: The GPUI Soft Occlusion Shader is renewed to match the original Nature/Soft Occlusion Shaders better
  • Changed: Billboard Generator brightness option has been modified to match the original collors better when brightening
  • Fixed: GPUIStandardInclude.cginc errors on some Unity 2017.2 versions
  • Fixed: Standard shader Cutout variant not showing in build
  • Fixed: Meshes with a single submesh but multiple materials causing issues in rendering
  • Fixed: LOD cross-fading results changing with time scale

v0.9.7 - submitted Nov 27, 2018


  • New: Added Render With Selected Camera option to limit rendering to one camera
  • New: Added Detail Texture Layer option to Detail Manager
  • New: Added support for the internal "Standard (Roughness setup)" shader
  • New: Added option to use frustum and occlusion culling for shadows
  • New: Added UpdateVariation API method to update variation buffer at runtime
  • New: Added a new demo scene that showcases the use of custom compute shaders to extend GPUI
  • Changed: Managers now show the Unity Archive link to download built-in shaders, if necessary
  • Changed: Improved the CPU times when handling transform changes
  • Fixed: Billboards not using the original prefab's Layer
  • Fixed: SpeedTrees without BillboardRenderer not showing billboard distance options
  • Fixed: Standard shader error for Unity 2017.3 versions
  • Fixed: Billboard renderer causing a minor artifact in forward rendering and single-pass VR when there is a CommandBuffer using the depth texture
  • Fixed: A bug that would prevent builds from Unity 2018.3 beta versions

v0.9.6 - submitted Nov 16, 2018


  • New: Added a grass mower model and grass mowing mode for the detail instancing scene
  • New: Added shadow casting option for custom billboards
  • Fixed: Possible initialization problems when having multiple prototypes with no-gameobjects
  • Fixed: Manager showing as initialized before gpu buffers are generated
  • Fixed: MapMagic integration missing min. culling distance setting

v0.9.5 - submitted Nov 15, 2018


  • New: Nested-Prefabs support (Unity 2018.3 and later)
  • New: Tree instancing demo scene
  • New: Optional minimum culling distance setting
  • New: Shadow Distance option per prototype
  • New: Shadow LOD options
  • New: Clear Shader Bindings menu item
  • New: Prefab Replacer tool for easily replacing GameObjects in scene with prefab instances
  • New: Brightness setting for baked billboard textures
  • New: Added a cutoff override option for the billboard generator
  • Changed: Shader conversion automatically disables other procedural instancing setups to enable GPUI support for various shader assets
  • Changed: Internal shaders are now marked hidden to remove clutter
  • Fixed: An error in 2018.3 Beta where an issue with the way DateTime worked caused the managers to re-convert shaders
  • Fixed: Billboard normal atlas dilation causing bright outlines
  • Fixed: TreeCreator billboard material properties and reversed normals issue
  • Fixed: Shader conversion error when project is updated while the Manager is running in editor
  • Fixed: Wrong bounds calculation when first mesh in a prefab is scaled
  • Fixed: Standard (Specular) shader now works with LOD cross-fading

v0.9.4 - submitted Nov 07, 2018


  • New: Tree instantiation calculations are made in Compute Shaders for better performance
  • Changed: Automatically create GPUI supported version for custom billboard shader
  • Fixed: Map Magic integration not adding Tree Manager for pinned terrains

v0.9.3 - released Nov 06, 2018


  • New: API Method to remove instances inside a given Bounds or Collider
  • New: Added grass removal function to Detail Instancing Demo
  • New: Added Instance Remover script which removes instances based on colliders of the object when initialized
  • New: Support for Unity 2018.3 prefab system
  • New: Added custom billboard option to billboard generator
  • New: Added billboard extentions for custom billboard generators
  • Changed: Added forceNew parameter to InitializeGPUInstancer API method
  • Changed: Map Magic integration Editor max prefab distance increased to 10000
  • Changed: Added SetCamera method to Map Magic integration class
  • Fixed: Can not find manager warning when instances were initialized before the manager with "Auto. Add/Remove Instances" option enabled
  • Fixed: Map Magic integration Editor not showing prototypes when there are only Trees
  • Fixed: Map Magic integration Editor not updating shader and billboard bindings

v0.9.2 - released Oct 26, 2018


  • New: API Method to define prototypes for procedurally generated GameObjects without prefabs at runtime
  • New: API Method to add instances to a prototype from a list of GameObjects at runtime
  • New: API Method to remove prototype definition on the manager at runtime
  • New: Demo Scene showcasing how to add-remove procedurally generated GameObjects on the Prefab Manager
  • New: Tree Creator billboards now have their own shader that supports their translucency color
  • Changed: Enable Auto. Update Transform by default if there is rigidbody on prefab
  • Changed: Do not create runtimedata when there are no MeshRenderers
  • Changed: Prefab Manager max distance editor limit increased to 10.000
  • Changed: Memory optimization on Tree Manager initialization
  • Changed: Improved SpeedTree billboards
  • Fixed: UpdateVariationFromArray invalid cast exception for multiple variation with different types
  • Fixed: Duplicate Hi-Z Generator components when SetCamera is called for the same camera multiple times
  • Fixed: Tree Manager not calculating prefab scale
  • Fixed: Missing reference exception when disabling manager for procedurally generated GameObjects
  • Fixed: Prefab instances duplicating when dropped on the manager multiple times
  • Fixed: Forward rendering GPUIStandardInclude.cginc fog error for Unity 2018.2.1 and later versions
  • Fixed: Billboard mesh showing wrong atlas frames on some angles (Requires rebake of previous billboards)
  • Fixed: Billboard colors and lighting corrected for linear color space
  • Fixed: Tree Creator trees windzones now work correctly
  • Fixed: Tree Creator billboards crossfading now works correctly

v0.9.1 - released Oct 12, 2018


  • New: Added support for the High Definition Render Pipeline (HDRP)
  • New: Added support for the Lightweight Render Pipeline (LWRP)
  • New: Automatic shader conversion now also works for SRP shaders
  • New: Added option to use custom Health/Dry noise texture for each detail prototype
  • Changed: Further optimized Detail Manager memory usage for Android
  • Fixed: Automatic shader conversion now creates shaders in an internal folder if the original shader is in "Packages" (Package Manager)
  • Fixed: Error on shader conversion for ShaderGraphs
  • Fixed: GPUIStandardInclude.cginc errors on some Unity 2017 versions

v0.9.0 - released Oct 05, 2018


  • New: Tree Manager for Unity terrain trees
  • New: Speed Tree support with wind animations
  • New: Automatic Billboard generation system (designed and tested for Unity terrain trees)
  • New: Gaia integration
  • New: "Auto. Add/Remove Instances" option for Prefab Prototypes
  • New: "Auto. Update Transform Data" option for Prefab Prototypes
  • New: API Methods to Add-Remove-Update prefab instances without instantiating GameObjects (Demo scene included)
  • New: API Method to offset transform positions of all instances
  • New: Shadow rendering performance improvements and LOD settings
  • New: LOD cross-fade support (with animation or fade transition width)
  • New: LOD bias adjustments
  • New: Prefab Scene Importer Tool
  • New: Custom vertex color wind animation support for Soft Occlusion Tree shaders
  • New: Limited support for Tree Creator trees
  • New: Added mobile version of the Prefab Instancing Demo scene with mobile controllers
  • Changed: Prefab instances in the scene can now also be added to the Prefab Manager to create prototypes
  • Changed: Furter optimized update functions to reduce overhead on loops
  • Changed: Mesh Renderer "Cast Shadow" option is taken into consideration when rendering shadows
  • Changed: Various editor improvements for ease of use
  • Fixed: Vulkan API detail rendering compute shader error and UAV count warning
  • Fixed: Vulkan API Foliage shader blinking issue
  • Fixed: Vulkan API not rendering prefabs with more than 3 LOD levels
  • Fixed: Added Standard shader vairants (Cutout, Transparent, Fade) for instanced shader features not compiling in builds
  • Fixed: Missing AddRemoveInstancesDemo scene prefab references

v0.8.3 - released Aug 07, 2018


  • New: Added Detail Density for Detail Manager
  • Fixed: SetCamera now does not add the Occlusion Culling buffer to the camera if Occlusion Culling is turned off in the manager
  • Fixed: Grass initialization kernel position 0,0 random position and rotation generation problem
  • Fixed: Prototype list null check on initialization and registered prefabs count check on register

v0.8.2 - released Jul 18, 2018


  • Fixed: Multiple fixes and improvements for OpenGL ES 3.1 and Vulkan API on Android target platforms
  • Fixed: Auto custom shader conversion DateTime error when updating project

v0.8.1 - released Jul 03, 2018


  • New: GPU Occlusion Culling (for non-VR platforms)
  • New: Map Magic integration
  • New: Max LOD levels increased to 8
  • New: Detail initialization is now faster
  • New: Detail spatial partitioning memory and performance optimizations
  • New: Auto-converted versions of custom shaders are now automatically updated when the originals are modified
  • New: Option to use original shaders for shadow casters on prototypes that fall outside the view frustum
  • New: Layers are now taken into consideration with instancing
  • New: Warning messages in manager editor windows
  • New: Terrain is now set automatically if Detail Manager is added on the terrain GameObject
  • New: Additional API methods added to manage registered prefabs
  • New: Out of bounds check for prefab API methods
  • New: Added scripting define symbol: GPU_INSTANCER
  • Changed: Detail simulation improvements, works with frustum culling
  • Changed: Max detail viewing distance increased to 2500
  • Changed: LOD calculations now better reflects Unity LOD Group settings
  • Changed: Custom editor properties are reordered and grouped
  • Changed: Terrain Proxy will not be added if the manager is already added to terrain
  • Changed: Removed terrainData reference on TerrainSettings for terrains that are generated from scripts
  • Changed: PrefabInstancingDemoScene now has its own shader for the Asteroid Haze, which is also instanced as a prefab prototype
  • Fixed: Prefab Manager Custom Editor null reference exception when manager is disabled at runtime
  • Fixed: TerrainProxy DestroyImmediate multiple times error when detail manager is added under the terrain GameObject
  • Fixed: Built-in shader can not be instanced warning loop. Now shows error in custom editor when instanced shader was not able to be created, and throws a warning in play mode
  • Fixed: Multiple fixes for some iOS, tvOS and macOSX platforms using the Metal API
  • Fixed: Multiple fixes and improvements for Vulkan API on android target platforms

v0.8.0 - released May 19, 2018


  • Initial release