Search Unity

  1. Improved Prefab workflow (includes Nested Prefabs!), 2D isometric Tilemap and more! Get the 2018.3 Beta now.
    Dismiss Notice
  2. The Unity Pro & Visual Studio Professional Bundle gives you the tools you need to develop faster & collaborate more efficiently. Learn more.
    Dismiss Notice
  3. Let us know a bit about your interests, and if you'd like to become more directly involved. Take our survey!
    Dismiss Notice
  4. Improve your Unity skills with a certified instructor in a private, interactive classroom. Watch the overview now.
    Dismiss Notice
  5. Want to see the most recent patch releases? Take a peek at the patch release page.
    Dismiss Notice

[RELEASED] GPU Instancer

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

  1. LouskRad

    LouskRad

    Joined:
    Feb 18, 2014
    Posts:
    123


    GPU Instancer v0.9.0 is released in the asset store.

    You can download demo builds for PC, VR, Mac and Android

    Introducing GPU Instancer v0.9.0

    GPU Instancer is an out of the box solution to display extreme numbers of objects on screen with high performance. With a few mouse clicks, you can instance your prefabs, Unity terrain details and trees.

    GPU Instancer provides user friendly tools to allow everyone to use Indirect GPU Instancing without having to go through the deep learning curve of Compute Shaders and GPU infrastructure. Also, an API with extensive documentation is provided to manage runtime changes.


    To provide the fastest possible performance, GPU Instancer utilizes Indirect GPU Instancing using Unity's DrawMeshInstancedIndirect method and Compute Shaders.

    GPU Instancing results in magnitudes of performance improvement over static batching and mesh combining. Also, other available solutions for GPU Instancing (including Unity's material option and the DrawMeshInstanced method) fail short on limited buffer sizes and therefore result in more draw calls and less performance. By using the indirect method GPU Instancer aims to provide the ultimate solution for this, and increases performance considerably while rendering the same mesh multiple times.

















    GPU Instancer v0.9.0 features are:
    • Out of the box solution for complex GPU Instancing.
    • VR compatible. Works with both single pass and multipass rendering modes.
    • Mobile compatible. Works with both iOS and Android.
    • Easy to use interface.
    • Tens of thousands of objects rendered lightning fast in a single draw call.
    • GPU frustum culling.
    • GPU occlusion culling (non-VR platforms only).
    • Automatically configured custom shader support
    • Complex hierarchies of prefabs instanced with a single click.
    • Multiple sub-meshes support.
    • LOD Groups and cross-fading support (with animation or fade transition width).
    • Automatic 2D Billboard generation system (auto-added as last LOD).
    • Shadows casting and receiving support for instances (frustum culled instances still can cast shadows).
    • Unity 5.6 support.
    • Well documented API for procedural scenes and runtime modifications (examples included).
    • Example scenes that showcase GPU Instancer capabilities.
    Prefab Instancing Features:
    • Ability to automatically instance prefabs at your scene that you distribute with your favorite prefab painting tool.
    • Automatically Add-Remove prefab instances without any aditional code.
    • Automatic detection and updating of transform position, rotation and scale changes.
    • Full or area localized rigidbody and physics support.
    • Add-Remove-Update prefab instances with or without instantiating GameObjects (examples included).
    • Instance based material variations through API (similar to Material Property Blocks).
    • Enabling and disabling instancing at runtime per instance basis.
    • API to manage instanced prefabs at runtime.
    • Includes mobile demo scene with custom controllers.
    Detail Instancing Features:
    • Dense grass fields and vegetation with very high frame rates.
    • Included vegetation shader with wind, shadows, AO, billboarding and various other properties.
    • Support for custom shaders and materials.
    • Cross quadding support: automatically turns grass textures to crossed quads.
    • Ability to paint prefabs with custom materials on Unity terrain (with Unity terrain tools).
    • Ability to use prefabs with LOD Groups on Unity terrain.
    • Further performance improvements with automatic spatial partitioning.
    • API to manage instanced terrain detail prototypes at runtime (Examples included).
    • Editor GPU Instancing simulation.
    Tree Instancing Features [BETA]:
    • Dense forests with very high frame rates.
    • Speed Tree support with wind animations.
    • Included billboard baker and renderers.
    • Custom vertex color wind animation support for Soft Occlusion Tree shaders.
    Third Party Integrations:
    • Gaia integration.
    • Map Magic integration.




    Planned Features:
    • Tree Creator support with wind animations (a limited version is currently available).
    • Support for animation baking and skinned mesh renderers.
    Requirements:
    • DirectX 11 or DirectX 12 and Shader Model 5.0 GPU (Windows, Windows Store)
    • Metal (macOS, iOS)
    • OpenGL Core 4.3 (Windows, Linux)
    • Vulkan (Android, Windows, Linux)
    • OpenGL ES 3.1 (Android 8.0 Oreo or later)
    • Modern Consoles (PS4, Xbox One)
    For more information:
    Getting Started
    Tutorials and FAQ
    Tutorial Videos
    API Documentation
    Performance Analysis
     
    Last edited: Oct 6, 2018
  2. Mark_01

    Mark_01

    Joined:
    Mar 31, 2016
    Posts:
    328
    Looks very interesting and promising :)

    Will it be compatible with Vegetation studio ? Even if not, I can see how this could very
    very useful to use in conjunction with VS.

    And second part question :D I assume this would be great for use with VR ?
     
  3. LouskRad

    LouskRad

    Joined:
    Feb 18, 2014
    Posts:
    123
    Thanks for your interest and kind words :)

    For your first question, basically yes. There is no reason why the prefab instancing bit wouldn't work with Vegetation Studio and actually would improve scene performance further in conjunction with it. The detail instancing bit, however, instances Unity Terrain details directly and you would probably have to choose between GPU Instancer and Vegetation Studio according to your needs.

    For your second question, well you're definitely right. We have tested with HTC Vive so far and results were quite exciting. Since the primary goal of GPU Instancer is performance, one aspect of using it is to provide better quality visuals with faster and stable frame rates on VR.

    In the near future, we will share detailed performance analyses with different hardware.
     
    Mark_01 likes this.
  4. Mark_01

    Mark_01

    Joined:
    Mar 31, 2016
    Posts:
    328
    Very exciting thank you. ;-)

    I am not a coder, so please forgive what might sound like stupid questions ..

    I read through and getting started, a bit fast. The main question would be, do you need to use this system
    for terrain / grass and tree's ? Or could you set other objects, like rocks, houses / off shore island meshes that
    are decoration only kind of thing ? A mix and match sounds like a huge speed up is possible :)
     
  5. Neviah

    Neviah

    Joined:
    Dec 1, 2016
    Posts:
    187
    You have LOD group support, but is it safe to say that it doesn't automatically create LOD groups for each object we choose? Is that something we have to do ourselves?

    Great product, by the way.
     
  6. dyox

    dyox

    Joined:
    Aug 19, 2011
    Posts:
    525
    Hello, does it Support SpeedTree? -If yes, does it support fading/billboards ?
    Also, are shadows correctly working when objects are outside the frustrum but casted shadows are visible in camera view ?
    Thanks.
     
  7. LouskRad

    LouskRad

    Joined:
    Feb 18, 2014
    Posts:
    123
    Hi :)

    You can use GPU Instancer to instance any of your prefabs including your rocks, houses and any game object with a MeshRenderer without having a terrain in your scene. (The asteroids scene in the video is a good example of this.) Obviously, the higher the amount of objects in your scene, the more performance boost you will get.

    For the terrain details, we have a dedicated system in which you can add your grass, vegetation and any prefab really to use with Unity's terrain painting tools, and we use that data to instance those objects. This also works if you have an existing terrain with painted details on it.

    In short, yes, you can instance any mesh (except skinned meshes - which we will support in a future release) and you are not restricted to vegetation. :) All you need to do is to add your prefabs to the GPU Instancer Prefab Manager and they will be instanced. We will provide some videos that show how to do this very soon.
     
    CraftingPixelLab, ftejada and Mark_01 like this.
  8. LouskRad

    LouskRad

    Joined:
    Feb 18, 2014
    Posts:
    123
    Thanks Neviah :)

    Currently, we do not offer an automatic LOD creation tool. The LOD Support we have is for instancing prefabs that you create as Unity LOD Groups. If you have a prefab with an "LOD Group" component on it, we instance all its LOD renderers and do the necessary calculations to switch LODs on the GPU as well.
     
    Neviah likes this.
  9. LouskRad

    LouskRad

    Joined:
    Feb 18, 2014
    Posts:
    123
    Thanks for your interest.

    We currently do not support SpeedTree (or TreeCreator) objects; although we have a working prototype and we will add support for this in a future release.

    About the shadows; yes, the shadows work correctly for the objects that are outside the frustum but are supposed to cast shadows. We have a dedicated buffer and a shader that specifically takes care of this.

    So there are no popping or missing shadows :)
     
    Mark_01, Neviah and dyox like this.
  10. Mark_01

    Mark_01

    Joined:
    Mar 31, 2016
    Posts:
    328
    Forgot to ask .. so does GPU instanter use special shaders ?
     
  11. LouskRad

    LouskRad

    Joined:
    Feb 18, 2014
    Posts:
    123
    Hi Mark :)

    The GPU Instancer experience is designed to be out of the box and seamless, so you don't need to change your materials or do anything at all - you can instance all your prefabs as they are.

    A small explanation before answering your question: GPU Instancer uses compute shaders that do intensive work on the GPU before sending data to any surface (or fragment) shaders. So the only requirement here is that the surface shader must be able to accept this data.

    Now to answer your question, GPU Instancer comes with versions of standard Unity shaders that are configured to accept this data - and uses them automatically if your materials use the Unity standard shaders (whether standard or standard specular). Also, if you are using a custom or third-party shader, GPU Instancer automatically creates a configured version of this shader.

    For replacing terrain grass (texture details), GPU Instancer comes with a custom grass shader that we use instead of the Unity grass shader; that is what you see in the video. However, you can choose to use your own custom grass surface shader and it will again be automatically configured to work with GPU Instancer.

    Hope this answers your question :)
     
  12. Mark_01

    Mark_01

    Joined:
    Mar 31, 2016
    Posts:
    328
    Very cool!! :) It sounds very good. I am hoping I will be able to afford this.

    Another thought, would be particle system too ?

    This to me is something that you could do very well with this in the store. I am excited about the possibilities
    with this.

    I believe GPU Instanter has the capability to become a top seller in the asset store.:):):)
     
  13. LouskRad

    LouskRad

    Joined:
    Feb 18, 2014
    Posts:
    123
    Thanks a lot! :)

    We currently don't have any plans to integrate a GPU based particle system - although a particle system approach definitely sounds exciting :)

    However, GPU Instancer currently supports per-instance based modification of instances' transform data at runtime, so you can use the API to move, rotate and scale instanced prefabs through scripts.
     
    NeatWolf, Mark_01 and Neviah like this.
  14. sharkapps

    sharkapps

    Joined:
    Apr 4, 2016
    Posts:
    87
    Hi @LouskRad, congratulations on the asset store release! I am excited to see some benchmark numbers when they are available. Your description sounds promising.
     
  15. LouskRad

    LouskRad

    Joined:
    Feb 18, 2014
    Posts:
    123
    Hi there, and thanks :)

    We have just added some benchmark results to our website. You can view them at:
    http://www.gurbu.com/performance
     
    Mark_01 and sharkapps like this.
  16. _dandroid

    _dandroid

    Joined:
    Feb 1, 2016
    Posts:
    8
    Looks very nice. What's the price going to be?
     
  17. LouskRad

    LouskRad

    Joined:
    Feb 18, 2014
    Posts:
    123
    Thanks  :)
    We will set a prize tag very soon, and I will let you all know in this thread. But I can say for now that we plan to launch with an initial discounted price until we launch the 1.0 version.
     
    Neviah, Mark_01 and hopeful like this.
  18. ZJP

    ZJP

    Joined:
    Jan 22, 2010
    Posts:
    2,644
  19. eastes

    eastes

    Joined:
    Sep 1, 2012
    Posts:
    48
    If we use this to instance 50 objects, each with a different material, will they still require 50 draw calls or will they some how become 1 draw call? Using your black magic.
     
  20. LouskRad

    LouskRad

    Joined:
    Feb 18, 2014
    Posts:
    123
    Hi,

    50 different materials would mean 50 draw calls. However, GPU Instancer supports material variations for instances similar to material property blocks. That is, you can have a single material on those objects and define how they differ through our API and they will render in a single draw call. An example scene for this is included in the asset package.
     
    CraftingPixelLab likes this.
  21. LouskRad

    LouskRad

    Joined:
    Feb 18, 2014
    Posts:
    123
    Last edited: May 19, 2018
    Neviah likes this.
  22. ikemen_blueD

    ikemen_blueD

    Joined:
    Jan 19, 2013
    Posts:
    286
    Code (CSharp):
    1. - Support for animation baking and skinned mesh renderers.
    2.  
    Amazing system, which I dream to have for so long time ago. Please make Skinned Mesh support in future :) How easy to make GPU Instancer to work with a procedural terrain system, like Map Magic or Voxel Terrain system? about GPU Frustum Culling feature, will it support moving prefabs, like AI?

    Thanks, amazing wow 0-0

    EDIT: I just purchased it, too good to not buy it right away.
     
    LouskRad and GurhanHazinedar like this.
  23. LouskRad

    LouskRad

    Joined:
    Feb 18, 2014
    Posts:
    123
    Thanks a lot!

    We are working on integration with various other assets and Map Magic will definitely be among the first.
    GPU frustum culling is within our core system, so once skinned mesh rendering is done, it will also support this feature. For now, you can move non-skinned meshes through our API and they are also GPU frustum culled.
     
  24. ikemen_blueD

    ikemen_blueD

    Joined:
    Jan 19, 2013
    Posts:
    286
    Demos are impressive, run quite fast on my old Macbook. Btw, I wonder how easy to make my custom toon shaders to be supported by GPU Instancer system? I can't wait for the Map Magic integration.
     
  25. atomicjoe

    atomicjoe

    Joined:
    Apr 10, 2013
    Posts:
    138
  26. GurhanHazinedar

    GurhanHazinedar

    Joined:
    Apr 24, 2017
    Posts:
    50
    Hi there, I am one of the developers working on GPU Instancer.

    Happy to hear it worked out well on your Macbook :)

    GPU Instancer has automatically configured custom shader support. When you add your prefabs on the Prefab Manager or your materials on the Detail Manager for grass textures, it creates a new version of your custom shader for using with GPU Instancer (unless it was already configured to support GPU Instancer). So everything should be done automatically without requiring you to change any shader code.
    When you try it out, please share with us how it worked out for your shaders.
     
  27. Lars-Steenhoff

    Lars-Steenhoff

    Joined:
    Aug 7, 2007
    Posts:
    1,641
    Wil this work on metal? as metal supports pragma 5 only without geometry shaders.

    Does this use geometry shaders?
     
    Last edited: May 19, 2018
  28. hippocoder

    hippocoder

    Digital Ape Moderator

    Joined:
    Apr 11, 2010
    Posts:
    23,294
    Re Apple: Compute only works on metal as far as I know (and geometry shaders are bad).
     
    antoripa likes this.
  29. GurhanHazinedar

    GurhanHazinedar

    Joined:
    Apr 24, 2017
    Posts:
    50
    Hello,
    It is perfectly understandable to get confused about why would one require the same feature Unity is already offering. The answer is, it is not the same :). Here are the reasons:

    1- GPU Instancer uses Indirect GPU Instancing, so there is only one draw call per mesh-material without a limited buffer size. Check out the benchmark results on Asteroid Scene Performance Test, note that Unity's GPU Instancing is enabled for asteroids. There is more explanation on the description about this subject:

    To provide the fastest possible performance, GPU Instancer utilizes Indirect GPU Instancing using Unity's DrawMeshInstancedIndirect method and Compute Shaders.

    GPU Instancing results in magnitudes of performance improvement over static batching and mesh combining. Also, other available solutions for GPU Instancing (including Unity's material option and the DrawMeshInstanced method) fail short on limited buffer sizes and therefore result in more draw calls and less performance. By using the indirect method GPU Instancer aims to provide the ultimate solution for this, and increases performance considerably while rendering the same mesh multiple times.

    2- It is possible to make runtime modifications with API calls without breaking the GPU Instancing. Methods are explained in the API Documentation. Which will improve over time according to user's needs.

    3- There are functionalities that are calculated on GPU with Compute Shaders that lowers CPU usage such as frustum culling, terrain detail generation, LOD support, etc.

    4- The source code is provided with the package. You can change the system according to your needs.

    There are other features that are mentioned in the feature list and there will be more in the upcoming releases.
    So to answer your question in short, in most cases it makes it faster especially when your project is slowing down because of CPU usage. It is not as easy as clicking a checkbox on your material, but it is close :). You need to add a component and then add your prefab on it and that is it.
     
  30. GurhanHazinedar

    GurhanHazinedar

    Joined:
    Apr 24, 2017
    Posts:
    50
    GPU Instancer does not use geometry shaders. It should work with Metal, since only requirement is Shader Model 5.0 support.
     
    ikemen_blueD and Lars-Steenhoff like this.
  31. atomicjoe

    atomicjoe

    Joined:
    Apr 10, 2013
    Posts:
    138
    That makes sense, thank you!
    I'm using custom surface shaders with multiple render targets and composing multiple buffers as a final image (it's a custom deferred rendering, NOT using any Unity 2018 programable render pipeline stuff)
    I'm concerned about shader compatibility.
    Could you tell me wich are the modifications needed to MANUALLY make my shaders work with your system? (I'm not sure the automatic conversion would work for my case)
     
  32. GurhanHazinedar

    GurhanHazinedar

    Joined:
    Apr 24, 2017
    Posts:
    50
    Your welcome. To add support manually, you need to include "GPUInstancerInclude.cginc" and setup procedural instancing in your shader. Below is an example how. [GPUInstancerPath] is the relative path to main folder named "GPUInstancer"

    Code (JavaScript):
    1. ...
    2. Pass {
    3.     ...
    4.     CGPROGRAM
    5.     #include "UnityCG.cginc"
    6.     #include "[GPUInstancerPath]/Resources/Shaders/Include/GPUInstancerInclude.cginc"
    7.     #pragma multi_compile_instancing
    8.     #pragma instancing_options procedural:setupGPUI
    9.     ...
    10.     ENDCG
    11. }
    12. ...
    For adding material property variations for instances, check out DefinePrototypeVariationBuffer and AddVariation methods in API Documentation. There is also a demo scene called ColorVariationsDemo which uses these methods.
     
    NeatWolf and atomicjoe like this.
  33. blackbird

    blackbird

    Joined:
    Aug 9, 2011
    Posts:
    509
    does GPU instancer work with skinned mesh+Ai i mean like a zombie hordes
     
  34. LouskRad

    LouskRad

    Joined:
    Feb 18, 2014
    Posts:
    123
    Hi, it is in our planned feature list, to be added in a future update, but currently skinned mesh support is not implemented
     
    blackbird likes this.
  35. ikemen_blueD

    ikemen_blueD

    Joined:
    Jan 19, 2013
    Posts:
    286
    Hi, @LouskRad , @Gurhanh

    This is me again. For now, I wait for Map Magic integration, Speed Tree, Tree Creator support to further learn about your system. So up to this stage, I just do very quick tests on my old PC: High Quality I got a stable 30 FPS for 2560 x 1080, which is pretty good, but would love to have a better frame rate if possible; a stable 50 FPS for Medium quality; and a stable 60 FPS for Low quality (https://i.imgur.com/TYHoUjM.jpg).

    The thing I love about your Frustum Culling is, even how fast Camera rotates around, there is no popping objects :)

    Some quick questions, I have not yet read your code, so I have no clue how the system internally works.

    1) From your "AddRemoveInstancesDemo", Add Instances, Remove Instances, is there an internal pool system in your system? if so, is it a multi-thread pool or just a normal pool system?

    2) From your "PrefabInstancingDemo", you have an internal way to disable or enable Rigidbodies, based on your distance? or I'm not sure about what is "spatial partitioning"? Could I use that data, to disable, enable any component scripts of a prefab?

    Thanks.
     
  36. LouskRad

    LouskRad

    Joined:
    Feb 18, 2014
    Posts:
    123
    Hi there :)

    First, I should explain a little about the DetailInstancingDemo scene that you tested. This is an extreme case scenario test scene, and it is intended to showcase extreme numbers. While you are on a 500x500 terrain, there are over half a million grass instances. Because the terrain is small, most of the time your detail viewing distance covers the whole terrain (max detail distance is 500-250-150 for High-Mid-Low Quality). So every frame there are calculations being made on half a million instances and many of these are being rendered. Also the vegetation here are not all simple grass quads; there are some plant meshes having over 3000 tris. When you consider these conditions, 30 FPS for 2560 x 1080 is actually a quite good performance on a 960. However, we want to make it better as well :) We will continue improving the performance in the future updates. For example one of our planned features is occlusion culling. We are also working on an imposter system for big meshes.

    Happy to hear that :)

    This scene is intended to show how to do runtime add / remove operations on prefab instances. There is no pooling system, the scene shows how to add extra instances to the ones you started with at runtime and how to remove them. Here is how you do it: In the Inspector window of the Prefab Manager, once you enable the "Enable Runtime Modifications" and "Add/Remove Instances At Runtime" options on the prototype, you can then set up the "Extra Buffer Size". This determines how many more instances you can add without reinitializing the buffers. Once all these are set, you can use GPUInstancerAPI.AddPrefabInstance and GPUInstancerAPI.RemovePrefabInstance API methods to add and remove any instances at runtime. See example code in "AddRemoveInstances.cs".

    To set up Rigidbody support, first you need to "Enable Runtime Modifications" on your prototype. Then you add a collider on a GameObject and enable "Is Trigger", then you can add the GPUInstancerModificationCollider script and set the Prefab Manager on it. This will add Rigidbodies on the objects that enter inside this collider, and remove the Rigidbodies when they are out of the collider (after they enter sleep mode). You can check the DeInstancingSphere under the SpaceShip GameObject in the "PrefabInstancingDemo" scene.

    Spatial partitioning is an internal system that we use for detail rendering performance. Our Detail Managers use spatial partitioning for loading and unloading detail instances from GPU memory according to the camera position.

    P.S. We are currently preparing various tutorial videos that explain these features and demo scenes in depth. I will post here once we upload these videos.
     
    ikemen_blueD and ftejada like this.
  37. iichiversii

    iichiversii

    Joined:
    Nov 23, 2011
    Posts:
    42
    Is there a VR demo buikd thst we can test?
     
  38. GurhanHazinedar

    GurhanHazinedar

    Joined:
    Apr 24, 2017
    Posts:
    50
    Hi,
    We do not have any demo builds yet. We will share as soon as they are available.
     
  39. snacktime

    snacktime

    Joined:
    Apr 15, 2013
    Posts:
    1,736
    Will you be adding lower level api's for this? Something closer to say what the instanced direct api's look like. Just the data required and bypass your high level api entirely.

    Like this looks very appealing, but we already have a lot of transform manipulation in jobs and have existing complex partitioned object pooling, etc..
     
  40. Lars-Steenhoff

    Lars-Steenhoff

    Joined:
    Aug 7, 2007
    Posts:
    1,641
    Will be nice if some playmaker actions can be made for this, for adding and removing instances
     
  41. GurhanHazinedar

    GurhanHazinedar

    Joined:
    Apr 24, 2017
    Posts:
    50
    Hi,
    We will add lower level APIs, like rendering objects with given transform data list. However sending transform updates every frame in large scales to the GPU is not ideal.
    We are also planning to provide an API to add custom Compute Shaders, so that you can also make simple transform updates in GPU instead of CPU.
     
  42. GurhanHazinedar

    GurhanHazinedar

    Joined:
    Apr 24, 2017
    Posts:
    50
    Yes, I agree :) Will be done in a future update.
     
    Lars-Steenhoff likes this.
  43. LouskRad

    LouskRad

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

    We have just uploaded a series of tutorials showing the basics of using GPU Instancer.

    You can watch them on YouTube o_O Tutorial Videos Playlist
     
  44. lolclol

    lolclol

    Joined:
    Jan 24, 2013
    Posts:
    135
    So with post processing added to the camera can you add a video of how your plugin delivers frames per second?
     
  45. LouskRad

    LouskRad

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

    I have just added another video showcasing GPU Instancer performance with post processing. You can check it out at this link.
     
    ftejada, lolclol and Neviah like this.
  46. lolclol

    lolclol

    Joined:
    Jan 24, 2013
    Posts:
    135
    Hello, when you first release this video i already took a look at it instantly. :) Thanks for filling my request.
     
    LouskRad likes this.
  47. Lars-Steenhoff

    Lars-Steenhoff

    Joined:
    Aug 7, 2007
    Posts:
    1,641
    Will this work with touch bending? for example a grass that bends when hit by the players collider?
     
  48. LouskRad

    LouskRad

    Joined:
    Feb 18, 2014
    Posts:
    123
    Hi,

    Our foliage shader currently doesn't have that feature, but we will add support for this in a future update.

    However, since you can use custom foliage shaders with GPU Instancer, you can use a touch-bending shader if you have one as well (assuming that shader works with world positions for its player position calculations).
     
    Last edited: May 31, 2018
    Lars-Steenhoff likes this.
  49. Lars-Steenhoff

    Lars-Steenhoff

    Joined:
    Aug 7, 2007
    Posts:
    1,641
    Nice to hear !

    Another thing Im planning to use:
    fading out objects when they get very close to the camera. ( shader alpha )
    Is that possible with instancing?
     
  50. LouskRad

    LouskRad

    Joined:
    Feb 18, 2014
    Posts:
    123
    Sure thing. Whatever custom surface shader you use on your prefabs will be auto-converted to work with GPU Instancer. So with your shader, the way your objects fade out with instancing would look exactly the same as without.
     
    Lars-Steenhoff likes this.