Search Unity

[Released] Vertex Tools Pro – Heightbased PBR Material Blending, Flowmapping and Mesh Deform

Discussion in 'Assets and Asset Store' started by PitHeimes, Feb 12, 2016.

  1. Danirey

    Danirey

    Joined:
    Apr 3, 2013
    Posts:
    548
    Great! Thanks! Also, are there any chance to use different brushes to paint?
     
  2. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,360
    Hi,

    Is this effect baking the painted height in vertex color to be used by the shader or deforms the polygons of the mesh directly ?

    Thanks
     
  3. PitHeimes

    PitHeimes

    Joined:
    Oct 18, 2015
    Posts:
    322
    It is deforming the mesh so that collider and so on still work :)
     
  4. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,360
    Thanks
     
  5. Teila

    Teila

    Joined:
    Jan 13, 2013
    Posts:
    6,932
    That silly old skin that everyone wants. lol
     
  6. JSZeppelin

    JSZeppelin

    Joined:
    Feb 19, 2016
    Posts:
    2
    Hi~~
    Thanks for the great asset. I love all the features!!
    Well, I'd like to ask you a couple of beginner's questions.

    1. I want to know how to compose 'combined map'. I just guess R for metallic, G for height, and B for smoothness. Is that correct?

    2. Can I use VTP for mobile project? I'm considering to suggest my company buying this asset and the company's project is for mobile game which is supposed to release in next year with high-end quality.

    If here is not an appropriate place to ask questions, please let me know where I can get help.

    Best Regards
     
    Last edited: Mar 11, 2016
  7. PitHeimes

    PitHeimes

    Joined:
    Oct 18, 2015
    Posts:
    322
    R: Heightmap B: Occlusion Map G: Smoothness A: Emission
    Metallic goes to Alpha of Albedo.

    But there is a Tool within VTP where you can just drag the single texture into and let the Combined Maps be generated.


    I have not tested all features in depth, but all shader Target Shader Model 3. So basically newer mobiles will probably work decent. At least with out Parallax. Will do some deeper tests as soon as I got time :)
     
    JSZeppelin likes this.
  8. AllanMSmith

    AllanMSmith

    Joined:
    Oct 2, 2012
    Posts:
    180
    Hey guys, this seem like an AWESOME tool! Congratulations!

    Before I give it a try though, how do you do the height blending? I mean, are you using normalmaps for that, or just transparency in the image? Also a more general question... how well do your shaders perform on mobile? I got a pretty... cpu/gpu intensive game and I am using a very similar technique for painting the ground textures with different textures and 1 draw call, however its an ultra simple shader to make sure its as fast as possible.

    Anyway, thanks for the attention!
     
  9. PitHeimes

    PitHeimes

    Joined:
    Oct 18, 2015
    Posts:
    322
    Heightmaps are used to calculate the Heighbased Blending. Those Heightmaps are also used for the parallax.

    Cannot say much on mobile performance in a real production environment. But we will update the package with different variant to make sure performance is as good as possible :)
     
  10. jbooth

    jbooth

    Joined:
    Jan 6, 2014
    Posts:
    5,461
    Hi, I'm the author of the free tool mentioned earlier. I wandered into this thread and was surprised to find the video posted there. Anyway, a few thoughts from looking over this tool/thread:

    - You don't actually need to have a collider to do raycasts against a mesh. Unity actually has an API for this, which isn't exposed, but can easily be accessed anyway. You can look in my code to see how- and Matt Rix was the one who discovered it (by decompiling unity). In general, it makes the management of things much easier to not have to add and restore colliders on the meshes.
    - For reference, my shader provides a 1-5 layer height map blend with 1 user specified channel of painted flow mapping, with everything not in use being compiled out. I also visualize flow direction in the editor by drawing arrows using SDF's defined mathematically in the shader, which is a nice trick if you add direction painting support. I have the equivalent of the "drift" option too, which I find amusing because I suspect we both invented it individually when faced with how to integrate the flow component with height.
    - As of Unity 5.3, you can actually treat all 4 UV channels as a float2, float3, or float4 format, and the vertex format will adapt accordingly. This wasn't really advertised or documented, but allows you to pack a ton more data per vertex than previously, as you can use any UV as a 32bpp color if you wish, or any full floating point representation (positions, etc).
    - As someone who writes a lot of shaders and uses tools like this (thats why I wrote mine), being able to paint into/preview each channel individually is very useful (ie: Just paint into color.g and view as greyscale, or into uv.x, etc). Being able to quickly stuff other data in there (random values, pivot locations, etc) is also really useful. Having those previews be available regardless of what shader I'm using (one from the package, or some custom one) is also really nice.
    - The integration of transparency into the flow layers is a nice feature, also, the example art shows off the asset well.
    - In Unity 5.4, it will be possible to use texture arrays to allow splat mapping from hundreds of textures at once by storing the index into the array in the vertex instead of a blend amount per texture (or multiple indexes and weights if you'd prefer). If your shooting for the high end, this would be a cutting edge feature that would move some units. Given your use of POM, I'm assuming your going high end.
    - I don't understand how you can claim that your resulting meshes batch. If you are setting the actual vertex positions/etc on each painted instance, you are creating an entirely new mesh on the CPU and GPU (well, unless you use sharedMesh, but then each instance always looks the same). If you use additional vertex streams, then that data is swapped in for the original mesh as it uploads to the GPU, effectively generating a new mesh as well, but saving you the full CPU representation and some upload bandwidth. In either case, you're generating 1 mesh per uniquely painted instance, which means no static batching is possible, unless you combine and bake those meshes down into a new asset or single mesh (my asset supports doing this on save, for instance).
     
    montyfi, ArthurT and DMeville like this.
  11. JSZeppelin

    JSZeppelin

    Joined:
    Feb 19, 2016
    Posts:
    2
    Hi~

    Thanks for your kind answer. I have one more quick question.
    When I generated combined texture, I left the emission slot blank because the material I was working with doesn't have emission map. I wonder if it could be an issue. The packer showed warning message for missing texture.

    Best Regards
     
  12. PitHeimes

    PitHeimes

    Joined:
    Oct 18, 2015
    Posts:
    322
    That should not cause any problem. The emission is then just filled fully white, so you can still adjust emission in the shader settings.

    Nevertheless we got a report about some problems that sometimes the Texture Assistant gives an error and does not generate the combined map. Simply hitting generate again seems to be a workaround until the next Update.
     
    JSZeppelin likes this.
  13. PitHeimes

    PitHeimes

    Joined:
    Oct 18, 2015
    Posts:
    322
    That's great to know. Can remove that restore stuff then. Will check that out. Thanks :)
    Yup, we were quite suprised by that, too :D. Just left that for now to maintain 5.2.0 support.

    Thanks a lot :)

    We are definitly evaluating that. We are though not only after high-end. Try to support both with variants at best. More on that lateron.

    Yeah, that's a late night F*** up. Was intended to be the static lightmaps, since UV2 and UV3 are not touched in any case. That will be corrected asap.
     
  14. PitHeimes

    PitHeimes

    Joined:
    Oct 18, 2015
    Posts:
    322
    So back to development.

    Contents of the next update is finally fixed:
    - The last update did not fixed a bug, which it should have fixed. So gonna fix that... again.
    - Painted meshes will be exportable as a complete mesh. So basically, that's when static batching will work of course.

    And last, but definitly not least, Distingo support :) So yeah, the VTP Parallax and Heightbased Blending algorithm and PBS solution on terrains. :) Finally.

     
    S4G4N and montyfi like this.
  15. PitHeimes

    PitHeimes

    Joined:
    Oct 18, 2015
    Posts:
    322
    And don't forget:
    If you already are a customer feel free to contact us for Beta Access :)
     
  16. PitHeimes

    PitHeimes

    Joined:
    Oct 18, 2015
    Posts:
    322
    Hey guys,

    again some update about the Distingo and VTP collaboration. We are quite happy about the progress so far, UI is integrated in Distingo and the Heighbased Blending and PBS is fully working. Just some more work left to do on the Parallax. Sometimes blending is a bit off at the moment, but we are confident to have that fixed until the release. Thanks of course to Adam for his genius Gaia Asset. Support for Gaia will of course be also integrated :)

    Lastly, two screenshots for comparison :) Feedback is - as always - highly appreciated.



     
    S4G4N likes this.
  17. PitHeimes

    PitHeimes

    Joined:
    Oct 18, 2015
    Posts:
    322
    Another usecase of Vertex Tools Pro. Quickly but greatly enhance the visual integrity of props in your environment. :)

    Without Vertex Tools Pro


    With Vertex Tools Pro
     
  18. dogmachris

    dogmachris

    Joined:
    Sep 15, 2014
    Posts:
    1,375
    This looks very promising - Do you have any examples, how it looks when used in interior environments?
     
  19. gurayg

    gurayg

    Joined:
    Nov 28, 2013
    Posts:
    269
    Hello,
    I was wondering if few things are possible with Vertex Tools Pro.

    I can bake some info to my Vertex Colors quickly with Blender.
    By info I mean slope,height,crease.
    I can bring them to Unity with Blender's fbx exporter (supports RGB).
    -I was wondering, if I can use my existing Vcolors as a starting point and further adjust those using Vertex Tools?
    Like Existing R channel goes to Vertex Tools G channel? or does VTP already finds and uses those?

    One other thing is; Since you already have the ability to bake flow data from texture, would it be possible to use that feature to bake any texture to any Vertex Color channel? _MainTex to VColor RGB or AO to VCol A.
    This also brings another question:I couldn't see a shader that shows Vertex Colors at runtime (you obviously have some that run in editor) Will you be adding any shaders that show Vertex Color RBA at runtime?

    Thanks for your time.
     
  20. PitHeimes

    PitHeimes

    Joined:
    Oct 18, 2015
    Posts:
    322
    No interior environments so far. But will probably follow any time soon. Attached some streetscene screenshot comparison nevertheless :)

    Yes you can. VColors that are already baked into the mesh, are not destroyed by VTP but - as you said - used as a starting point.

    Sadly, no :( We bake flow data from texture to UV4 Channel, not to VColors. This way we ensure you can use both, flow and full Heightbased Blending.

    Currently we have one shader, to do all the settings. So just select if you want to see vertex colors or not. But, for even better performance, we decided to multi-compile those. So yes, a lot of different shader variants will be added. (And VColors is of course one of them).


    And for @dogmachris

    Without Vertex Tools Pro


    With Vertex Tools Pro
     
    Teila and dogmachris like this.
  21. Miltoid_

    Miltoid_

    Joined:
    Sep 13, 2015
    Posts:
    5
    Does everyone on the project need to have this in order to see the changes i make to a meshes vertex colour? (only one person will be painting vertex colours)
     
  22. PitHeimes

    PitHeimes

    Joined:
    Oct 18, 2015
    Posts:
    322
    No, only one script is needed on the gameobject.
    So if the gameobject has the Script, vertex colors are there :)
     
  23. Teila

    Teila

    Joined:
    Jan 13, 2013
    Posts:
    6,932
    This is an amazing asset. I have tried for months to make my mesh fields blend into the surrounding terrain. Finally, I found the solution. The field on the left is not blended. Simple problem, excellent solution and so easy to do. I can't wait to try it on rocks, buildings, cobblestone streets, etc. Thanks, Pit!

    Screen Shot 03-22-16 at 11.35 AM.PNG
     
    Ony, TeagansDad and PitHeimes like this.
  24. PitHeimes

    PitHeimes

    Joined:
    Oct 18, 2015
    Posts:
    322
    Glad it works for your tasks.
    Excited to see more blending:)
     
  25. ferlodeveloper

    ferlodeveloper

    Joined:
    Jan 21, 2013
    Posts:
    15
    I bought your package and i have to give you congratulations, its a great package.

    I have some things to to-do list:
    In vertex deform:
    -Some check to avoid move vertex that belong to an edge.
    -Increase Brush size limit
    -Some mask on brush will be perfect
    In Shaders:
    -It will be possible to forget emission and metallic and make shaders only with two textures, this way you could put 4 blend textures and the texture packer with this options
    Albedo with height in alpha channel
    Normal map with oclussion in alpha channel
    -It will be possible to add a common number tile slider for each texture.
    -Add the possibility to change uv tiling at far distance, add a second number tile slider for far and a fade slider.

    Thanks so much
     
  26. PitHeimes

    PitHeimes

    Joined:
    Oct 18, 2015
    Posts:
    322
    Thanks for the feedback :) We wrote everything down on our whiteboard and will discuss prioritys soon :)
     
  27. Murgilod

    Murgilod

    Joined:
    Nov 12, 2013
    Posts:
    10,157
    Do your vertex painting tools support RGBA or just RGB?
     
  28. PitHeimes

    PitHeimes

    Joined:
    Oct 18, 2015
    Posts:
    322
    Not sure if I understand that question correctly. But what I can tell you is that we allow the user to paint not only RGB values on the mesh, but also alpha values. Hope this information is what you were looking for! :)
     
  29. marie-hmm

    marie-hmm

    Joined:
    Mar 25, 2016
    Posts:
    11
    First of all: Great work with this app, bought it yesterday and I absolutely love it. Keep it up, guise, its awesome.

    I get it also that it's still quite fresh and that we might encounter some small bugs, here is my problem:

    I am strangely unable to paint certain vertices of the mesh after I import the premade object from blender, that is: I can select and paint some of them but some are somehow "unselectable". This can be clearly noticed with the "Show Vertex Indicators" turned on - I attach some pictures.




    ADD: The object is one imported from blender where I've created it.

    Do you know way to fix that? Thanks for help! sry for poor english.
     
  30. PitHeimes

    PitHeimes

    Joined:
    Oct 18, 2015
    Posts:
    322
    Hey there,

    could you pass me the blender exported file to do some tests? Never heard of that problem so far.

    We will investigate on that immediatly then :)
     
  31. marie-hmm

    marie-hmm

    Joined:
    Mar 25, 2016
    Posts:
    11
    Haha, I'm quite ashamed by having to show it to someone knowledgeable in blender's usage. Don't laugh (at least not too much ; ) bout what you see there, sending it.
     

    Attached Files:

  32. PitHeimes

    PitHeimes

    Joined:
    Oct 18, 2015
    Posts:
    322
    Hey again,

    after doing all kind of stuff - mostly weird stuff of course ;) - I can at least say, it has something to do with your meshes geometry. For example: running the C4D's built-in 'Opzimize' reduced the problem to only 1 spot. Nevertheless, I cannot excactly tell where in your geometry the mistake is. Seems to be some sort of "dirty" modelling, maybe overlapping vertices or something like that. I passed it to our artist to take a closer look into that.

    For now: Add a Mesh Collider to the Gameobject (Ground) and switch that to convex. At least you can reach all vertices then.
     
    marie-hmm likes this.
  33. Teila

    Teila

    Joined:
    Jan 13, 2013
    Posts:
    6,932
    Yep, I can see a lot of issues with the mesh. He has edges crossing edges, overlaps, and lots of other issues.

    @Amuntsen, as someone who taught herself to model, I suggest starting with small simple things first and then do the car later. It can be really confusing as a beginner to go for the big stuff. :)
     
  34. marie-hmm

    marie-hmm

    Joined:
    Mar 25, 2016
    Posts:
    11
    Thanks a lot, the convex mesh collider works for now. I can reach all vertices.

    Hmmm, this shape isn't really complex at all. Could you, please, explain me the issues you've mentioned? I've checked the mesh many times in blender: all faces are triangles, there are no overlapping vertices (remove doubles returns 0 vertices). What are the crossing edges?

    I could remake the object but I don't know what should I avoid so as to be able to conveniently use VTP.
     
  35. PitHeimes

    PitHeimes

    Joined:
    Oct 18, 2015
    Posts:
    322
    I don't know either. Never had issues. Our Artist will Look at it in a Minute.
     
    Teila likes this.
  36. Teila

    Teila

    Joined:
    Jan 13, 2013
    Posts:
    6,932
    I blew up the picture and can't tell the lines from the grid below it so I may be mistaken. :) I am sure Pit's artist can help you.
     
  37. marie-hmm

    marie-hmm

    Joined:
    Mar 25, 2016
    Posts:
    11
    Okay, I've remade the structure from scratch. No problems now, I can select all vertices with VTP. I've made it using different tools than previously, it turned out to be more efficient and fully digestable for VTB (still not quite sure what precisely have I messed up). Painting it now is a pure pleasure, thanks Pit and Teila ;] happyy eazzter
     
    Teila likes this.
  38. PitHeimes

    PitHeimes

    Joined:
    Oct 18, 2015
    Posts:
    322
    A small update (1.0.2) will be released next week to improve editor performance and sort out a bug, which should have already been fixed in 1.0.1.

    Vertex Tools Pro 1.1.0 will follow soon afterwards.
    This will then include the Distingo collaboration and hopefully the Vertex Color Animator. :)
     
    Whippets likes this.
  39. PitHeimes

    PitHeimes

    Joined:
    Oct 18, 2015
    Posts:
    322
    Version 1.0.2 was just submitted for review.
    We decided to get rid of the demoscene to reduce package size and avoid download problems. The demoscene will be released for free (VertexToolsPro required to use it) on the assetstore.

    Furthermore we decided to share the demoscene as standalone.
    MAC version can be downloaded here.
    Win version will follow, after we got our hands on some machines to be sure it looks like we want it to look.
     
  40. gurayg

    gurayg

    Joined:
    Nov 28, 2013
    Posts:
    269
    Hi,
    Can you please tell what will "Vertex Color Animator" will let users to do?
    Is it going to help with creating rivers or such?
    In what ways can be the Vertex Colors animated? Vertex World Position? Triggers? Player distance?
    Thanks
     
  41. PitHeimes

    PitHeimes

    Joined:
    Oct 18, 2015
    Posts:
    322
    With the Vertex Color Animator you will be able to animate between different states. So this means you can paint the mesh and save that state as a keyframe, then you can paint the mesh in another way and save that as another keyframe and animate between these two (or more) states. The animation can be triggered simply by calling our API with one line of code.
    A typical use case for this would be shifting sand or rising water/snow etc.
     
  42. PitHeimes

    PitHeimes

    Joined:
    Oct 18, 2015
    Posts:
    322
    Standalone Demoscene for Windows is now available here. (64bit)
     
  43. mensch-mueller

    mensch-mueller

    Joined:
    Nov 25, 2014
    Posts:
    156
    Hi Pit!
    That was a great decision, really appreciate it! The massive file size was one of the reasons, i avoid your package. Noticed that many of the assets on assetstore are bloated with needless demo scenes. And that would make updates much easier ;)

    Thanks
    Michael
     
  44. B2_Squared

    B2_Squared

    Joined:
    Mar 13, 2013
    Posts:
    14
    Hello!

    I'm thinking of purchasing Vertex Tools Pro, but have a couple questions first. I've created some complex shaders in Shader Forge that are good to go. The only thing I need at the moment is the ability to paint my meshes in-editor. Will I be able to use my custom shaders with your plugin, or am I forced to use your shaders? It's not that your shaders aren't nice (They are!), only that I specifically built mine for certain purposes. The shaders that comes with the plugin are super nice though; I'd definitely find a use for them somewhere!
     
  45. Teila

    Teila

    Joined:
    Jan 13, 2013
    Posts:
    6,932
    I could not use my Alloy shaders with it but has to use the VTP shaders. That is what allows you to paint on the vertices. They look very nice. :) I still use Alloy with things that I don't need to paint on though. They are fine together.
     
  46. B2_Squared

    B2_Squared

    Joined:
    Mar 13, 2013
    Posts:
    14
    Nuts. Unless they include a triplanar shader of some sorts then I'm SOL. :(
     
  47. Teila

    Teila

    Joined:
    Jan 13, 2013
    Posts:
    6,932
    Triplanar is usually for terrain. VTP is for meshes. Only reason to use triplanar's on a mesh is if you have not properly UV'ed it and in that case, you may have other issues.
     
  48. B2_Squared

    B2_Squared

    Joined:
    Mar 13, 2013
    Posts:
    14
    Usually for terrain, but not always. ;)

    My shader is for large rocks/cliffs and combines triplanar projection with other maps that use textures assigned to proper UVs. I want to be able to paint variation into the textures that are being projected via world space, which is why I was trying to find a plugin to paint the mesh.
     
  49. PitHeimes

    PitHeimes

    Joined:
    Oct 18, 2015
    Posts:
    322
    You can definitly use your shaders. If your shader uses vertex colors you can use VTP to paint those colors :)

    If you want to, you can just send me an example shaders and I will send you back some screenshots :)
     
  50. recon0303

    recon0303

    Joined:
    Apr 20, 2014
    Posts:
    1,634
    Has this been tested on Xb1, PS4, , IOS, and Android?? I have a tool, like this that I made but nothing close to how much it does at all. and I love to buy this, sadly I our company does not do much PC development these days right now.

    So we mainly work on these platforms, so it would be great to get more info on these. I hope to have Distingo doing the same as well, since that looks pretty darn good as well....