Search Unity

MeshKit - 3D Editing, Optimisation and Asset Management Plugin

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

  1. melgeorgiou

    melgeorgiou

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

    Can you please send me a PM / email and we can look into this a little closer.

    Please include your invoice ID so I can verify your purchase! :)

    - Mel
     
  2. wagenheimer

    wagenheimer

    Joined:
    Jun 1, 2018
    Posts:
    323
    Hi!

    Does it also combine textures/materials?

    I have a character that was exported from 3DMax. Each part of his body is a Mesh and has a separate Material / Texture, which has a very bad performance.

    I'm sure it could be a single mesh and material.

    Will your asset help me with this?
     
  3. melgeorgiou

    melgeorgiou

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

    Firstly, thanks for your interest in MeshKit! :)

    MeshKit doesn't currently handle texture atlases but that is on the roadmap for consideration in the future. In the meantime, MeshKit does work really well with other tools that do provide that functionality!

    Hope this helps! :)

    - Mel
     
  4. CNGameDev01

    CNGameDev01

    Joined:
    Feb 1, 2016
    Posts:
    6
    Hi,

    I'm having issue with decimating model at runtime.
    The resulting mesh weird even when quality supply in parameter is 1.

    Versions:
    Meshkit 2.1.1
    Unity 2019.4.9f1
     

    Attached Files:

  5. melgeorgiou

    melgeorgiou

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

    For support requests can you please send me a PM / email with your invoice ID?

    Thanks! :)

    - Mel
     
  6. alap18

    alap18

    Joined:
    Oct 31, 2014
    Posts:
    3
    Hello!

    Thanks for this asset, I've been using the Decimation functionality with good effect on Tilt Brush models for a VR project. I wanted to optimize the models further and use the AutoLOD system. Some of these are rigged characters with the children being multiple SkinnedMeshRenderers representing different parts of the body+ the actual rig, and AutoLOD does not allow you to optimize them all at one time.

    There are many such characters so I don't want to select each SkinnedMeshRenderer individually. Is there any workaround so that I can have AutoLOD work on these characters in one click, or will it just need to be automated in script? What is the reason for this functionality not being available at the moment?

    Note: Oddly, I once managed to have AutoLOD work on the parent of many SkinnedMeshRenderers but haven't been able to replicate it since so I now think it could have been some kind of bug. Also didn't manage to test the results.

    Thanks in advance.
     
  7. melgeorgiou

    melgeorgiou

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

    Firstly, thanks for purchasing MeshKit and I'm glad to hear you've been making good use of the decimation tools :)

    Would you mind sending me a PM / email with your invoice number as well as an example of the kind of object you're trying to work with ( I think that would be easier for me to understand what's going on in this case ).

    BTW: You can also use the contact form on my website :)

    Thanks!

    - Mel
     
    Last edited: May 18, 2021
  8. melgeorgiou

    melgeorgiou

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

    I thought it might be useful to share this custom editor script which I created to help out @alap18 . It is designed to help speed up the AutoLOD workflow of objects that have a large number of child SkinnedMeshRenderers ( which I hadn't come across before ).

    The attached script allows you to select multiple objects in the scene and use a menu item ( MeshKit > Batch AutoLOD ) to have all of those objects create ( or update its existing ) AutoLOD setup in a couple clicks. It also helpfully filters out any GameObjects in the scene that are invalid for AutoLOD and shows which objects will be processed with a confirmation dialog :)

    Place the script in the following folder:
    Editor Default Resources > Editor > Hell Tap Entertainment > MeshKit

    BTW: Always backup your projects first!

    Hopefully this helps a few of you out there :)

    - Mel
     

    Attached Files:

    Mark_01 and alap18 like this.
  9. andthenwhat

    andthenwhat

    Joined:
    May 11, 2015
    Posts:
    19
    Hi, I've tried both 2021 and 2020 LTS versions of unity, but separating my mesh isn't working well at all:
    left (before), right (after). I'm in HDRP. How do I fix this?

    upload_2021-11-24_5-8-26.png
     
  10. melgeorgiou

    melgeorgiou

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

    Could you please PM / email me with your invoice ID and I'll be happy to help!

    I think I have an idea as to what is going on there! :)

    UPDATE: Issue was solved in PM :)

    - Mel
     
    Last edited: Nov 24, 2021
    Mark_01 likes this.
  11. attaway

    attaway

    Joined:
    Nov 12, 2014
    Posts:
    45
    Is Meshkit compatible with Unity 2021.2?
     
  12. melgeorgiou

    melgeorgiou

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

    Firstly, thanks for your interest!

    Yes it is. I’m still actively developing MeshKit =)

    - Mel
     
  13. Noctxas97

    Noctxas97

    Joined:
    Mar 8, 2017
    Posts:
    4
    Hi, I got a question. When I do decimate, it renames all the meshes selected during the process and export them to other scene with this compound: "Name of the mesh" + "DECIMATED". In this case I don't want that because we need the original name of the mesh. Is there a way to avoid it? Thank you!
     
  14. melgeorgiou

    melgeorgiou

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

    You can't change the default behaviour of that without changing core scripts ( which I highly recommend you don't do ), but what you can do after decimating the mesh is the following:

    1) Find the new decimated mesh inside your local MeshKit folder ( click the mesh inside the MeshFilter component to do this easily ).

    2) Drag the mesh to somewhere outside the local MeshKit folder ( this basically stops MeshKit from tracking it ). NOTE: Don't put it in the MeshKit folder of another scene, lol.

    3) Rename the mesh to whatever you like.

    Hope that helps! :)

    - Mel
     
  15. Noctxas97

    Noctxas97

    Joined:
    Mar 8, 2017
    Posts:
    4
    Thanks for a quick answer. But if we have more than 500 meshes..? I mean, rename every mesh would be so tedious lol. That's one of the reasons why I'd edit some parts of the code that renames the mesh. (I'm programmer and artist too)

    Original name:
    Captura2.PNG
    Decimated name:
    Captura.PNG

    Thanks in advance.
     
  16. melgeorgiou

    melgeorgiou

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

    Can you PM / Email me with your invoice ID and I'll offer some suggestions to get you started? :)

    - Mel
     
  17. Noctxas97

    Noctxas97

    Joined:
    Mar 8, 2017
    Posts:
    4
    Check your PM ;)
     
    melgeorgiou likes this.
  18. melgeorgiou

    melgeorgiou

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

    MESHKIT v3.0 IS HERE!

    I have some exciting news! After almost a year of work, MeshKit v3.0 is now released and offers a massive amount of new features!

    IMPORTANT: AS ALWAYS, BE SURE TO BACKUP YOUR PROJECTS BEFORE UPGRADING!

    ... As well as bug fixes and performance improvements, here's a quick rundown of whats new! :)

    1) NEW 32-BIT MESH COMBINE OPTIONS!

    MeshKit has way better compatibility and management of 32-bit meshes. You can also now enable combines of 32-bit meshes in the MeshKit window! :)

    Enabling 32-bit meshes allow meshes to contain billions of vertices but due to Unity only being able to serialize assets that are a maximum of 4GB, this realistically limits us to a max of around 25 million vertices per mesh ( still insanely huge ). When deciding what to use, you should remember that 16-bit meshes have a max of about 65k per mesh but perform faster, use less bandwidth and are compatible across all devices and platforms.


    CombineMeshRenderer.png

    2) COMBINE SKINNED MESH RENDERERS!

    It's finally possible! Not only can you combine mesh renderers, you can now combine Skinned Mesh Renderers as well! Not only that, it comes with two different workflows!

    The first workflow combines the Skinned Mesh Renderer to use a single mesh along with a material array. This primarily offers a boost to lowering the overhead of animations, etc. It is also the most compatible method and should work with pretty much everything.

    The second workflow combines Skinned Mesh Renderers with texture atlasing! Yep, its the first time MeshKit has entered into this territory and this feature not only combines the meshes of skinned mesh renderers but also the textures too! This approach even allows you to customize which shader texture properties you want to combine and ultimately reduces things down to a single draw call! Please note that as always, there are a few limitations to this workflow which you can read more about in the MeshKit Documentation PDF . In any case, it offers some really cool ways to further optimize your games with ease!

    Here is a new video that shows how both of these new combine workflows work!



    3) SEPARATE SKINNED MESH RENDERERS!


    If you have a skinned mesh with sub-meshes, it can now be separated just like standard meshes!

    It comes with a few convenience options to inactivate the GameObjects of any existing renderers after separating your objects so you can more easily test your setups.

    SeperateSkinnedMeshRenderers.png


    MeshKit v3 is already released on my own website and is currently under review by the Asset store team.

    This update will be FREE to everyone who has already purchased MeshKit in the past. If you appreciate the fact that MeshKit has been developed, supported and updated since 2015, please consider leaving a positive review on the asset store page. I have some new ideas planned for future versions of MeshKit and this will help me to keep things going!

    Thanks for supporting MeshKit! :)

    - Mel
     
    Last edited: Apr 11, 2022
  19. gecko

    gecko

    Joined:
    Aug 10, 2006
    Posts:
    2,241
    v3 looks great! But there's no option for creating a texture atlas option for non-skinned meshes, is there? Any chance of adding that?
     
  20. melgeorgiou

    melgeorgiou

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

    That's on the roadmap :)

    It'll take a bit of time though, I still need to figure out a few particularly difficult problems on the atlasing front in order to implement it properly :)

    - Mel
     
  21. gecko

    gecko

    Joined:
    Aug 10, 2006
    Posts:
    2,241
    Great! Do you have any idea about when it might drop? I can wait a bit, but if it'll be more than maybe a month, I need to find another tool.
     
  22. melgeorgiou

    melgeorgiou

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

    Unfortunately, it may take longer as I also have other contractual commitments. At this point I can assure everyone that it is planned and likely to be the next update :)

    Thanks for your interest btw! :)

    - Mel
     
    Last edited: Apr 11, 2022
    gecko likes this.
  23. melgeorgiou

    melgeorgiou

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

    I thought I'd post a sneak preview of what's coming in MeshKit v3.1! :)

    1) "COMBINE MESHES WITH ATLASING" FOR MESH RENDERERS

    Here's a quick peak at the new tools that will allow you to combine a group of mesh renderers and apply texture atlasing:

    CombineMeshRenderersAtlasing.png

    This pane is very similar to the one being used for SkinnedMeshRenderers, but we have a few new options ( they may be more by release, who knows! lol )

    Firstly, you can have MeshKit create a new set of UV2 when its done so that you'll be ready for light-mapping right away!

    Then, we have some more Atlas options. You can choose to use one texture atlas for each shader or you can force MeshKit to treat all of the shaders to use the standard shader to squeeze everything down as much as possible. You also have the option to set the maximum texture size as well as a new option to control the maximum number of textures you want to add to each atlas.

    This mode works very well so far but in testing I came across the issue of some meshes using UVs that are outisde of the 0 - 1 range ( and / or using materials with offsets and tiling ). These are big issues for texture atlasing so MeshKit detects them and asks you what to do first.

    However, this lead to me to build a brand new MeshKit tool to help with this problem! :)

    2) THE NEW "UNTILE" TOOL

    Here is an early peak of MeshKit's brand new "Untile" tool:

    Untile.png

    The purpose of this tool to make sure your selected mesh are using UVs that are in the 0 - 1 range. The good news is both MeshRenderers and SkinnedMeshRenderers are compatible with this tool! :)

    It does this using two different modes:

    Scale To Fit Mode: this will attempt to uniformly offset and scale your UVs down to fit. This can significantly change the appearance of the original mesh ( as it essentially removes any of the tiling ) but it will fix the issue. This results in a new mesh and material.

    Rescale With Atlasing: this mode will figure out how many times the UVs have tiled in the mesh and then create new textures with the tiling included. The mesh's UVs are then changed to match up with the new atlases. This usually works quite well but the downside of this approach is objects that have a crazy amount of tiling will end up losing a lot of texture resolution.

    Both modes also factor in any changes you have made to the material's offset and scale and incorporates that data too! :)

    A cool feature that is included is the fact that it auto-detects what texture properties you are using based on your selected shader. This means you don't have to setup any texture properties in order to setup the atlasing for this tool :)

    Finally, there is also a "Scan UVs" button that will give you a quick report of the UV topology of your mesh and whether it needs to be fixed. Info is always cool! :)

    IT'S COMING SOON!

    The tools are already working quite well but they require some more tweaks and testing before it's release ready. I'm hoping to have this update ready in the next 2 - 4 weeks :)

    Thanks for supporting MeshKit! :)

    - Mel
     
    Last edited: Apr 19, 2022
    gecko likes this.
  24. melgeorgiou

    melgeorgiou

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

    MESHKIT v3.1 IS HERE!

    It was slightly delayed, but MeshKit 3.1 is finally released on my site and awaiting App Store approval! :)

    IMPORTANT: AS ALWAYS, BE SURE TO BACKUP YOUR PROJECTS BEFORE UPGRADING!

    What's New:

    - The brand new Untile tool! :)
    - Texture Atlasing For Mesh Renderers ( as well as Skinned Mesh Renderers )
    - New Custom Pixel Processing feature for Texture Atlasing.
    - Bug fixes and performance improvements.

    New Video Showing Off Texture Atlasing And The Untile Tool:



    I hope you enjoy the new features and thanks for supporting MeshKit! :)

    - Mel
     
    Last edited: Jun 27, 2022
  25. gecko

    gecko

    Joined:
    Aug 10, 2006
    Posts:
    2,241
    How do I disable the popup alerts about making the meshkit objects into prefabs? It happens everytime I load the scene and stop runtime. In the MeshKit preferences, all those toggles are disabled.
     
  26. melgeorgiou

    melgeorgiou

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

    The MeshKit preferences disable 'realtime' checks which run frequently as you make changes in the scene. However, as you mention, it still does do occasional checks when Unity reloads its scripts.

    The reason it is telling you that is because you are using a "local" mesh ( which is a mesh located inside of a scene's local MeshKit folder) within a prefab. MeshKit is basically letting you know that due to this setup, it is possible for you to accidentally delete that mesh from the original scene if you're not careful (as it is saved in the scene's local MeshKit folder), so it is telling you that if you want to use that mesh in a "normal" way ( in other words, across various scenes ), it should be moved out from that folder.

    The easy way to fix this is to just let MeshKit fix it automatically by confirming the message. The only thing that happens is the local meshes in question will be copied into your project folder (Assets/MeshKit Prefab Meshes/"NameOfObject") and the references on the objects themselves will be automatically re-assigned. However, be sure to re-apply the prefab to make it stick afterwards (MeshKit gives you an opportunity to check out the prefab before making it permanent).

    If you'd rather do this manually, you can. Simply find the mesh in question ( e.g .you can click it in the MeshFilter), drag it out from the scene's MeshKit folder and place it somewhere else in your project. MeshKit will then simply stop tracking it as if it was a local mesh.

    I hope this helps, if you'd like further clarification feel free to send me a PM! :)

    - Mel
     
    Last edited: Mar 27, 2023
  27. jnbbender

    jnbbender

    Joined:
    May 25, 2017
    Posts:
    487
    I have a large environment asset where everything was optimized with LODs. I mean everything! I have had this tool for quite some time and have enjoyed it but it appears I cannot combine or atlas anything which is part of an LOD structure; which makes some sense. Am I correct in assuming that I now have a choice of one or the other? Using an LOD system or Atlasing & Combining?
     
  28. melgeorgiou

    melgeorgiou

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

    Glad to hear you've been using MeshKit for a while! :)

    Speaking in generalities, it's not a case of one or the other, it's more of an issue of work order. Adding LOD is really something you should do pretty much last in the workflow. In other words, after you've run any operations for combining, atlasing, editing, etc.

    From the perspective of the tool, trying to atlas and combine a hierarchy of objects which include LODs is at best going to be very messy as well as much less efficient - and will almost certainly break the original LODGroup anyway. So yeah, you'd need to remove the LOD setups first and then combine / atlas them. Once you've nailed the setup, run the LODs again when you're done :)

    Hope that helps!

    - Mel
     
    Last edited: Mar 27, 2023
    jnbbender likes this.
  29. jnbbender

    jnbbender

    Joined:
    May 25, 2017
    Posts:
    487
    I haven't looked but MeshKit doesn't have a way to auto-remove LODs does it? I'm just being lazy :)
     
  30. melgeorgiou

    melgeorgiou

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

    If MeshKit created the LODs, click on the parent object containing the MeshKitAutoLOD component. Then open MeshKit window > AutoLOD > Remove LOD :)

    If it was a model from elsewhere that already had LODs attached, you would need to remove it manually.

    Hope that helps! :)

    - Mel
     
  31. jnbbender

    jnbbender

    Joined:
    May 25, 2017
    Posts:
    487
    Awesome, thanks
     
  32. melgeorgiou

    melgeorgiou

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

    - Mel
     
  33. olidadda

    olidadda

    Joined:
    Jul 27, 2019
    Posts:
    37
    Hi there, using Unity 2021, Meshkit Window doesn't open when clicked, is this a know issue?
     
  34. melgeorgiou

    melgeorgiou

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

    MeshKit should be fine in Unity 2021.x

    Quick things to check:
    - Make sure you don't have any errors from other scripts in the console.
    - Make sure you have downloaded the latest version of MeshKit.
    - Try putting MeshKit in an empty Unity 2021 project to confirm that it works.

    Hope this helps! :)

    - Mel
     
  35. olidadda

    olidadda

    Joined:
    Jul 27, 2019
    Posts:
    37
    Hi there, it's very strange because even if I open a completely new project, I click on Window>Meshkit and the top strip of the unity window greys out as if out of focus but nothing appears. Should it appear as a popup or tab?
     
  36. melgeorgiou

    melgeorgiou

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

    It would usually be a popup first but it can be docked to a tab. Here is a screenshot I've just taken from Unity 2021.3.8

    Screenshot 2023-04-13 at 14.08.53.png

    BTW: No one else has reported this so it's very likely a local issue.

    Also, you need to select an object in the Hierarchy for MeshKit to show its options etc.

    Hope this helps!

    - Mel
     
  37. olidadda

    olidadda

    Joined:
    Jul 27, 2019
    Posts:
    37
    Thank you Mel, will try to figure it out!
     
    melgeorgiou likes this.
  38. melgeorgiou

    melgeorgiou

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

    olidadda

    Joined:
    Jul 27, 2019
    Posts:
    37
    OK, solution for anyone having this problem. It's not a Meshkit issue but a Windows issue: for some reason Windows is extending the screen onto another monitor (which isn't even on). Solution: Windos+P > PC Screen only. Hopefully someone searching the net for this issue with any Unity Window not showing up could benefit. Ciao! And congrats on MeshKit, I have used it many times in the past, excellent tool!
     
    bugfinders and melgeorgiou like this.
  40. melgeorgiou

    melgeorgiou

    Joined:
    Nov 3, 2012
    Posts:
    772
    Awesome, glad you figured it out! :)

    - Mel
     
  41. MrPure3D

    MrPure3D

    Joined:
    Apr 1, 2014
    Posts:
    12
    Hi!

    I have ju bought MeshKit and it is great!

    I have however an issue with the Combine tool. If we have four Objects, each object has one material with no textures but different Color, Metallic and Smoothness values,
    How do I combine this into one object and make an Atlas out of these with the material values baked into the Atlas ?

    I have tried the Advenced Pixel Processing, but nothing is generated to the textures. Example For the MetallicGlossMap below.

    Thanks!
    Daniel Screenshot 2023-08-11 121116.png
     
  42. melgeorgiou

    melgeorgiou

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

    Thanks for the kind words! :)

    Typically you wouldn't need to use Advanced Pixel Processing. Using the Standard Shader preset would normally do what you want automatically.

    As this is a support request, would you mind emailing me / sending me a PM with your invoice ID and we can take it from there :)

    Thanks!

    - Mel
     
  43. MrPure3D

    MrPure3D

    Joined:
    Apr 1, 2014
    Posts:
    12
    Hi @melgeorgiou

    Sorry for late reply, Im busy in anoother project at the moment.
    So it should work with just Color values and without Textures, using Standarde shader (in URP also)?

    I contact you when I have the time.

    Thanks!
     
  44. melgeorgiou

    melgeorgiou

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

    Yes, I believe so.

    If you need more support with this please send a PM / Email along with your invoice ID and I can help further :)

    Thanks!

    - Mel
     
  45. indiedev37

    indiedev37

    Joined:
    Aug 31, 2013
    Posts:
    27
    Is this asset still in development. Not updates since 2022. Does it work with the newer versions of unity?
     
  46. melgeorgiou

    melgeorgiou

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

    Yep, still supporting it! :)

    - Mel
     
    indiedev37 likes this.
  47. melgeorgiou

    melgeorgiou

    Joined:
    Nov 3, 2012
    Posts:
    772
    MESHKIT v4.0 IS HERE!

    IMPORTANT: AS ALWAYS, BE SURE TO BACKUP YOUR PROJECTS BEFORE UPGRADING!

    As well as bug fixes and performance improvements, here's a quick rundown of whats new! :)

    NEW DECIMATION AND LOD SYSTEMS!

    For the most part, you won't notice many new features and additions at first glance (although you'll get an extra option for MeshKit to spend more time trying to preserve surface curvature in mesh decimation). However, you should notice way better results, especially for very large meshes. You should also benefit from seeing less holes in meshes, and not having to use the preserve options as much to balance that out! :)

    IMPORTANT UPGRADE NOTES:

    Changes to AutoLOD:


    Even though the UI looks virtually identical, the AutoLOD component will no longer create LODs in exactly the same way as previous versions. Instead of forcing your LOD0 group to be the same as the source mesh, you can now decide to use a lower poly version of it as LOD0 instead. If you want to have LOD0 use the same mesh as the source, simply set its quality level to 1. In addition, the culling distance slider is now removed, and MeshKit will use your last LOD distance as the culling distance. This seems to be more intuitive and better matches how Unity's LODGroups actually work. If you have already built your LODs and removed MeshKit's AutoLOD component setup from them, your meshes will still be fine! :)

    If this is a problem for you, you may decide not to upgrade MeshKit to v4.0 in your current project and wait for the next one. However, a few small tweaks to the AutoLOD settings should be enough to get you back on track. Again, always backup first!

    Upgrading Decimation Systems

    To help with the upgrade, a few scripts are included that override some of the old ones to help with compilation issues for those upgrading. These extra scripts will be removed in a future version of MeshKit but have been added just to help the upgrade process along :)

    That's about it everyone, I hope you enjoy the new version of MeshKit! :)

    Thanks!

    - Mel
     
    Mark_01 likes this.