Search Unity

Amplify Impostors - Next Generation Billboards

Discussion in 'Assets and Asset Store' started by Amplify_Ricardo, Jul 10, 2018.

  1. superkratos

    superkratos

    Joined:
    Sep 4, 2017
    Posts:
    112
    Some dark spots on the result, other parts look fine. But if I remove diffusion map, the tree lost some volume and light.
     
  2. superkratos

    superkratos

    Joined:
    Sep 4, 2017
    Posts:
    112
    If I adjust the diffusion map in PS, I don't have a clue how to do it, a little adjust can make a big differenceo_O
     
  3. superkratos

    superkratos

    Joined:
    Sep 4, 2017
    Posts:
    112
    I'm using The Vegetation Engine Foliage Shaders before conversion, by the way.
     
  4. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389
    Hello there!

    What do you mean by "auto-generated diffusion"?

    There's actually a known Amplify Impostors issue that we're still in the process of working out that can cause baked differences due to incorrectly baked Custom Diffusion data.

    Apologies for the inconvenience if that's what you're experiencing, we hope to find a workaround for this in the future.


    The impostors map?


    HDRP project conversion?
     
  5. superkratos

    superkratos

    Joined:
    Sep 4, 2017
    Posts:
    112
    Yes, I'm using Impostor in HDRP environment, and I'm referring to the baked "Diffusion Features" map by Impostor which in my opinion is influencing the subsurface effect? So I may just need some information about this map for what it does which each channel so that I can adjust it in other plugin or softwares..
     
  6. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389
    To be more specific, what I'm saying is that there's an issue on our side, the HDRP Diffusion data is not properly baked, hence the visual differences. In this case, it's best to wait for an official fix.
     
  7. superkratos

    superkratos

    Joined:
    Sep 4, 2017
    Posts:
    112
    Waiting for your good news~
     
    Amplify_Ricardo likes this.
  8. Ali-Nagori

    Ali-Nagori

    Joined:
    Apr 9, 2010
    Posts:
    151
    i think Texture array can be a very optimal method , while it can gives far more better quality than 8K texture if you got array of 2k * 256 . the 8k Atalas can take up to 80 MB for 512x512 icon , an array of [2k size * 256 images] the file size of optimized array can go up to 250 mb.

    IMO using texture array can provide a better quality with almost identical performance.


    Edit :

    i think instead of calculating the Icon Rect and it's postition , the shader gives away only the index of the array.
    the changes to the shader algorithm will only be placed at indexing phase
     
    Last edited: Jan 17, 2021
  9. Wawwaa

    Wawwaa

    Joined:
    Sep 30, 2017
    Posts:
    165
    Hi, after upgrading to Unity 2020.2.1 on Mac OctahedronImpostorHDRP shader throws these errors:

    Shader error in 'Hidden/Amplify Impostors/Octahedron Impostor HDRP': 'LightLoop': cannot convert output parameter from 'struct LightLoopOutput' to 'float3' at line 2124 (on metal)

    Shader error in 'GPUInstancer/Hidden/Amplify Impostors/Octahedron Impostor HDRP': 'LightLoop': cannot convert output parameter from 'struct LightLoopOutput' to 'float3' at line 2146 (on metal)

    Also on line 384 on the same shader GetDecalSurfaceData is complained for not having 2 parameters on metal.

    Any idea how to fix?
     
  10. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389
    We appreciate your feedback, thanks for elaborating.

    Apologies for the inconvenience, please hold until we launch our HDRP 10.x update for impostors; it's coming soon, we're working on it as we speak.
     
  11. sandro-varoli

    sandro-varoli

    Joined:
    Nov 26, 2018
    Posts:
    3
    hi,
    I'm trying using impostor for my tree using URP. I only get impostor completely white...
    white impostor.PNG
    the _albedoalfa also is white
    white impostor albedo.PNG
    while the original tree is
    white impostor original.PNG

    I tried different configurations but the result is always the same
    any ideas?

    thanks Sandro
     
  12. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389
  13. sandro-varoli

    sandro-varoli

    Joined:
    Nov 26, 2018
    Posts:
    3
    actually I tried with several trees and the result is the same.
    The trees I tested has different Shaders: some tree come from my old projects where I used Tree Creator with standard render pipeline.
    Changing to URP I bought Lux URP essential that has tree creator shaders porting for URP.
    Then I purchased impostor in order to create some decent LODs and billboards for these trees.
    Other trees that I tested (but really I don't need impostor for them since they have good enough LODs) are made using MTree with its own URP shaders.

    Lux shaders : Tree Creator Leaves Optimized render queue 2450 + Tree Creator Bark Optimized render queue 2000
    MTree shaders: Leafs URP render queue 2000 + Bark URP render queue 2000

    the actual setup of impostor I used is the default for URP then I also tried to create my own setup changing the run time shader but nothing changed
    The backing shader is BakingURP with legacy pipeline
    But I have also tried other pipelines

    With the same configuration of impostor object with URP lit shader of Unity work perfectly.

    Do you need any other info?

    Thanks,
    Sandro
     
  14. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389
    Allow me to elaborate:
    -The object that you intend to bake must use a compatible shader such as the Unity's Default URP Lit shader. We don't support Lux or Mtree shaders out of the box, hence my mention of the link in my previous message. http://wiki.amplify.pt/index.php?ti...ify_Impostors/Manual#Technical_Considerations

    "the actual setup of impostor I used is the default for URP then I also tried to create my own setup changing the run time shader but nothing changed
    The backing shader is BakingURP with legacy pipeline
    But I have also tried other pipelines"

    What exactly are you referring to here?


    Try this, pick a single renderer for your project, create a new Unity object like a cube or a sphere; if that bakes correctly, we can take it from there; otherwise there's something not quite right in your project.
     
  15. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389
    On a side note, our HDRP 10.x update is now available via the Asset Store.
     
  16. Binary42

    Binary42

    Joined:
    Aug 15, 2013
    Posts:
    207
    Hi, i'd like to suggest two improvements:
    - expose the specular intensity in the shader/material to enable artists to match the specularity accurate to the previous LOD level.
    - include an option to create and render shadows only, so that reduced mesh LODs can benefit from the draw call savings.
     
  17. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389
    Hello,

    Thank you for your suggestions, I'll pass it on to the devs.

    An impostor can be set to "Shadows Only" in the Mesh Renderer component, just as any other model, and you could also attempt to use a simpler Bake Preset or Custom Bake/Runtime shader.(advanced topic, requires some shader dev knowladge)

    upload_2021-1-25_10-28-27.png
     
    Binary42 likes this.
  18. Makit3D

    Makit3D

    Joined:
    Oct 10, 2015
    Posts:
    4
    Hello, are there any updates to the development of animation within Imposters or a dev diary that covers Amplify asset progress? Not that I am trying to rush or demand anything but this is one of those features I'm very excited for and could very much use in my project. :)
     
  19. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389
    Hey there!

    We've had some good and some bad developments on that; it's at a sort of standstill at the moment, we're rethinking our approach there. To be more specific, our first attempts at this somewhat worked but not without technical problems which make it less than ideal for commercial use.
     
  20. Duende

    Duende

    Joined:
    Oct 11, 2014
    Posts:
    200
    Hello! Is it possible to bake the impostor in runtime or is that feature not added yet?
     
  21. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389
    Hello, not yet.
     
    Duende likes this.
  22. Duende

    Duende

    Joined:
    Oct 11, 2014
    Posts:
    200
    Thanks. :) And is there an approximate date of when that feature will be? :rolleyes:
     
  23. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389
    Afraid not, we're still experimenting.
     
    Duende likes this.
  24. Duende

    Duende

    Joined:
    Oct 11, 2014
    Posts:
    200
    Ok, I hope you will find a way to do it sooner rather than later.

    Keep it up, you guys are doing a great job. :)
     
    Amplify_Ricardo likes this.
  25. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389

    Thanks, we appreciate it!

    Hope so too!
     
    Duende likes this.
  26. MinoanStudios

    MinoanStudios

    Joined:
    Dec 10, 2017
    Posts:
    11
    Hi, I have a couple of gbs worth of impostor textures in my project now and want to optimize their import settings a bit, if possible. Any best practices or recommendations on this regarding mip maps or compression etc? Anything that could potentially break them? Thanks!
     
  27. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389
    Hey there!

    Compress them as you would regular textures, it's encouraged that you do so.

    We are not aware of any known issues related to this.
     
  28. TheVirtualMunk

    TheVirtualMunk

    Joined:
    Sep 6, 2019
    Posts:
    150
    Hi Ricard, Hope you can help me;

    I have used amplify imposters in other projects with success, but am currently having trouble identifying performance issues using imposters - that is, my application runs better WITHOUT amplify imposters.... And I'm currently testing with just 5 unique imposters.

    Platform: Android OpenGL 3
    Unity: 2019.6.6f
    Testing on device: Samsung Galaxy S10e.
    Standard (legacy) Render Pipeline

    Getting less than 30 frames with just ~45 imposter instances of the 5 unique types.

    I turned off LOD animation fading, in case it was a drawcall issue.

    Profiler shows >80% waitForSignal, so its rendering that's the issue.

    Drawcalls (frame grabbed on device) is around 40, with setpass at around 30.
    I'm only around 20-35k triangles, depending on how far I am from the objects I'm testing with.

    I do have realtime shadows on, but everything works fine with over 1 million triangles (when I spawn multiple of the same game objects and aren't using imposters).

    It seems like when everything is "imposterised" the performance is fine, and I can push the instance count to >5x what i can when just a single of them are lod0 - yet when no imposters are shown, and I'm so close that all objects in view are lod0, performance is good again. So its the inbetween lod0 and lod1 (imposters) that's causing the issue.

    Can you point me in a direction of debugging? Is it simply the imposter (HemiOctahedron) shader that is too heavy when combined with realtime shadows for mobile platforms?
    Again, only using 5 imposters with 2k textures.

    EDIT: Tried without Realtime shadows - no gains in performance.
     
    Last edited: Feb 2, 2021
  29. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389

    Hey, happy to help.

    -What do you mean by "It seems like when everything is "imposterised" the performance is fine"?
    -What's the shader type used on the original assets?
    -Please show us a screenshot of how you're using it.

    If the original asset is less complex than the impostor, there would be a noticeable hit on performance, especially on mobile devices. In any case, based on your description, it could be something else.
     
  30. TheVirtualMunk

    TheVirtualMunk

    Joined:
    Sep 6, 2019
    Posts:
    150
    - When the object is far away and it's only rendering the imposters (lod1).

    - I used the SpeedTree8 shader.

    This is what I'm testing with:
    grass.png

    Wireframe View:
    grass wireframe.png

    End Goal to be completely impostered; grass end goal.png

    The way I'm doing it is I'm making imposters for individual plants/flowers/grass bundle.

    The original assets are definitely more complex I would say;
    The heaviest grass-type, used 23 times, is 3k verts, while the least heavy used 20 times is 630 verts.

    I can have 3 instances of the end product (shown above) with no imposters (0.5 million verts in 96 batches) and it runs above 30 fps on the Samsung S10e, but if I try running the test with just the grass (no flowers and other foliage) using imposters I get the performance hiccups, and can barely run one instance.
     
  31. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389

    Thank you for the additional details, we appreciate it.

    That's odd, if it runs well with just the impostors I'm not really sure if the problem is entirely on our end. Grass is not a great candidate for impostors but I'm not sure what could be happening there.

    Is the vegetation static batched?

    I would recommend checking your profiler and frame debugger while transitioning from LOD 1 to 0 and see what's happening.

    We'd be happy to test a project sample(simplified project, just that scene and assets); feel to forward it to support@amplify.pt.
     
  32. TheVirtualMunk

    TheVirtualMunk

    Joined:
    Sep 6, 2019
    Posts:
    150
    As fate had it, my s10e had an update to Android 11 overnight, which forced me to update unity (to 2020.2) to get AR Foundation working again with the newest gradle version. Somewhere along that upgrade the imposters started "performing" normally again. Sooooo, like anything Unity related, praying and black magic always solves it :D
     
    Amplify_Ricardo likes this.
  33. kloogens

    kloogens

    Joined:
    Jul 1, 2015
    Posts:
    116
    I have Amplify Impostors included in my project but as of now I am not even using it yet.

    When I build and run my project I get the following compiler errors.

    When I open Visual Studio and compile the project it compiles just fine with no errors.

    The Console after build and run says the following.

    Assets\AmplifyImpostors\Plugins\Scripts\AmplifyImpostor.cs(1933,12): error CS0103: The name 'm_HDversion' does not exist in the current context

    Assets\AmplifyImpostors\Plugins\Scripts\AmplifyImpostor.cs(1933,27): error CS0103: The name 'AISRPVersions' does not exist in the current context

    each one of those errors prints twice.

    Again, if I go into Visual studio the project compiles without any errors.
     
  34. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389

    Greetings, hope we can help.

    -What AI version are you using?(Windows > Amplify Impostors > About)
    -Unity version
    -SRP and version if any

    Anything else in the console?
     
  35. kloogens

    kloogens

    Joined:
    Jul 1, 2015
    Posts:
    116

    Oh yeah Sorry.

    Amplify Impostors v.9.7r6
    Windows 10
    Unity 2020.1.5f1
    HDRP 8.2


    The only other error is

    UnityEditor.BuildPlayerWindow+BuildMethodException: 5 errors
    at UnityEditor.BuildPlayerWindow+DefaultBuildMethods.BuildPlayer (UnityEditor.BuildPlayerOptions options) [0x0027c] in <6d0b5326886a4f0e8ed4ea356b37330b>:0
    at UnityEditor.BuildPlayerWindow.CallBuildMethods (System.Boolean askForBuildLocation, UnityEditor.BuildOptions defaultBuildOptions) [0x00080] in <6d0b5326886a4f0e8ed4ea356b37330b>:0
    UnityEditor.BuildPlayerWindow:BuildPlayerAndRun()
     
  36. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389
    Thanks for the details! And the target plaform?

    Please try updating your AI version, we recently corrected a build issue, could be related.

    http://amplify.pt/download
     
  37. kloogens

    kloogens

    Joined:
    Jul 1, 2015
    Posts:
    116
    Standalone Window is my target platform.

    I'll get the latest version you mentioned and try again and let you know either way.

    Thanks for the help.
     
  38. kloogens

    kloogens

    Joined:
    Jul 1, 2015
    Posts:
    116
    I can't download it from your website. I enter my order number from my account and it doesn't work.

    I purchased the Shader and Impostor bundle if that helps.

    Nevermind. I got it. Since it was a bundle, Unity gave me two invoices I found the correct one.
    :-0
     
    Last edited: Feb 5, 2021
  39. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389
    Cool, good to hear it!
     
  40. kloogens

    kloogens

    Joined:
    Jul 1, 2015
    Posts:
    116
    Okay, good news and bad news.

    The bad news: Still doesn't compile with Build and Run.

    The Good News: None of the errors appear to be related to AI.

    So the latest version seemed to work. Thanks for the help.

    Can't wait to use this.
     
  41. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389
    Let us know if it persists, we'd be happy to test a small project sample if the issue is present with AI.
     
  42. mbach

    mbach

    Joined:
    Oct 25, 2018
    Posts:
    7
    Hi there. First of all, thank you for a great asset! It gives our trees volume when seen from above, compared to the traditional cross mesh billboard.

    I am having some trouble with SSS on our trees when baking after upgrading to HDRP 10 and I am hoping you can help.

    Here is a screenshot of the difference between now (using Unity 2020.2.3, HDRP 10.2) and the last time I baked an impostor (which was Unity 2020.1.x, HDRP 8.x I believe):

    Amplify Impostors problem.png
    The tree to the right (using the older version) looks fine, whereas the one on the left, using the newer version looks wrong (leaves are much too green). I have noticed that the Diffusion & Features texture is missing from the new version, which probably has something to do with it.

    Amplify Impostors 0.9.7r7
    Unity 2020.2.3f1
    HDRP 10.2.2.
    Tree shaders are TheVegetationEngine 2.1.0 (converted from NatureManufacture).

    Hope you can help!

    Best regards,
    Michael
     
  43. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389
    Greetings,

    Our apologies for the inconvenience, as mentioned on our product page, this is a known issue currently in progress; unfortunately, we still don't have a fix for this problem.

    The only alternative is to not bake SSS materials but instead use the standard HDRP material.

    Side note; be sure to update AI to the latest version via our Website.
     
  44. mbach

    mbach

    Joined:
    Oct 25, 2018
    Posts:
    7
    Oh, sorry. I missed that one. Good to know you are working on it!
     
  45. DIFTOW

    DIFTOW

    Joined:
    Aug 22, 2012
    Posts:
    53
    Here is an example of an imposter system for animated characters, back in 2013.


    You think it would be possible to do the same in either Unity or Unreal?
     
  46. the_mr_matt

    the_mr_matt

    Joined:
    Jul 21, 2015
    Posts:
    124
    Hello!

    This is an issue I've had several times in the past. Every time I update to a new version of Unity and a new version of HDRP, and therefore a new version of Amplify Impostors, all my impostors break and I have to redo them. Is there a reason for this and hopefully a way to fix it?
     
  47. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389
    There are many techniques that work with animated sprites, however this is not the same type of impostor our package provides. If you're looking for a simple solution, I recommend looking into something like this: https://www.sidefx.com/tutorials/game-tools-imposter-textures/


    A rebake may be necessary, which version where you using and which version did you upgrade to?
     
  48. kloogens

    kloogens

    Joined:
    Jul 1, 2015
    Posts:
    116
    Wow, this is a really cool asset.

    I've been reading through some issues and I think you've addressed this (probably 100x's) already so forgive the redundancy.

    However, I did notice that my imposter colors are substaintially lighter than the original model. I am assuming it is a diffuse color/HDRP issue.

    Other than that, the imposters look really good at a distance in my project. I'm using it on rather large objects and it is still generating satisfactory results, awesome. It's super easy to use, super awesome. It plays well with other assets, super mega awesome of awesomeness. Worth the money.

    HDRP project
    Unity 2020.1.5f
    AI .9.7r7
    The original object used the HDRP/Lit shader
     
    Last edited: Mar 3, 2021
  49. jmattarock_unity

    jmattarock_unity

    Joined:
    Mar 10, 2018
    Posts:
    25
    Hi,

    When "Dynamic Impostors" coming?
     
  50. Amplify_Ricardo

    Amplify_Ricardo

    Joined:
    Jul 19, 2013
    Posts:
    2,389
    Thanks, hope it serves you well!

    Can you show us your original Lit Material? (screenshot of the inspector)
    And a comparison of model and impostor.

    Hello, no ETA at the moment.