Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

Billboard extension, supporting dynamic and pre-baked

Discussion in 'Assets and Asset Store' started by Venryx, Jan 18, 2017.

?

How much would you pay for this extension on the Asset Store?

  1. Not interested, even if free

    0 vote(s)
    0.0%
  2. $0 (ie. only if free)

    25.0%
  3. $5

    25.0%
  4. $10

    33.3%
  5. $25

    16.7%
  6. $50

    0 vote(s)
    0.0%
  7. $100

    0 vote(s)
    0.0%
  1. Venryx

    Venryx

    Joined:
    Sep 25, 2012
    Posts:
    444
    I've developed a dynamic (or save-to-prefab) billboard system that works for arbitrary objects (instead of just trees, like for Unity's speed-trees, or requiring manual billboard baking).

    It works well, and has good visual results, and uses an instanced shader so thousands of trees can use just a few draw calls. (5 draw calls for 2000 trees in the test I just did)

    Here are some screenshots:





    How much demand would there be for this extension?

    It works well in my project, but I don't want to spend time packaging it up nicely unless there's a significant number of people who'd be willing to purchase it--hence the poll above. (and please be honest, as if the results are too low than it's just not worth the time to package and release it)

    Thanks for your time.
     
    Tiny-Tree likes this.
  2. Venryx

    Venryx

    Joined:
    Sep 25, 2012
    Posts:
    444
    By the way, note that currently the billboard atlases are saved-to-prefab (if non-dynamic) using DX5 compression.

    I'm also planning to have it support DX5 Crunched, as this makes the file-size much, much smaller (~250kb for a 2048x2048 billboard instead of ~11000kb (come to think of it, why is it even that big for just 2048?)), but haven't implemented this yet as it must be done in editor code, and isn't as useful in my project. (since in it, a focus is on making the game usable for user-created/dynamic models as well, so it would only benefit the built-in models)

    Is this important for the initial release, for your use case? Or is it fine to add post-release?
     
  3. Venryx

    Venryx

    Joined:
    Sep 25, 2012
    Posts:
    444
    Can I get a few more entries for the poll? It's so far been promising with 5 of ~35 thread viewers saying they'd be willing to pay for it, but a few more would help me gauge how representative that is of the whole.
     
  4. Tiny-Tree

    Tiny-Tree

    Joined:
    Dec 26, 2012
    Posts:
    1,314
    can it works on any meshes?
     
  5. Venryx

    Venryx

    Joined:
    Sep 25, 2012
    Posts:
    444
    As far as I know, yes (it works for all the objects I've tried). Some shaders do have an issue with transparency (eg the leaves of some do not show up), however I'm sure this is fixable as again it's just a camera performing renders so should be able to render anything the normal cameras can. (I think it might have to do with the way I set up the objects for rendering, or the use of the SetReplacementShader method)

    So these are the steps:
    1) It creates a camera object and basic lighting. (currently I have the lighting match that of my main scene)
    2) Renders the object at various angles (on a separate layer).
    3) Stores the rendered images in an atlas.
    4) Creates a quad with the atlas texture and a special billboard shader applied. (which samples the correct render image from the atlas and rotates the quad to face the user)
    5) Uses Unity's LODGroup component to control when the normal renderers are swapped with that billboard renderer.
     
    Tiny-Tree likes this.