Search Unity

[RELEASED] GPU Instancer

Discussion in 'Assets and Asset Store' started by LouskRad, May 3, 2018.

  1. GurhanHazinedar

    GurhanHazinedar

    Joined:
    Apr 24, 2017
    Posts:
    161
    Hi there,

    Frustum culling works with the current camera projection matrix. However the occlusion culling uses the depth buffer which comes from the result of the previous frame. This is an issue when your camera is moving fast and your frame rate is low enough so that there is a big difference between frames to cause incorrect culling. It is not possible to get the next frame's depth buffer before it is rendered. So in these cases we recommend to disable the occlusion culling. You can disable the occlusion culling in editor completely or enable/disable occlusion culling at runtime from GPUInstancerManager.isOcclusionCulling when needed.
     
  2. potatojin

    potatojin

    Joined:
    Apr 11, 2012
    Posts:
    23
    Disabling occlusion and frustum culling for one frame when doing the camera move (and then switching them both back on immediately) did the trick for me. Thanks for the hint!
     
  3. hongtm

    hongtm

    Joined:
    May 22, 2018
    Posts:
    18
    The asset is't support Unity 2018.3, how to fix it?
     
  4. LouskRad

    LouskRad

    Joined:
    Feb 18, 2014
    Posts:
    579
    Hi there,

    We have tested GPUI v0.9.2 with the latest 2018.3 beta, and all the major functionality is working. What is the problem you are facing?

    Please note that GPUI does not yet integrate into the nested prefabs workflow.

    If you'd like, you can contact us at support@gurbu.com with the details of the problem you are facing, and we can help you.
     
  5. hongtm

    hongtm

    Joined:
    May 22, 2018
    Posts:
    18
    Thanks a lot, just emailed you.
     
  6. NITO90

    NITO90

    Joined:
    Feb 5, 2015
    Posts:
    4
    Hi there,

    Im working with the MapMagic integration version of GPU instancer.

    My problem was i cant assign a camera at runtime, through the api, because the map magic version manager is not supported i think...

    I modified some code, copied the setCamera method from the core manager script to the map magic version.
    Now i can assign camera at runtime, but its not working as expected, no grass is rendered/instanced...

    It would be great if you could help me solve the problem, as the asset is a very good product and a big help in my project.

    Thank you in advance.
     
  7. GurhanHazinedar

    GurhanHazinedar

    Joined:
    Apr 24, 2017
    Posts:
    161
    Hi there,

    You can add the following at the end of the GPUInstancerMapMagicIntegration.cs and set your camera with this method. Then it should work as intended. We will also add this to the next update.

    Code (CSharp):
    1. public void SetCamera(Camera camera)
    2. {
    3.     cameraData.mainCamera = camera;
    4.     GPUInstancerAPI.SetCamera(camera);
    5. }
     
    NITO90 likes this.
  8. shamsfk

    shamsfk

    Joined:
    Nov 21, 2014
    Posts:
    277
    Hi! I own a copy of GPU Instancer for quite a while and it is great! But there is a new project on a way in and to evaluate it I need to know how far are you from implementing skinned meshes instancing?
    Thanks!
     
  9. Nihilus0

    Nihilus0

    Joined:
    Jan 25, 2017
    Posts:
    52
    Hi again, @GurhanHazinedar
    I tried GPUI with MapMagic and the result is not good. The way you provide code is by using
    OnApplyCompleted
    . However, this has a huge overhead whenever more than three Chunk are created, deleted, and activated.

    Is it possible for GPUI to manage the details and the Tree managers on a single management basis, rather than having them separately for each Terrain? I ask you if you have other plans for this or if you have any good solutions or other implementation ideas.

    Thanks.
    P.S. I am not an English speaker. I used a translator. I am sorry my poor English.
     
    Last edited: Nov 5, 2018
  10. LouskRad

    LouskRad

    Joined:
    Feb 18, 2014
    Posts:
    579
    Hi there and thank you for your support.

    The skinned mesh support is currently our main focus. However, we do not plan to commit to a release date - and instead we will release a beta version when our working prototype serves as a complete implementation for most of the use cases.
     
  11. GurhanHazinedar

    GurhanHazinedar

    Joined:
    Apr 24, 2017
    Posts:
    161
    Hi @Cosmoraph

    We are not planing to change the core detail-tree system in the near future. However, if you have performance problems while creating, deleting, and activating chunks, having a single manager would not really help with this, since it would still need to read the terrain data and allocate required memories.
    Are you sure that the performance problems are connected to GPU Instancer and not something else? If so, can you please send a mail to support@gurbu.com with some details (profiler screenshots - MapMagic integration setup - terrain settings), so that we can investigate this.
     
  12. LouskRad

    LouskRad

    Joined:
    Feb 18, 2014
    Posts:
    579
    Hi everyone,

    We have just submitted the 0.9.3 update to the Asset Store. This version fixes some known bugs and we have also added a system that you can use to remove prototype instances using bounds or colliders. This removal feature works for all managers. You can use this feature either by adding the new GPUInstancerInstanceRemover.cs script to a game object or use the new API methods for runtime operations. We have also updated the DetailInstancingDemoScene to showcase this:



    Here is the full v0.9.3 changelog:

    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
     
    NITO90 likes this.
  13. pxlweaver

    pxlweaver

    Joined:
    Dec 21, 2012
    Posts:
    92
    Hopefully I'm just missing something obvious here, but there's a GPUInstancerTreeManager.RemoveInstancesInsideCollider (which works great btw) - is there a method for hiding instances or better yet a method that returns the list of trees inside the collider? That way trees can be added back?
     
  14. LouskRad

    LouskRad

    Joined:
    Feb 18, 2014
    Posts:
    579
    Hi there and thanks,

    Currently, the only way to get the removed instances back is to re-initialize the managers. GPUI currently does not support adding back trees (or prefab or detail) in a specific area - which would require a separate system that persists all the changes.

    If you re-initialize the managers, the objects with removal script will again remove the instances inside their colliders/bounds. Or if you're using the API, you can remove the desired instances again after re-initialization. The removal works extremely fast, so this would not cause a noticeable overhang.
     
  15. pxlweaver

    pxlweaver

    Joined:
    Dec 21, 2012
    Posts:
    92
    So I could remove trees within a collider with GPUInstancerTreeManager.RemoveInstancesInsideCollider, and then if I want to add them back, I move/destroy the collider and re-initialize the Tree Manager? Re-initialize with GPUInstancerAPI.InitializeGPUInstancer(treeManager) correct?
     
  16. LouskRad

    LouskRad

    Joined:
    Feb 18, 2014
    Posts:
    579
    You do not need to move/destroy the collider; if you do not call RemoveInstancesInsideCollider again, the collider would not remove the instances again - but otherwise yes, that's how you could do it.

    Also, we just submitted the 0.9.4 update in which we moved the tree instantiation to a compute shader, so it will be a lot faster. This update should be live in a couple of days, and we will inform you when it's available.
     
    pxlweaver likes this.
  17. pxlweaver

    pxlweaver

    Joined:
    Dec 21, 2012
    Posts:
    92
    Awesome, thanks!
     
  18. AbyssWanderer

    AbyssWanderer

    Joined:
    Mar 15, 2016
    Posts:
    75
    Hi LouskRad.

    From videos and reviews, your asset seems to be amazing, great job!

    I have one question, though.
    Could you, please, clarify how does your technology blend with "Vegetation Studio" asset?
    https://www.assetstore.unity3d.com/en/?stay#!/content/131835
    - they also seem to use some technology allowing to render lots of vegetation. So can I use your Instancer on top of that Vegetation system?
    If so, do you consider making any integration in the nearest months?

    Thanks in advance!
     
  19. LouskRad

    LouskRad

    Joined:
    Feb 18, 2014
    Posts:
    579
    Hi there, and thanks!

    GPUI uses indirect instancing techniques for rendering vegetation, and VS also uses GPU instancing internally. Because of this, a blend with both assets would not work out of the box in terms of vegetation. However, GPUI is not intended to be a terrain replacement system per se, and you can currently use GPUI to render your non-vegetation prefabs (or some vegetation items as prefabs) with all the GPU culling and transform update features even if you use VS for your vegetation.

    On the other hand, a deeper integration might be possible, and this was also requested before. We will contact the publisher of VS and look into possible options and will let you know if anything comes up.
     
    ftejada and clobo like this.
  20. AbyssWanderer

    AbyssWanderer

    Joined:
    Mar 15, 2016
    Posts:
    75
    Thank you very much for explanations.
    Indeed, VS is mostly about vegetation, so I think I will end up with using GPUI for things like asteroids, shards (of destroyed objects), etc.

    Will be happy to see the integration anyways, though.
    Best luck, guys, in your future work! It goes coold so far!
     
    LouskRad likes this.
  21. umair21

    umair21

    Joined:
    Mar 4, 2016
    Posts:
    85
    Hi, I am getting this error and I think because of this frustum culling is not working.
    Also the script GPU Instancer Prefab Manager automatically disables on start of game.

    GPU Instancer.PNG
     
  22. GurhanHazinedar

    GurhanHazinedar

    Joined:
    Apr 24, 2017
    Posts:
    161
    Hi there,

    GPU Instancer requires Compute Shader support.This error is thrown when the target platform does not support Compute Shaders. Which platform is your project targeting? If you have an Android project, you can have a look at this page to see how to set up your project: https://www.gurbu.com/gpuinstancer/tutorials/androidbuildsettings
     
  23. LouskRad

    LouskRad

    Joined:
    Feb 18, 2014
    Posts:
    579
    Hi everyone,

    GPUI version 0.9.4 is live on the Asset Store. With this update we moved the tree manager initialization code to a compute shader, so it will be a lot faster now. This should increase performance of the scene startup, and also infinite terrains should initialize a lot faster as well.

    The changelog is as follows:

    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
     
    Crossway likes this.
  24. transat

    transat

    Joined:
    May 5, 2018
    Posts:
    268
    Hi. I've bought this asset and am keen to give it a go. I also have another asset which uses instanced indirect rendering. On a Mac though, instanced indirect is slower than instanced, with the other asset. I'm trying to troubleshoot and was wondering if this is also an issue GPU Instancer has?
     
  25. LouskRad

    LouskRad

    Joined:
    Feb 18, 2014
    Posts:
    579
    Hi there and thank you for supporting GPUI.

    We haven't received any reports of performance issues with MacOS systems so far.

    Indirect instancing allows the freedom to use the GPU buffers without the limitations imposed by DrawMeshInstanced API - but implementation does matter. GPUI packs the relevant instance data in efficient ways to minimize draw calls, effective buffer usage and memory optimization. Also. all the culling operations, etc. are done on the GPU for maximum performance. Leveraging the GPU means that the performance gain you get will scale for the better with the power of the GPU - but in any case you would be getting better results than the DrawMeshInstanced (or the instancing option on the Unity materials).

    If you'd like to compare the PC and Mac performance, you can download the demo builds and have a look:
    https://www.gurbu.com/demobuilds
     
    transat likes this.
  26. LouskRad

    LouskRad

    Joined:
    Feb 18, 2014
    Posts:
    579
    Hi everyone,

    GPUI Version 0.9.5 is live on the asset store. This is a relatively bigger update, and it includes various new features, changes and fixes.

    First off, we have added support for nested prefabs (!) for those of you using Unity 2018.3 (and later). You can now add prefabs within prefabs and GPUI will add those as seperate prototypes - allowing you to use a single draw call for all the inner prefab meshes that are shared in other host prefabs.

    gpui_nested_prefabs.JPG

    In the image above, the legs are detected as prefabs so they are shared between the table and the chair. Each color thus represents an individual prototype.

    On this note, please have in mind that Unity's nested prefab support itself still has some problems.

    We've also added a tree instancing demo scene and some low-poly style trees to the project.

    treeinstancingdemo.JPG

    Next up, we have added a minimum culling distance option that you can use to override the frustum and occlusion culling behavior in a range around the camera:

    mincullingdistance.JPG

    We also have new shadow settings that will allow you to set different shadow distances for your prototypes and choose which LOD to render the shadows from:

    CustomShadowDistLOD.png

    We have also added a tool that you can use to replace scene game objects with a prefab for you to easily manage your GPUI prototypes with scenes that don't have prefab instances:

    prefabreplacer.JPG

    There is also a new tool that will clear your shader bindings in case you want to delete the shaders that GPUI has created.

    There are new features for the billboard generator:

    - You can now adjust the brightness of the generated billboard texture.
    - Set a custom alpha cutoff value to override asset materials that use the alpha channels of their textures for some other value (e.g. metallic).
    - GPUI will now auto-convert the custom billboard materials you wish to use instead of the generated billboard.

    In addition to these, there are various minor changes and some bug fixes. Here is the full 0.9.5 changelog:

    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
     
    ftejada, Alex3333 and AthrunVLokiz like this.
  27. Harekelas

    Harekelas

    Joined:
    Feb 3, 2015
    Posts:
    740
    Hi,
    I'm testing GPU Instancer with MapMagic. I have 29 trees prototypes and planted 5000 instances total for one terrain tile.
    But I got pretty bad performance with GPU Instancer:
    upload_2018-11-16_17-5-40.png

    As you can see the draw call is 3000+ and the late update on GPU Instancer is eating up my CPU (Intel i5 7500)
    4.2ms on self is quite slow and the Gfx cost is insane, my graphic card is GTX 1060 6G.

    Trees are speed trees, all with LOD, is there anything that I did wrong?
    I can run the demo scene under 13ms delta time with 50k asteroids instantiated in the editor.
     
  28. GurhanHazinedar

    GurhanHazinedar

    Joined:
    Apr 24, 2017
    Posts:
    161
    Hi there,

    Looks like you have the GPUInstancerGUIInfo component with the Show Rendered Amounts enabled. This is for debug purposes only and eats up a lot of resource because of reading data from GPU every frame. If you disable it you will not see the GFX.GetComputeBufferData_Request anymore.
     
  29. Harekelas

    Harekelas

    Joined:
    Feb 3, 2015
    Posts:
    740
    I've deleted the GPU InstancerGUIInfo and made a test again, using GPU instancer is not even faster than unity's own dynamic batching:

    Without GPUI
    upload_2018-11-16_17-54-28.png

    With GPUI
    upload_2018-11-16_17-56-37.png

    There must be something I've done wrong on the settings.
    I'm expecting the vegetation rendering cpu cost can be optimized under 5ms where I wish GPUI can help to achieve.
     
    Last edited: Nov 16, 2018
  30. GurhanHazinedar

    GurhanHazinedar

    Joined:
    Apr 24, 2017
    Posts:
    161
    Can you please send screenshots of your GPUI manager settings to support@gurbu.com? We will investigate what might have gone wrong.
     
  31. Harekelas

    Harekelas

    Joined:
    Feb 3, 2015
    Posts:
    740
    Sent an email to the address.
     
  32. djgriff

    djgriff

    Joined:
    May 29, 2014
    Posts:
    260
    Hi, how does this differ from the built in instancing system unity already has?

    Thanks
     
  33. LouskRad

    LouskRad

    Joined:
    Feb 18, 2014
    Posts:
    579
    Hi there, thank you for your interest in GPU Instancer.

    For prefabs in general, GPUI uses the DrawMeshInstancedIndirect API, and executes compute shaders on top to do LOD and culling calculations in the GPU. This results in a lot more FPS (and a lot less drawcalls) than using the DrawMeshInstanced API (the Unity default). For a comparison, you can try out the demo builds: https://www.gurbu.com/demobuilds

    Also, GPUI allows you to use occlusion culling without the need to bake anything beforehand (using the depth buffer at runtime):



    GPUI also integrates this system for the terrain details and trees - allowing you to have faster and better looking Unity terrains. You can use your custom materials (or the included foliage shader) for your instanced details and generate billboard quads for your trees for even better performance.

    Furthermore, the GPUI API allows you to have flexible control over your instances. You can add, remove update and use physics on your instances - or even have a workflow where you don't use game objects (using Matrix4x4 data directly) for maximum performance.
     
    ZJP likes this.
  34. Pepper86

    Pepper86

    Joined:
    Aug 25, 2015
    Posts:
    1
    Quick question:
    On Unity terrain the grass is replaced by this nice looking grass. Is it possible to do this on a mesh too? Because i am using meshs instead of unity terrains.
     
  35. LouskRad

    LouskRad

    Joined:
    Feb 18, 2014
    Posts:
    579
    Sure thing, all you need to do is to use the Prefab Manager and define your grass meshes/quads as prototypes. You could also go for the no-game object workflow for even better performance.
     
  36. Tealeafpei

    Tealeafpei

    Joined:
    Nov 13, 2017
    Posts:
    4
    I purchased it, so great for accelerating my work. Is there any way to use it with other compute shader?
    For example, https://github.com/Gwin73/GPU-boids
    All movements of these individuals are computed on GPU. Then, they are rendered by Graphics.drawMeshIndirect
    I am wondering if it is possible to get buffers for each individual transform from compute shader and update this buffer each GPUI object , all these operations are done in GPU.
     
  37. GurhanHazinedar

    GurhanHazinedar

    Joined:
    Apr 24, 2017
    Posts:
    161
    It is possible to use other compute shaders to apply changes before rendering objects with GPUI. But you would need to handle the external compute shader dispatch yourself and disable other DrawMeshInstancedIndirect methods if there is one. So it would require some knowledge of compute shaders and graphics api.

    GPU Instancer stores the transform data under
    Code (CSharp):
    1. GPUInstancerManager.runtimeDataList[i].transformationMatrixVisibilityBuffer
    This is a float4x4 structured buffer that keeps localToWorldMatrix data for instances. If you send this buffer to another compute shader before the GPUI Manager's LateUpdate, you can change it before rendering.
    We do the same for some runtime modifications, for an example you can check SetGlobalPositionOffset API method. This method changes positions for all of the instances according to a given offset.

    We are also planning to add a simple demo later on showing how to use an external compute shader with GPUI.
     
  38. madsky

    madsky

    Joined:
    Aug 14, 2018
    Posts:
    3
    hello,why count is 0?
     

    Attached Files:

  39. Tealeafpei

    Tealeafpei

    Joined:
    Nov 13, 2017
    Posts:
    4
    Cool, it'll be super great to have a demo like this~
     
  40. GurhanHazinedar

    GurhanHazinedar

    Joined:
    Apr 24, 2017
    Posts:
    161
    Hi there,

    Prefab Manager works by default with prefab instances in your scene. These counts are 0, because probably your scene does not have instances of these prefabs.
    If you wish to replace the GameObjects in your scene with prefab instances, you can use the Prefab Replacer under GPU Instancer -> Tools -> Show Prefab Replacer
    When you add a new prefab instance into your scene, you can use the "Register Prefabs in Scene" button on the Prefab Manager to save them.

    Please note that all the managers and tools have a "?" button on the top right corner of their windows, which you can use to get explanations on how to use them.
     
  41. Harekelas

    Harekelas

    Joined:
    Feb 3, 2015
    Posts:
    740
    Hi, I've found the GPUI Manager's late update is quite costy:
    It cost about 1ms for each manager, for I'm using mapmagic to stream terrains, there will be 4 GPUI managers at the same time at most. That will be around 4ms cost just for the update.
    This largely reduced the performance: if I want my game run on 60 fps, then only 16ms can be used, 4ms for script update is a bit too much. Any ideas what may caused this issue, and is it possible to optimize it by multi-threading?
     
  42. Harekelas

    Harekelas

    Joined:
    Feb 3, 2015
    Posts:
    740
    Hi again :)
    I see that there is a method in the API:
    InitializeWithMatrix4x4Array that can create rendered instances without gameobjects.
    Does this method mean all the colliders will not be able to function for the rendered instances?
    Will there be a collider streaming funciton for non-gameobject instances in the future?
     
  43. LouskRad

    LouskRad

    Joined:
    Feb 18, 2014
    Posts:
    579
    Hi there,

    This issue is most likely caused by the map magic integration manager creating a manager for each terrain. This results in the GPUI system recognizing each terrain's prototypes as different prototypes. It looks like the this creates a noticeable overhang when the amount of prototypes are high. However, this is an issue with the map magic integration and not GPUI per se - so it could be solved by pooling the managers for all terrains. We will look into this and add a solution that better handles this in probably the next update.

    You can currently solve this by using a Prefab Manager instead of the Map Magic Integration manager. Please let us know if you need further help with that.

    Exactly; if you don't need anything other than rendering the instances, you can use a no-game object workflow through that API. A collider streaming/pooling feature has certainly been under our radar for a while, but it is not in our roadmap for the near future. I will let you know when we have any update on this.
     
  44. LouskRad

    LouskRad

    Joined:
    Feb 18, 2014
    Posts:
    579
    Hi everyone,

    v0.9.6 has just been released on the Asset Store. In this version, we have mainly fixed some bugs and added a grass mower model (!) for you to properly use the removal feature. Here is what the mower looks like:

    GPUIGrassMower2018.JPG

    If you want to further see it in action, take a look at this tweet:

    https://twitter.com/ABurakErbora/status/1064165532730048515

    Here is the v0.9.6 changelog:

    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
     
    AthrunVLokiz and CityGen3D like this.
  45. dl290485

    dl290485

    Joined:
    Feb 4, 2018
    Posts:
    125
    Is this something that I will find useful for my hobby build games (so, amateur, and 'coded' entirely using Playmaker...) to increase performance- without needing to do extensive work or learning on how to use this tool?

    I have looked through the videos a bit and seen some features which (I don't completely understand, but) may add stuff that Unity doesn't do at all (like billboard generation on any mesh, not just terrain tool added trees, etc?), however half a video is all about Occlusion Culling when Unity does that out of the box. So for that for example, can I suppose that your tool does culling better? Is that for any types of things in particular (like generated grass) or for any mesh objects placed?

    I'm working on a scene right now with heaps of hand placed objects. I'm hoping something can claw back the FPS because it's reaching the lower limit while I still have a bit more work to do on the map.

    Here is an old screenshot. It goes on like this with heaps of trees, bushes, reeds, a town, etc. Everything is hand placed and the terrain tool is not adding any grass or trees. The water is Aquas.

    So would a scene like this be easily / 'out of the box', improved by your tool?

    china-scene-a1.png
     
  46. LouskRad

    LouskRad

    Joined:
    Feb 18, 2014
    Posts:
    579
    Hi there,

    GPUI improves performance for scenes where the same prefabs are used a lot. This includes terrain trees and details. The simplest way to use GPUI to achive this performance gain is add a manager (in two clicks). We have users that use Playmaker, and so there is no compatibility issue there.

    We will be adding new videos in the near future, and are also preparing a GPUI wiki page. The occlusion culling system GPUI uses differs from the Unity one in that it completely works in the graphics card (so it's faster) and does not need any maps baked to work. You can use this system for all the prototypes that are defined in the GPUI system as prototypes (grass, trees, and prefabs). The billboard generator system is designed mainly for trees, although it would work for other things as well. The main issue to have in mind is that currently the generated billboard is 2D, so it rotates around the y axis: it does not have perspectives from up and down.

    Whether it would work out of the box depends on how you constructed this scene. If you used prefab instances and have (for example) all those reeds and trees as instances of prefabs, it would work out of the box. We have also tested Aquas and know that it works with GPUI.
     
  47. dl290485

    dl290485

    Joined:
    Feb 4, 2018
    Posts:
    125
    Thanks for the info. It's actually on sale but since I didn't know how long for I've gone ahead and bought the asset already. I hope it can be helpful to me.

    Yes most of what I have added is by dragging prefab items in from the project folder. However, in regards to that; does it matter if items vary from their prefab? For example there are 4 trees, but I'm building a forest out of these by changing their the sizes of each gameobject and also the material on them for variation. Is this significant? Does an item have to be exactly like it's prefab, or is just being linked enough?
     
  48. dl290485

    dl290485

    Joined:
    Feb 4, 2018
    Posts:
    125
    I added the Prefab Manager then dragged every single prefab from the scene into it. I turned off automatic camera and set it to the one I'm using. I seem to be having a problem. There is a pink shape which stays with the camera like a 3d object the camera is stuck in and I can see none of the objects are loading too.
    How do I debug this?
    gpuinstancererror.jpg
     
  49. dl290485

    dl290485

    Joined:
    Feb 4, 2018
    Posts:
    125
    Errors:
    gpuierrorrlog.jpg
     
  50. LouskRad

    LouskRad

    Joined:
    Feb 18, 2014
    Posts:
    579
    Hi,

    Looks like there are two separate problems.

    Can you please send us a mail at support@gurbu.com with (1) the details of the material/shader you are using and (2) a screenshot of your prefab manager? We can help you solve this from there.