Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.
  2. Dismiss Notice

Mad Mesh Combiner - Easy mesh combining for mobiles

Discussion in 'Works In Progress - Archive' started by genail, Jun 2, 2014.

  1. genail

    genail

    Joined:
    Jul 2, 2012
    Posts:
    1,045
    Hello everyone!

    I'm working on mesh combining tool for my own game, but I've found out that it can be improved a little and I am thinking on publishing it on the asset store.

    The features are:
    - Mesh combining (reducing draw calls)
    - Multiple materials support
    - Atlases support (all textures are packed into atlases)
    - Tiling support (tiled materials are treated differently)
    - Easy modification of combined meshes (you can switch between source and the result)
    - Easy to setup (just select the objects and click in the menu)

    Here's the video!


    What do you think?

    Now Available in the Asset Store!

    This thread will be no longer continued. Please move to this one.
     
    Last edited: Jun 12, 2014
  2. khos85

    khos85

    Joined:
    Jul 21, 2013
    Posts:
    541
    Hi, I would like to try this, can I get it now? will it help to improve performance on mobile (android) games?
    Kim
     
  3. khos85

    khos85

    Joined:
    Jul 21, 2013
    Posts:
    541
  4. genail

    genail

    Joined:
    Jul 2, 2012
    Posts:
    1,045
    Yes, the usage is similar, but it offers more features. You can combine meshes with different materials as well. I am sending URL to the 0.1 version to you through PM ;-)
     
  5. khos85

    khos85

    Joined:
    Jul 21, 2013
    Posts:
    541
    Oh wow cool, thanks. How much will you charge for it?
     
  6. genail

    genail

    Joined:
    Jul 2, 2012
    Posts:
    1,045
    I dunno. First version may be a little unstable. I am currently thinking of releasing the first version at price of $5, so those who helped me will have the chance to get my tool at the lowest possible price (with updates) ;-) Shortly after I will rise it to $20 and I will test other scenarios as time goes on.
     
  7. genail

    genail

    Joined:
    Jul 2, 2012
    Posts:
    1,045
    OK, as I said before Mad Mesh Combiner went to the Unity Asset Store review team and will be soon available for a price of $5! I will let you know when this will happen.

    In the meantime here's a little tutorial video of final 1.0 version:



    Cheers!
    Piotr
     
  8. genail

    genail

    Joined:
    Jul 2, 2012
    Posts:
    1,045

    Why so cheap? Two reasons:

    1. I want to pay back for these who've tested my asset. If you can, get it now so it will be bound to your Unity account. I still will be working on this tool, so I will be providing frequent updates.
    2. This is initial release and it can contain bugs. I am game developer myself and I know how is frustrating when you'll buy something for $30 and it's not working as you've expected. I'm hoping that for a price of $5 some people won't be so frustrated when they will found something wrong and they will write to me, so I will have the time to fix any issues.
    The price of $5 will last for about a week.
     
  9. im

    im

    Joined:
    Jan 17, 2013
    Posts:
    1,396
    Hi

    Interesting, but how hows your Mad Mesh Combine compare to:

    Simple Mesh Combine
    https://www.assetstore.unity3d.com/en/#!/content/8748

    Draw Call Minimizer
    https://www.assetstore.unity3d.com/en/#!/content/2859

    Mesh Baker
    https://www.assetstore.unity3d.com/en/#!/content/5017

    Mesh Merge and Splice
    https://www.assetstore.unity3d.com/en/#!/content/18418

    For example what specific features / functionalities does Mad Mesh Combine offer that lets say Draw Call Minimizer does not offer?

    Also, I don't see why Mad Mesh Combine cannot remember the original locations of the selected folders and revert completely put things back to where they were before Mad Mesh Combine added and then completely remove itself from the scene.

    Thanks in advance!
     
    Last edited: Jun 7, 2014
  10. genail

    genail

    Joined:
    Jul 2, 2012
    Posts:
    1,045
    Hello im,
    Thank you for writing.

    First of all, all tools above are widely used in many production environments and I cannot deny that. My tool was used in my game and by some other people before the release, so it can contain some bugs.

    Simple Mesh Combine: I do not own it but basing on the description it requires objects to have the same material. My tool does not.

    Draw Call Minimizer: It's quite advanced for a free tool. I couldn't tell why Mad Mesh Combiner is better, so I use a test scene from Toon Train Pack, and:

    - For Draw Call Minimizer I needed to reorganize meshes myself (put it in a parent). For Mad Mesh Combiner I've only selected them
    - Draw Call Minimizer: I couldn't combine meshes with non-readable textures. I've just received an error. IMO this is huge issue, because leaving textures as readable will load them into the device operating memory. Mad Mesh Combiner does not have such requirement.
    - Mad Mesh Combiner: The combine process went quite well. I had to combine the scene in parts because there were one object that caused a trouble I don't know why yet. Anyway I will fix this.

    Mesh Baker: I wanted to buy it, but the price made me to write my own tool ;-) It's advanced, possible the most advanced tool from all here, but I haven't got the chance to test it out. The downside is the UI which could be better.

    Mesh Merge and Splice: Wow, this is a new one (released June 2th), and it's really good! It's easy to use (clear UI) and have quite neat features. To be honest this tool is the most close to Mad Mesh Combiner and it is what I wanted Mad Mesh Combiner to be. Of course not entirely. I want to introduce features that won't break the simplicity (in fact I want to make it more simple and clear) but will give better fine-tune possibilities for more advanced users. The feature that Mad Mesh Combiner not have is sub-meshes support (mentioned in the video), but I believe I can add this one quite easily.

    Do you mean selected source objects? It can, but it's just my laziness. Hey, I couldn't add all features that I've wanted in 1.0! Where's all the fun about updating and feature requests! :)

    Please ask anytime! I will be off this weekend (and usually on the weekends I am) but I will write back as soon as I can.

    Cheers!
    Piotr
     
    Last edited: Jun 7, 2014
  11. genail

    genail

    Joined:
    Jul 2, 2012
    Posts:
    1,045
    One more note: I will need a little more time to find more differences between Draw Call Minimizer if you want, but I'd rather add more features to Mad Mesh Combiner, so if you'll have any feature requests please write!
     
  12. im

    im

    Joined:
    Jan 17, 2013
    Posts:
    1,396
    ok thanks!

    i bought a copy :)

    just keep working on it...

    my advice on these things is always focus on fixing the bugs first and then secondly on adding new features

    sorry its only $5 - 30% - your tax rate, but i didn't set the price or the unity terms or the tax tables ;)

    and oh at some point i guess you will be moving this thread to assets and asset store...
    http://forum.unity3d.com/forums/assets-and-asset-store.32/
     
    Last edited: Jun 7, 2014
  13. im

    im

    Joined:
    Jan 17, 2013
    Posts:
    1,396
    ok i followed the video, but i'm having some problems with it, it does not appear to work at all or im doing something wrong...

    i selected a filter that has everything i would like to combine and i bring up the tool and press combine, it takes a good bit of time since here are lots of meshes and texture and i see it created the folders as i would have expected and that it moved the stuff as i would have expected, but then nothing more, it did not create the combined meshes nor did it combine the textures into atlases and it left all the renderers enabled. so it looks like it needs some work or i did something wrong...

    im trying to combine the asset Apocalyptic City Pack (just for testing)





    and here is what the tools shows



    and if u toggle mesh twice if will disable all the renderers and since nothing got combined you end up with this



    and here you can see combine didnt really combine and it didnt give any errors. so if it cant combine meshes and such it should not move them it should only move the ones it can combine that way when you toggle to disable renderers it dont toast things...



    please advice
     
    Last edited: Jun 7, 2014
  14. genail

    genail

    Joined:
    Jul 2, 2012
    Posts:
    1,045
    There are some errors in the console that are hidden in your screenshots? Are they related to my tool? Please check that. That's a large amount of objects and shader variations, so I am mostly sure that something went wrong :)
    Also I've found a bug that when you'll change your selection you have to close and open the combine window again.

    About the price: I am suspecting 1.0 to have a lot of bugs, because production environments are very unpredictable. I would feel guilty if I've charged more for it.

    I am on my weekend, I will get back to you but probably with some delay.

    And thank you for the bug report!

    Cheers!
    Piotr
     
  15. im

    im

    Joined:
    Jan 17, 2013
    Posts:
    1,396
    ok here is what i did

    i created clean project

    i imported mad mesh combiner

    i imported apocalyptic city pack asset

    as you can see no warning and no errors at this point



    here i opened the main scene and it gives 3 warning that do not apply to any of this



    here i run the scene just to try it out and i do not get any warnings / error



    here Arts is selected in Hierarchy is selected and i opened mad mesh combiner tool (but did not run it yet) and still no warnings / errors



    here i ran mad mesh combiner and after a noticeable pause it finished and there is an error



    Code (csharp):
    1.  
    2. NullReferenceException: Object reference not set to an instance of an object
    3. MadMeshCombiner.MadMeshCombinerAtlasBuilder.CreateItem (UnityEngine.Texture2D texture, Rect region) (at Assets/Mad Mesh Combiner/Scripts/Editor/MadMeshCombinerAtlasBuilder.cs:194)
    4. MadMeshCombiner.MadMeshCombinerAtlasBuilder.PackTextures (UnityEngine.Texture2D[] textures, System.String path, System.Collections.Generic.List`1& items) (at Assets/Mad Mesh Combiner/Scripts/Editor/MadMeshCombinerAtlasBuilder.cs:170)
    5. MadMeshCombiner.MadMeshCombinerAtlasBuilder.CreateAtlas (System.String texturePath, UnityEngine.Texture2D[] textures, UnityEngine.Shader shader) (at Assets/Mad Mesh Combiner/Scripts/Editor/MadMeshCombinerAtlasBuilder.cs:112)
    6. MadMeshCombiner.MadMeshCombinerTool.Combine (System.String directory, MadMeshCombiner.ObjectGroup group, UnityEngine.Transform parent) (at Assets/Mad Mesh Combiner/Scripts/Editor/MadMeshCombinerTool.cs:250)
    7. MadMeshCombiner.MadMeshCombinerTool.RecombineManaged (MadMeshCombiner.MadMeshCombinerManaged managed) (at Assets/Mad Mesh Combiner/Scripts/Editor/MadMeshCombinerTool.cs:100)
    8. MadMeshCombiner.MadMeshCombinerWindow.CombineManaged () (at Assets/Mad Mesh Combiner/Scripts/Editor/MadMeshCombinerWindow.cs:118)
    9. MadMeshCombiner.MadMeshCombinerWindow.Combine () (at Assets/Mad Mesh Combiner/Scripts/Editor/MadMeshCombinerWindow.cs:103)
    10. MadMeshCombiner.MadMeshCombinerWindow.OnGUI () (at Assets/Mad Mesh Combiner/Scripts/Editor/MadMeshCombinerWindow.cs:84)
    11. System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at /Users/builduser/buildslave/mono-runtime-and-classlibs/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:222)
    12.  
    im not sure how i missed it, but essentially i guess its faulting somewhere and not combining things.

    right now we know its failing and looking at the code it looks like some issue with the texture of that item, but we dont know the item...


    ok so since im bored to death as usual...

    here i reverted, moved the folder back manually, deleted the folders it created, added

    Code (csharp):
    1.  
    2. Debug.Log(AssetDatabase.GetAssetPath(texture));
    3.  
    where it faulted, selected Arts in hierarchy again and pushed Combine...

    ok this time when it faulted we see that the issue that whatever the asset is that is causing the problem when the called is made a path to the asset being the texture returns null



    so basically it cant find the texture because the texture is not set.

    ok by finding the last texture that was not empty (null) in the scene and stepping through the assets in the hierarchy i was able to quickly find mesh that had a material that did not have a texture. so basically all these would have to be fixed / removed :( since i use a lot of commercial assets that is full of issues like this and i bet other customers do too i think the better solution is for mad mesh combiner to just not fault on these and leave it as empty texture (which cant bet added to atlas anyways. should be easy fix with simple if statement...
    basically ignoring them

     
    Last edited: Jun 8, 2014
  16. im

    im

    Joined:
    Jan 17, 2013
    Posts:
    1,396
    ok i fixed the above issue with the material not having a texture (which should not be issue since some materials will not have textures since they are just using color for example) and reverted things, moved the folder back manually (wish revert did this) and did combine again and this time got lot of different errors



    Code (csharp):
    1.  
    2. Mesh.vertices is too large. A mesh may not have more than 65000 vertices.
    3. UnityEngine.Mesh:set_vertices(Vector3[])
    4. MadMeshCombiner.MadMeshCombinerTool:Combine(String, ObjectGroup, Transform) (at Assets/Mad Mesh Combiner/Scripts/Editor/MadMeshCombinerTool.cs:361)
    5. MadMeshCombiner.MadMeshCombinerTool:RecombineManaged(MadMeshCombinerManaged) (at Assets/Mad Mesh Combiner/Scripts/Editor/MadMeshCombinerTool.cs:100)
    6. MadMeshCombiner.MadMeshCombinerWindow:CombineManaged() (at Assets/Mad Mesh Combiner/Scripts/Editor/MadMeshCombinerWindow.cs:118)
    7. MadMeshCombiner.MadMeshCombinerWindow:Combine() (at Assets/Mad Mesh Combiner/Scripts/Editor/MadMeshCombinerWindow.cs:103)
    8. MadMeshCombiner.MadMeshCombinerWindow:OnGUI() (at Assets/Mad Mesh Combiner/Scripts/Editor/MadMeshCombinerWindow.cs:84)
    9. UnityEditor.DockArea:OnGUI()
    10.  
    Code (csharp):
    1.  
    2. Mesh.colors is out of bounds. The supplied array needs to be the same size as the Mesh.vertices array.
    3. UnityEngine.Mesh:set_colors(Color[])
    4. MadMeshCombiner.MadMeshCombinerTool:Combine(String, ObjectGroup, Transform) (at Assets/Mad Mesh Combiner/Scripts/Editor/MadMeshCombinerTool.cs:362)
    5. MadMeshCombiner.MadMeshCombinerTool:RecombineManaged(MadMeshCombinerManaged) (at Assets/Mad Mesh Combiner/Scripts/Editor/MadMeshCombinerTool.cs:100)
    6. MadMeshCombiner.MadMeshCombinerWindow:CombineManaged() (at Assets/Mad Mesh Combiner/Scripts/Editor/MadMeshCombinerWindow.cs:118)
    7. MadMeshCombiner.MadMeshCombinerWindow:Combine() (at Assets/Mad Mesh Combiner/Scripts/Editor/MadMeshCombinerWindow.cs:103)
    8. MadMeshCombiner.MadMeshCombinerWindow:OnGUI() (at Assets/Mad Mesh Combiner/Scripts/Editor/MadMeshCombinerWindow.cs:84)
    9. UnityEditor.DockArea:OnGUI()
    10.  
    Code (csharp):
    1.  
    2. Mesh.normals is out of bounds. The supplied array needs to be the same size as the Mesh.vertices array.
    3. UnityEngine.Mesh:set_normals(Vector3[])
    4. MadMeshCombiner.MadMeshCombinerTool:Combine(String, ObjectGroup, Transform) (at Assets/Mad Mesh Combiner/Scripts/Editor/MadMeshCombinerTool.cs:363)
    5. MadMeshCombiner.MadMeshCombinerTool:RecombineManaged(MadMeshCombinerManaged) (at Assets/Mad Mesh Combiner/Scripts/Editor/MadMeshCombinerTool.cs:100)
    6. MadMeshCombiner.MadMeshCombinerWindow:CombineManaged() (at Assets/Mad Mesh Combiner/Scripts/Editor/MadMeshCombinerWindow.cs:118)
    7. MadMeshCombiner.MadMeshCombinerWindow:Combine() (at Assets/Mad Mesh Combiner/Scripts/Editor/MadMeshCombinerWindow.cs:103)
    8. MadMeshCombiner.MadMeshCombinerWindow:OnGUI() (at Assets/Mad Mesh Combiner/Scripts/Editor/MadMeshCombinerWindow.cs:84)
    9. UnityEditor.DockArea:OnGUI()
    10.  
    Code (csharp):
    1.  
    2. Mesh.tangents is out of bounds. The supplied array needs to be the same size as the Mesh.vertices array.
    3. UnityEngine.Mesh:set_tangents(Vector4[])
    4. MadMeshCombiner.MadMeshCombinerTool:Combine(String, ObjectGroup, Transform) (at Assets/Mad Mesh Combiner/Scripts/Editor/MadMeshCombinerTool.cs:364)
    5. MadMeshCombiner.MadMeshCombinerTool:RecombineManaged(MadMeshCombinerManaged) (at Assets/Mad Mesh Combiner/Scripts/Editor/MadMeshCombinerTool.cs:100)
    6. MadMeshCombiner.MadMeshCombinerWindow:CombineManaged() (at Assets/Mad Mesh Combiner/Scripts/Editor/MadMeshCombinerWindow.cs:118)
    7. MadMeshCombiner.MadMeshCombinerWindow:Combine() (at Assets/Mad Mesh Combiner/Scripts/Editor/MadMeshCombinerWindow.cs:103)
    8. MadMeshCombiner.MadMeshCombinerWindow:OnGUI() (at Assets/Mad Mesh Combiner/Scripts/Editor/MadMeshCombinerWindow.cs:84)
    9. UnityEditor.DockArea:OnGUI()
    10.  
    Code (csharp):
    1.  
    2. Mesh.uv is out of bounds. The supplied array needs to be the same size as the Mesh.vertices array.
    3. UnityEngine.Mesh:set_uv(Vector2[])
    4. MadMeshCombiner.MadMeshCombinerTool:Combine(String, ObjectGroup, Transform) (at Assets/Mad Mesh Combiner/Scripts/Editor/MadMeshCombinerTool.cs:365)
    5. MadMeshCombiner.MadMeshCombinerTool:RecombineManaged(MadMeshCombinerManaged) (at Assets/Mad Mesh Combiner/Scripts/Editor/MadMeshCombinerTool.cs:100)
    6. MadMeshCombiner.MadMeshCombinerWindow:CombineManaged() (at Assets/Mad Mesh Combiner/Scripts/Editor/MadMeshCombinerWindow.cs:118)
    7. MadMeshCombiner.MadMeshCombinerWindow:Combine() (at Assets/Mad Mesh Combiner/Scripts/Editor/MadMeshCombinerWindow.cs:103)
    8. MadMeshCombiner.MadMeshCombinerWindow:OnGUI() (at Assets/Mad Mesh Combiner/Scripts/Editor/MadMeshCombinerWindow.cs:84)
    9. UnityEditor.DockArea:OnGUI()
    10.  
    Code (csharp):
    1.  
    2. Failed setting triangles. Some indices are referencing out of bounds vertices.
    3. UnityEngine.Mesh:set_triangles(Int32[])
    4. MadMeshCombiner.MadMeshCombinerTool:Combine(String, ObjectGroup, Transform) (at Assets/Mad Mesh Combiner/Scripts/Editor/MadMeshCombinerTool.cs:366)
    5. MadMeshCombiner.MadMeshCombinerTool:RecombineManaged(MadMeshCombinerManaged) (at Assets/Mad Mesh Combiner/Scripts/Editor/MadMeshCombinerTool.cs:100)
    6. MadMeshCombiner.MadMeshCombinerWindow:CombineManaged() (at Assets/Mad Mesh Combiner/Scripts/Editor/MadMeshCombinerWindow.cs:118)
    7. MadMeshCombiner.MadMeshCombinerWindow:Combine() (at Assets/Mad Mesh Combiner/Scripts/Editor/MadMeshCombinerWindow.cs:103)
    8. MadMeshCombiner.MadMeshCombinerWindow:OnGUI() (at Assets/Mad Mesh Combiner/Scripts/Editor/MadMeshCombinerWindow.cs:84)
    9. UnityEditor.DockArea:OnGUI()
    10.  
    Code (csharp):
    1.  
    2. Material doesn't have a texture property '_CubeMap'
    3. UnityEngine.Material:GetTexture(String)
    4. MadMeshCombiner.ObjectGroup:<CubeMapTextures>m__B(GameObject) (at Assets/Mad Mesh Combiner/Scripts/Editor/MadMeshCombinerTool.cs:518)
    5. System.Linq.Enumerable:ToArray(IEnumerable`1)
    6. MadMeshCombiner.ObjectGroup:CubeMapTextures() (at Assets/Mad Mesh Combiner/Scripts/Editor/MadMeshCombinerTool.cs:518)
    7. MadMeshCombiner.MadMeshCombinerTool:Combine(String, ObjectGroup, Transform) (at Assets/Mad Mesh Combiner/Scripts/Editor/MadMeshCombinerTool.cs:239)
    8. MadMeshCombiner.MadMeshCombinerTool:RecombineManaged(MadMeshCombinerManaged) (at Assets/Mad Mesh Combiner/Scripts/Editor/MadMeshCombinerTool.cs:100)
    9. MadMeshCombiner.MadMeshCombinerWindow:CombineManaged() (at Assets/Mad Mesh Combiner/Scripts/Editor/MadMeshCombinerWindow.cs:118)
    10. MadMeshCombiner.MadMeshCombinerWindow:Combine() (at Assets/Mad Mesh Combiner/Scripts/Editor/MadMeshCombinerWindow.cs:103)
    11. MadMeshCombiner.MadMeshCombinerWindow:OnGUI() (at Assets/Mad Mesh Combiner/Scripts/Editor/MadMeshCombinerWindow.cs:84)
    12. UnityEditor.DockArea:OnGUI()
    13.  
    Code (csharp):
    1.  
    2. Material doesn't have a texture property '_CubeMap'
    3. UnityEngine.Material:GetTexture(String)
    4. MadMeshCombiner.ObjectGroup:<CubeMapTextures>m__B(GameObject) (at Assets/Mad Mesh Combiner/Scripts/Editor/MadMeshCombinerTool.cs:518)
    5. System.Linq.Enumerable:ToArray(IEnumerable`1)
    6. MadMeshCombiner.ObjectGroup:CubeMapTextures() (at Assets/Mad Mesh Combiner/Scripts/Editor/MadMeshCombinerTool.cs:518)
    7. MadMeshCombiner.MadMeshCombinerTool:Combine(String, ObjectGroup, Transform) (at Assets/Mad Mesh Combiner/Scripts/Editor/MadMeshCombinerTool.cs:239)
    8. MadMeshCombiner.MadMeshCombinerTool:RecombineManaged(MadMeshCombinerManaged) (at Assets/Mad Mesh Combiner/Scripts/Editor/MadMeshCombinerTool.cs:100)
    9. MadMeshCombiner.MadMeshCombinerWindow:CombineManaged() (at Assets/Mad Mesh Combiner/Scripts/Editor/MadMeshCombinerWindow.cs:118)
    10. MadMeshCombiner.MadMeshCombinerWindow:Combine() (at Assets/Mad Mesh Combiner/Scripts/Editor/MadMeshCombinerWindow.cs:103)
    11. MadMeshCombiner.MadMeshCombinerWindow:OnGUI() (at Assets/Mad Mesh Combiner/Scripts/Editor/MadMeshCombinerWindow.cs:84)
    12. UnityEditor.DockArea:OnGUI()
    13.  
    Code (csharp):
    1.  
    2. Material doesn't have a texture property '_CubeMap'
    3. UnityEngine.Material:GetTexture(String)
    4. MadMeshCombiner.ObjectGroup:<CubeMapTextures>m__B(GameObject) (at Assets/Mad Mesh Combiner/Scripts/Editor/MadMeshCombinerTool.cs:518)
    5. System.Linq.Enumerable:ToArray(IEnumerable`1)
    6. MadMeshCombiner.ObjectGroup:CubeMapTextures() (at Assets/Mad Mesh Combiner/Scripts/Editor/MadMeshCombinerTool.cs:518)
    7. MadMeshCombiner.MadMeshCombinerTool:Combine(String, ObjectGroup, Transform) (at Assets/Mad Mesh Combiner/Scripts/Editor/MadMeshCombinerTool.cs:239)
    8. MadMeshCombiner.MadMeshCombinerTool:RecombineManaged(MadMeshCombinerManaged) (at Assets/Mad Mesh Combiner/Scripts/Editor/MadMeshCombinerTool.cs:100)
    9. MadMeshCombiner.MadMeshCombinerWindow:CombineManaged() (at Assets/Mad Mesh Combiner/Scripts/Editor/MadMeshCombinerWindow.cs:118)
    10. MadMeshCombiner.MadMeshCombinerWindow:Combine() (at Assets/Mad Mesh Combiner/Scripts/Editor/MadMeshCombinerWindow.cs:103)
    11. MadMeshCombiner.MadMeshCombinerWindow:OnGUI() (at Assets/Mad Mesh Combiner/Scripts/Editor/MadMeshCombinerWindow.cs:84)
    12. UnityEditor.DockArea:OnGUI()
    13.  
    Code (csharp):
    1.  
    2. Material doesn't have a texture property '_CubeMap'
    3. UnityEngine.Material:GetTexture(String)
    4. MadMeshCombiner.ObjectGroup:<CubeMapTextures>m__B(GameObject) (at Assets/Mad Mesh Combiner/Scripts/Editor/MadMeshCombinerTool.cs:518)
    5. System.Linq.Enumerable:ToArray(IEnumerable`1)
    6. MadMeshCombiner.ObjectGroup:CubeMapTextures() (at Assets/Mad Mesh Combiner/Scripts/Editor/MadMeshCombinerTool.cs:518)
    7. MadMeshCombiner.MadMeshCombinerTool:Combine(String, ObjectGroup, Transform) (at Assets/Mad Mesh Combiner/Scripts/Editor/MadMeshCombinerTool.cs:239)
    8. MadMeshCombiner.MadMeshCombinerTool:RecombineManaged(MadMeshCombinerManaged) (at Assets/Mad Mesh Combiner/Scripts/Editor/MadMeshCombinerTool.cs:100)
    9. MadMeshCombiner.MadMeshCombinerWindow:CombineManaged() (at Assets/Mad Mesh Combiner/Scripts/Editor/MadMeshCombinerWindow.cs:118)
    10. MadMeshCombiner.MadMeshCombinerWindow:Combine() (at Assets/Mad Mesh Combiner/Scripts/Editor/MadMeshCombinerWindow.cs:103)
    11. MadMeshCombiner.MadMeshCombinerWindow:OnGUI() (at Assets/Mad Mesh Combiner/Scripts/Editor/MadMeshCombinerWindow.cs:84)
    12. UnityEditor.DockArea:OnGUI()
    13.  
    Code (csharp):
    1.  
    2. NullReferenceException: Object reference not set to an instance of an object
    3. MadMeshCombiner.MadMeshCombinerAtlasBuilder.CreateItem (UnityEngine.Texture2D texture, Rect region) (at Assets/Mad Mesh Combiner/Scripts/Editor/MadMeshCombinerAtlasBuilder.cs:194)
    4. MadMeshCombiner.MadMeshCombinerAtlasBuilder.PackTextures (UnityEngine.Texture2D[] textures, System.String path, System.Collections.Generic.List`1& items) (at Assets/Mad Mesh Combiner/Scripts/Editor/MadMeshCombinerAtlasBuilder.cs:170)
    5. MadMeshCombiner.MadMeshCombinerAtlasBuilder.CreateAtlas (System.String texturePath, UnityEngine.Texture2D[] textures) (at Assets/Mad Mesh Combiner/Scripts/Editor/MadMeshCombinerAtlasBuilder.cs:91)
    6. MadMeshCombiner.MadMeshCombinerTool.Combine (System.String directory, MadMeshCombiner.ObjectGroup group, UnityEngine.Transform parent) (at Assets/Mad Mesh Combiner/Scripts/Editor/MadMeshCombinerTool.cs:258)
    7. MadMeshCombiner.MadMeshCombinerTool.RecombineManaged (MadMeshCombiner.MadMeshCombinerManaged managed) (at Assets/Mad Mesh Combiner/Scripts/Editor/MadMeshCombinerTool.cs:100)
    8. MadMeshCombiner.MadMeshCombinerWindow.CombineManaged () (at Assets/Mad Mesh Combiner/Scripts/Editor/MadMeshCombinerWindow.cs:118)
    9. MadMeshCombiner.MadMeshCombinerWindow.Combine () (at Assets/Mad Mesh Combiner/Scripts/Editor/MadMeshCombinerWindow.cs:103)
    10. MadMeshCombiner.MadMeshCombinerWindow.OnGUI () (at Assets/Mad Mesh Combiner/Scripts/Editor/MadMeshCombinerWindow.cs:84)
    11. System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at /Users/builduser/buildslave/mono-runtime-and-classlibs/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:222)
    12.  
     
    Last edited: Jun 8, 2014
  17. genail

    genail

    Joined:
    Jul 2, 2012
    Posts:
    1,045
    Hello im,

    Wow, I was not expecting you to be so engaged! :) Thanks!
    Can you please give me an URL to asset that you're using. This will be a great test case and I will enjoy making it work! :)

    Cheers!
    Piotr
     
  18. im

    im

    Joined:
    Jan 17, 2013
    Posts:
    1,396
    here it is, but its a bit expensive $75, i have hundreds of assets perhaps i can find another that costs less

    Apocalyptic City Pack
    https://www.assetstore.unity3d.com/en/#!/content/17855

    yes the demo scene it comes with is quite a test case and i think realistic

    but before you go out and spend your hard earned money

    try these free assets which have very nice demo scenes that could be considered somewhat typical of what you would find in a real game...

    angry bots
    https://www.assetstore.unity3d.com/en/#!/content/12175

    bootcamp
    https://www.assetstore.unity3d.com/en/#!/content/1376

    car tutorial
    https://www.assetstore.unity3d.com/en/#!/content/10

    stealth project
    https://www.assetstore.unity3d.com/en/#!/content/7677

    robot lab
    https://www.assetstore.unity3d.com/en/#!/content/7006

    i guess if all the above work without issue then you could focus on things like Apocalyptic City Pack which cost money. i also have a good number of very large assets with very big sample scenes from number of authors but you have to fix the bugs before i put time into testing it out with theirs since it will be more of the same and then some...
     
    Last edited: Jun 8, 2014
  19. genail

    genail

    Joined:
    Jul 2, 2012
    Posts:
    1,045
    Thank you. I am now back home and I will try to locate and fix any bugs ASAP.
    I will write to the author of Apocalyptic City Pack if he is willing to share the pack with me just for the testing purposes.

    I will share the fixed version with you as soon as it is ready!

    Cheers!
    Piotr
     
  20. im

    im

    Joined:
    Jan 17, 2013
    Posts:
    1,396
    sure...
     
  21. genail

    genail

    Joined:
    Jul 2, 2012
    Posts:
    1,045
    OK, I've been working on this new version today. Here's a changelog:

    == 1.1 ==

    New Features:
    - You can now move your source objects to their original position
    - You can remove source objects from the scene
    - Texture atlas splitting

    Improvements:
    - Progress bar while combining meshes
    - Optimizing mesh after the combine

    Bug Fixes:
    - Selecting different object don't need the window to be reopened
    - Fixed multiple "Combined" directory creation
    - Fixed NRE when combining disabled objects and materials without textures

    And I will send you this new version in a moment. Not tested with the Apocalyptic City Pack yet, but it may just work (to be honest I doubt it ;-) ). I've found and fixed some issues.
     
  22. Morfeuskiev

    Morfeuskiev

    Joined:
    Oct 10, 2013
    Posts:
    122
    Hello, This is a very hot topic.

    1) The first thing I would like to note - this is an opportunity to bake texture atlases. Without the combine. With modified meshes. Static batching in unity pro is not bad (Yes, of course - shadows caster is not batching, but LOD level work fine).

    2) The main problem is that a mesh has a limited 65 thousand per mesh vertices (including all the vertex data UV, Vertex color and others). Your Combiner is able to split the group when object has over 65 thousand vertices? I am sure that the person who wrote the above, just experiencing this problem.

    3) Can you wrote the prepare meshes for combine in runtime? When you have many non-unique mesh (copy of prefab is not affecten on the size of build), but combine make all mesh unique and size of gamebuild can be a very big.

    4) Do your combine create UV2?

    With Best Regards ;)
     
  23. genail

    genail

    Joined:
    Jul 2, 2012
    Posts:
    1,045
    Hello There,

    1) This is an interesting idea! I could implement in in quite short time. Do you need this kind of feature?

    2) I've just wrote feature that I've called group-spliter. It now splits groups of objects based on total textures area. I wanted to add splitting by vertex count in 1.2, but you're probably right. I will this feature in 1.1.

    3) Yes I can, but I want to focus on static combining at first. I have to think about it, but combining meshes at runtime may need very different approach.

    4) Not yet, but that's not a problem to combine that as well. If there's nothing tricky about it.

    Cheers!
    Piotr
     
  24. im

    im

    Joined:
    Jan 17, 2013
    Posts:
    1,396
    yes i have way more than 65k vert per combined mesh

    so yes the asset will need to group things appropriately

    people need to be able to let the software do it for them

    they should just select the assets and it should do all the work

    people should not have to manually break it up themselves to make sure it does not exceed limit

    the software should be doing all the work and making sure no limits are not exceeded and break things into group as needed

    the more you can automate the software the more value it has and the more useful it is and the more likely it will be purchased and used

    basically that is one good use of computers to automate tedious repetitive error prone menial tasks..
     
  25. genail

    genail

    Joined:
    Jul 2, 2012
    Posts:
    1,045
    Yep, I will do that! I am also thinking of algorithm that will split meshes based on proximity. You know, when meshes should be split, It will split them two two or more groups that have the lowest bounds possible. It won't be in 1.1 though.

    All these things needs some time, like everything in life (oh my!). I will release a version this week with first set of features and bug fixes. Further features and improvements are yet to come :)

    Thank you guys for the testing and suggestions!
     
  26. im

    im

    Joined:
    Jan 17, 2013
    Posts:
    1,396
    1.1 is out! :)

    but i guess not all the issues are resolved :(
     
  27. genail

    genail

    Joined:
    Jul 2, 2012
    Posts:
    1,045
    Hello There,

    Yep, that's right. Don't worry, as soon as I will have 65K vertices issue fixed I will send you the new version!

    P.S. Apocalyptic City Pack author just sent me a message that he agrees to send me his asset for testing purposes as soon as he gets back from his vacations :)
     
  28. genail

    genail

    Joined:
    Jul 2, 2012
    Posts:
    1,045
    This thread will be no longer continued. Please move to this one.
     
  29. im

    im

    Joined:
    Jan 17, 2013
    Posts:
    1,396
    thanks for the update and for the good news!

    hey tell him thanks he's a good guy with lots of very nice and affordable assets which everyone should check out!