Search Unity

MeshKit - 3D Editing, Optimisation and Asset Management Plugin

Discussion in 'Assets and Asset Store' started by melgeorgiou, Apr 30, 2015.

  1. drcfrx

    drcfrx

    Joined:
    Jan 26, 2013
    Posts:
    53
    @melgeorgiou Fabulous tool, easy to use, clear and efficient, very professionnal. I really love it. Thanks for making it :)
    If you are taking suggestions, I'd love to see along the number of mesh/skinmesh of selected object, the number of vertices or tris that this object have. Or maybe a special Model's Info thumbnail with usefull details on a selected object or prefab like number of submeshes, number of tris, number of mats, potential problems, anything that could help evaluate a prefab or model at a glance (without clicking dozen of time to reach all submeshes to look at the inspector). Could save a lot of time.
    Anyways thanks a lot!
     
  2. melgeorgiou

    melgeorgiou

    Joined:
    Nov 3, 2012
    Posts:
    772
    hi @drcfrx,

    Glad you're enjoying MeshKit :)

    I've added the suggestion to the Wishlist!

    - Mel
     
  3. drcfrx

    drcfrx

    Joined:
    Jan 26, 2013
    Posts:
    53
  4. melgeorgiou

    melgeorgiou

    Joined:
    Nov 3, 2012
    Posts:
    772
    No worries! :)
     
  5. Fleer_CTC

    Fleer_CTC

    Joined:
    Jun 15, 2017
    Posts:
    9
    Hi @melgeorgiou,

    Thanks for this plugin, it's made my life a lot easier! I have a question about some disappearing meshes though...

    We have some pretty dense geometry that comes from some engineering software, and I'm calling MeshKit.CombineChildren() in some code to optimise some AssetBundles that are being loaded in at runtime.

    I'm not sure if I'm missing something, but it looks like if the mesh is too large for MeshKit to process (over the vertex limit) then it will skip over it, but the implication of that is that the object's MeshRenderer will also get switched off in the 'Clean up' section - so I am then left with missing objects after the process has finished running.

    The behaviour I would expect to see is that the original, un-optimised mesh is ignored in clean up, and still visible in the scene.

    Is there a way I can achieve that with the CombineChildren() call that I might be missing?

    Thanks!
     
  6. melgeorgiou

    melgeorgiou

    Joined:
    Nov 3, 2012
    Posts:
    772
    Hi @Fleer_CTC,

    Firstly, Thanks for purchasing MeshKit and for your feedback :)

    Hmm, this seems like an interesting edge case. Could you please send me a PM / Email with your invoice number and we can take it from there?

    Thanks!

    - Mel
     
    Fleer_CTC likes this.
  7. melgeorgiou

    melgeorgiou

    Joined:
    Nov 3, 2012
    Posts:
    772
    DataKit_Header.png

    Hi everyone,

    I've just released a new tool called Data Kit - The Reimagined Data Serialization System For Unity.

    DataKit is a unique cross-platform data serialization system to automatically handle most aspects of saving and loading your game's data. Features include local and global data, save slots, save points, data groups, obfuscation, encryption and even automatic screenshots. Another great DataKit feature is the intuitive visual debugger, allowing you to view, edit, delete and restore your serialized data in real-time while testing your games in the Editor! DataKit is a powerful core asset that any game project would benefit from!

    As with all of my Unity plugins, it uses visual inspectors in an effort to make things as easy to use as possible (although some scripting is required). There are quite a few tutorial videos on the DataKit forum page but please check out this introduction video to see how DataKit can help with your own projects!



    DataKit is currently on sale with a 50% launch discount! For more information about DataKit check out the Asset Store page HERE. If you have any questions or suggestions for DataKit, please use its own unity forum page HERE.

    ... OK, now back to MeshKit! :)

    - Mel
     
  8. melgeorgiou

    melgeorgiou

    Joined:
    Nov 3, 2012
    Posts:
    772
  9. Fleer_CTC

    Fleer_CTC

    Joined:
    Jun 15, 2017
    Posts:
    9
    melgeorgiou likes this.
  10. melgeorgiou

    melgeorgiou

    Joined:
    Nov 3, 2012
    Posts:
    772
    No worries! :)
     
  11. SpindizzyGames

    SpindizzyGames

    Joined:
    Jun 29, 2017
    Posts:
    108
    Waiting for a sale on this asset.. :)
     
  12. melgeorgiou

    melgeorgiou

    Joined:
    Nov 3, 2012
    Posts:
    772
  13. vjroba

    vjroba

    Joined:
    Apr 28, 2015
    Posts:
    3
    Hi @melgeorgiou,

    I am considering to buy MeshKit.
    Is mesh separation still not compatible with Skinned Mesh Renderers?
    Thank you.
     
  14. melgeorgiou

    melgeorgiou

    Joined:
    Nov 3, 2012
    Posts:
    772
    Hi @vjroba,

    Firstly, thanks for checking out MeshKit! :)

    Mesh separation is a feature that currently only works on non-skinned meshes.

    - Mel
     
  15. vjroba

    vjroba

    Joined:
    Apr 28, 2015
    Posts:
    3
    Thank you for answering so quickly.
     
  16. melgeorgiou

    melgeorgiou

    Joined:
    Nov 3, 2012
    Posts:
    772
  17. real2u

    real2u

    Joined:
    Jun 20, 2018
    Posts:
    13
    @melgeorgiou First of all thanks for the asset, it's been helping me so much on my chair engineering project developed on Solidworks.

    Just like @Fleer_CTC , on complex geometries with interior mechanisms, screws,nuts,etc..., decimation tool isn't enought and it would amazing to remove every unseen vertice on that object, leaving only visible vertices and applying decimation on top of that.

    I thought rebuild tool would help me achieve that but I couldn't make :( Any inputs on how to achieve that?
     
  18. melgeorgiou

    melgeorgiou

    Joined:
    Nov 3, 2012
    Posts:
    772
    Hi @real2u,

    Firstly, thanks for purchasing MeshKit, I'm glad it's been helping you :)

    MeshKit doesn't have a feature to remove "unseen" vertices. The rebuild tool allows you to recreate an existing mesh with or without unity-based Mesh features. For example, you can strip or generate normals, tangents, etc in order to optimise memory and performance.

    In your case it sounds like you'll need to first make changes in solidworks. I don't have much experience with that but I would recommend making a duplicate of your current model and essentially make a "game-ready" version. Cut out the meshes you're not going to see from solid works and then bring it into Unity. From there, you can combine that with MeshKit's decimation tools to further reduce and optimize it.

    Hope that helps! :)

    - Mel
     
  19. CraigGraff

    CraigGraff

    Joined:
    May 7, 2013
    Posts:
    44
    @melgeorgiou This is a very interesting product. Almost a replacement for Mesh Simplifier, with many additional bells and whistles. The one thing that Mesh Simplifier had that this lacks is a method for choosing portions of a mesh to decimate last or first (either leaving the selected volumes relatively intact or removing complexity from volumes you don't care about). That was the killer feature of Mesh Simplifier when it was still supported.

    Do you have any plans to add support for a feature like that?
     
  20. melgeorgiou

    melgeorgiou

    Joined:
    Nov 3, 2012
    Posts:
    772
    Hi @CraigGraff,

    Firstly, thanks for your interest! :)

    That specific feature isn't planned for the short-term, but I'll add it to the wish-list.

    - Mel
     
  21. unicat

    unicat

    Joined:
    Apr 8, 2012
    Posts:
    425
    Hi, i have a big mesh (a whole city) which has many buildings. But it has no submeshes. Can i select the buildings (triangels, faces) to make a new submesh out of it with this tool?
     
  22. melgeorgiou

    melgeorgiou

    Joined:
    Nov 3, 2012
    Posts:
    772
    Hi @unicat,

    Firstly, thanks for your interest in MeshKit! :)

    Unfortunately there isn't a way to cut out new sub-meshes by selecting triangles / faces.

    - Mel
     
  23. SuperNewbee

    SuperNewbee

    Joined:
    Jun 2, 2012
    Posts:
    196
    Hello. Does anybody know if this will work in LWRP or URP?
     
  24. melgeorgiou

    melgeorgiou

    Joined:
    Nov 3, 2012
    Posts:
    772
    Hi @SuperNewbee,

    As far as I know there shouldn't be a problem with any render pipeline you choose. The meshes that MeshKit uses are basically the same as standard unity meshes.

    Hope this helps! :)

    - Mel
     
  25. Michal_Stangel

    Michal_Stangel

    Joined:
    Apr 17, 2017
    Posts:
    151
    Hello Mel,

    Brilliant asset. Is there any chance that Auto LOD will support blendshapes in future?
     
  26. melgeorgiou

    melgeorgiou

    Joined:
    Nov 3, 2012
    Posts:
    772
  27. Michal_Stangel

    Michal_Stangel

    Joined:
    Apr 17, 2017
    Posts:
    151
    Would be great, but not easy I guess :) I have most of my game characters with blendshapes, so it sort of limits LOD usage at the moment.
     
  28. melgeorgiou

    melgeorgiou

    Joined:
    Nov 3, 2012
    Posts:
    772
    Hi @Michal_Stangel,

    Blendshapes seriously complicate the LOD workflow so may not be feasible. However, I'll certainly look into it! :)

    Thanks,

    - Mel
     
  29. noobynobody

    noobynobody

    Joined:
    May 9, 2019
    Posts:
    75
    Hello, when will mesh separation work for skinned meshes?
     
  30. melgeorgiou

    melgeorgiou

    Joined:
    Nov 3, 2012
    Posts:
    772
    Hi @nobynobody,

    Firstly, thanks for your feedback! :)

    The current algorithm being used is basically incompatible with skinned meshes. Breaking a mesh to pieces makes it significantly difficult to preserve the animation. However, I'll add it to the wishlist to keep in mind as we move forward :)

    - Mel
     
  31. bugfinders

    bugfinders

    Joined:
    Jul 5, 2018
    Posts:
    1,735
    Having a few issues with meshkit. It has cut down the draw calls, although tbh maybe not as much as I hoped, but, its left me with lighting issues.. My main problem is I have an underground maze made with walls, the walls are way too many but I couldnt make the texture stretch with the walls so theres a ton of wall segments. Each with specular shader on, so, Ive combined the floor (as its one big sheet) and the roof (another big sheet) and then the walls as one bunch.. However as the player moves and turns sometimes the lighting is right othertimes its all just black.. and you cant see, which would be ok except that the lighting means it should never be black that close to you

    Examples: (all I did was look down like 1 degree)
    This is what I expected it to look like and does from some angles not quite right but it would be ok

    But move slightly and


    this all black look flashes as you move around and is very off putting and distracting

    Any hints would be appreciated.. as I was really excited from the videos, but this hasnt turned into quite as I hoped.

    This is what it looked like before I tried combining meshes - one of the key differences is the light from the candles, and 2 wall lights showing as warm kinda glow lights as expected
     
  32. melgeorgiou

    melgeorgiou

    Joined:
    Nov 3, 2012
    Posts:
    772
    Hi @bugfinders,

    Firstly, thanks for purchasing MeshKit! :)

    I've got a few ideas on what may be happening with your setup. Could you please send me a PM / Email with your invoice number and I'll get back to you asap ( as its new years eve tonight I may not be around until tomorrow ).

    Thanks! :)

    - Mel
     
    bugfinders likes this.
  33. melgeorgiou

    melgeorgiou

    Joined:
    Nov 3, 2012
    Posts:
    772
    Hi everyone,

    MESHKIT 2.1 has been released!

    MeshKit 2.1 is now available on my site and will soon be live on the Unity Asset Store! :)

    This update provides compatibility for the crazy changes in Unity 2019.3 as well as allowing you to add custom GameObject tags and layers on each AutoLOD level! :)

    IMPORTANT: Please remember to backup your projects before updating!

    MESHKIT ASSET STORE LINK:
    https://assetstore.unity.com/packag...-separation-combining-and-editing-tools-39794


    Thanks to everyone who has purchased MeshKit so far! :)

    - Mel
     
    Michal_Stangel likes this.
  34. WildMaN

    WildMaN

    Joined:
    Jan 24, 2013
    Posts:
    128
    Hey, I'm looking for a mesh combine+optimize solution. Description mentions "Strip unneeded vertices and extras from meshes" but I didn't find it in the videos. Here's an example of failed bake with the other plugin:


    8 stacked cubes - 64 vertices - are expected to produce 26 vert when combined into a single mesh. Can MeshKit do this?
     
  35. melgeorgiou

    melgeorgiou

    Joined:
    Nov 3, 2012
    Posts:
    772
    Hi @WildMaN,

    Firstly, thanks for your interest in MeshKit :)

    Not through the combine process I'm afraid. stripping unnecessary data happens when using MeshKit's rebuild tools but not in the context you describe here.

    However, you can decimate the result after combining but the results wont be great with primitives like cubes.

    - Mel
     
  36. WildMaN

    WildMaN

    Joined:
    Jan 24, 2013
    Posts:
    128
    Well, if you have that functionality anyway, it sounds rather simple to make it accessible via Editor/API and give your asset a competitive edge ;)
     
  37. melgeorgiou

    melgeorgiou

    Joined:
    Nov 3, 2012
    Posts:
    772
    Hi @WildMaN,

    If only it was that simple! :)

    Thanks for the feedback!

    - Mel
     
  38. gecko

    gecko

    Joined:
    Aug 10, 2006
    Posts:
    2,241
    Hi I've used MeshKit on a project on 2019.2, works great. really nice. But now I've imported it into a project on 2018.2 and I get a compiler error:

    Assets/Editor Default Resources/Editor/Hell Tap Entertainment/MeshKit/MeshAssets.cs(1206,61): error CS0266: Cannot implicitly convert type `UnityEngine.Object' to `UnityEngine.GameObject'. An explicit conversion exists (are you missing a cast?)


    What should I do?

    thanks!
    Dave
     
  39. melgeorgiou

    melgeorgiou

    Joined:
    Nov 3, 2012
    Posts:
    772
    Hi Dave,

    Firstly, opening projects in earlier Unity versions is usually a recipe for bad news, lol. The first thing I would try is to totally delete the original MeshKit files from your 2018.x project and re-install the package.

    If that doesn't work, please send me a PM with your invoice number and we'll take it from there! :)

    Hope that helps!

    - Mel
     
  40. gecko

    gecko

    Joined:
    Aug 10, 2006
    Posts:
    2,241
    Sorry, I mean I imported MeshKit into a different project, one which is on 2018.2. No downgrade.

    I'll PM you, thanks.
     
  41. melgeorgiou

    melgeorgiou

    Joined:
    Nov 3, 2012
    Posts:
    772
    No worries! :)

    This should now be fixed. A new MeshKit update has been submitted to the Asset Store and is also already live on my site!

    - Mel
     
  42. Nosaru

    Nosaru

    Joined:
    Feb 26, 2017
    Posts:
    13
    Does the tool have the ability to edit Combined meshes (delete faces etc.)? If not, will I negatively affect the logic of this tool by modifying the Combine with a customt tool?

    Just wondering about the workflow after combining,-
    deleting backfaces and geometry thats invisible from the outside etc. (Overdraw)
     
    Last edited: Jun 14, 2020
  43. melgeorgiou

    melgeorgiou

    Joined:
    Nov 3, 2012
    Posts:
    772
    Hi @Nosaru,

    Firstly, thanks for your interest in MeshKit :)

    MeshKit does not have the ability to delete faces. However, you can mix and match MeshKit's tools with others relatively easily.

    One way is to create a prefab with MeshKit-built meshes. MeshKit automatically gathers the meshes out of the managed area and into another folder. From there, you can either duplicate the mesh or work on it directly. You could even directly work on the 'managed' meshes if the tool you are using saves directly to the mesh file. In any case, there should be a workflow you can use!

    Hope that helps! :)

    - Mel
     
  44. knas01

    knas01

    Joined:
    Feb 24, 2018
    Posts:
    236
    Hi, I've been using your pool kit and it's so easy and fluid to use so why not check out your other stuff.

    I'm looking for something that can combine all my meshes in my prefabs. It's up to a hundred objects in each prefab so I'm already hovering at around 1k calls. My objects mostly share the same material, combined into 4-8k textures but there are also smaller objects.
    How does this asset handle this?
    Can I merge UV:s?

    Also, does this asset do anything "strange" to the meshes that can make other assets (like this https://assetstore.unity.com/packages/tools/painting/paint-in-3d-26286) not work?
     
  45. melgeorgiou

    melgeorgiou

    Joined:
    Nov 3, 2012
    Posts:
    772
    Hi @knas01,

    Firstly, thanks for the kind words and your interest in MeshKit! :)

    MeshKit can merge objects together as you'd expect but it also has the 'Seperate' function. Typically you should do that first to split up any sub-meshes. This allows for much better results when combining!

    I'm not familiar with how that other asset works, so I'll phrase it slightly differently. If you are using standard Unity meshes and trying to combine static objects, everything should work just fine :)

    Hope this helps! :)

    - Mel
     
  46. knas01

    knas01

    Joined:
    Feb 24, 2018
    Posts:
    236
    @melgeorgiou To clarify a bit, sub meshes are all the meshes contained in the 3d file, in my case the fbx file? In that case I drag it to the scene and unpack it like a prefab manually. From there I choose my meshes and delete the rest.

    And what happens once all meshes are combined? Is it from there, considered as one mesh? What if I combine meshes with different materials; will they be merged into one new material or will the different materials be their own element in the mesh?
     
  47. melgeorgiou

    melgeorgiou

    Joined:
    Nov 3, 2012
    Posts:
    772
    Hi @knas01,

    Apologies for the delay, I'm on UK time so I just woke up :)

    Sub-meshes are not the children you see inside of a mesh asset. Some meshes can have multiple materials setup to cover different parts of the same object. It is those sections of a mesh that are called sub-meshes. The Separate function in MeshKit splits those objects up into their own separate individual meshes which allows it to combine with other meshes much more effectively.

    Assuming poly counts are within Unity's limits, all meshes of the same material are combined into a single object (otherwise extra objects will be created to handle the overflow). As an example, if you have 100 mesh objects using a variety of 3 materials, all 100 objects will be combined into 3 objects in the end. In other words, this results in 1 draw call per material, which theoretically is pretty much as good as it gets :)

    Hope this helps!

    - Mel
     
  48. knas01

    knas01

    Joined:
    Feb 24, 2018
    Posts:
    236
    Very good, thanks. :)
     
  49. melgeorgiou

    melgeorgiou

    Joined:
    Nov 3, 2012
    Posts:
    772
  50. MrBIoBR

    MrBIoBR

    Joined:
    Jul 2, 2017
    Posts:
    9
    @melgeorgiou i'm trying to customize the AutoLOD Tool to use in my procedural generated game...

    I've manage to Generate de LODs for the objects, executing the method MeshKitAutoLOD.GenerateLODs() and they all look alright in the scene view. But, if I apply the changes for the prefab and go to the prefab view, I see the LOD levels settings lose the reference for the decimated Meshes.

    looking a bit further, I see that if I use the method MeshKitAutoLOD.GenerateLODs() is was not saving the decimated meshes in Level/MeshKit/LOD Meshes, this was why it was losing the reference if i apply the prefab (perhaps using the GenerateLODs(), the object LOD was using just a instance of the decimated mesh ? )

    is there a "correct way" to do this, without having to select each object and hit "setup LOD" on the meshkit window ? (since for my game i would have to do this step 450+ times)

    here is the code:

    upload_2020-7-4_11-56-54.png

    ps: The 'lodSetting' is a class i created to setup LOD settings using scriptable objects.

    ps2: i can't simply apply the LOD to the whole scene because all the objects will be used at random moments/positions, since it is a procedural game.
     

    Attached Files: