Batching Tools

754470--31133--$batchingtools.png

Hi,
Thanks for your interest in Batching tools !

Batching Tools can save you time when you want to use batching.

  • Creates one combined material from many materials.
  • Creates one combined static mesh with one material from many meshes with multiple materials.
  • Creates one dynamic (skinned) mesh with one material from many meshes with multiple materials.

Batching is a method to reduce draw calls by combining them. By using Unity’s batching you can make your games faster and more energy - efficient. To use batching, you should use shared materials i.e. more than one objects should share the same material. Batching tools helps you to create those shared materials, fast and easy. It also allows you to create combined meshes and combined meshes with bones ( skinned meshes ) for Unity free and Pro.

Batching tools is a productivity tool. It helps you to produce results while staying in the Unity Editor saving time for artists and programmers.

All operations are done in Unity editor, you can export meshes and textures to external apps, create texture atlases. Batched prefabs are saved in the Project folder for reuse in other scenes - projects. It supports lightmaps [ EDIT : not in 3.5 I am trying to solve this], 16 shaders, handles submeshes. Full source code is provided, so you can tweak the script as you need for your needs.

You should note that batching is not a magic thing. There are guidelines on how to use it efficiently in the Unity site. Be sure to check them and also be sure to read the rest of the documentation before you purchase this product. Having said that, if you plan to use batching, Batching Tools can save you many hours of work and you have nothing to lose by grabbing a copy.

[-EDIT- 05 July 2012 ]

Batching Tools v1.45 is now available for purchase in the asset store.

[-EDIT- 1 March 2012 ]

Here is the updated documentation for v1.4

754470–31600–$Batching Tools User Manual.pdf (967 KB)
Or you can browse the manual on Scribd

-Ippokratis

754470--27758--$bigcroped.jpg

Hi,
I decided to create a small FAQ that will hopefully clear some things up regarding Batching Tools.

Q. Is Batching Tools good for mobile only ?
A. Batching Tools is beneficial for every platform Unity supports, desktop, mobile and web. It speeds up production and helps you quickly optimize your rendering times.

Q. Can Batching Tools help me since I have Unity Pro ?
A. Yes. As a Unity Pro user, you can use BT in the following ways :

  • Use it to create shared materials for use with Unity static batching - occlusion culling or unity dynamic batching.
  • Use it to create combined meshes that will be seen as one, i.e a house made from different meshes - submeshes.
  • Use it to create skinned meshes for moving objects, so you get no VBO.Create performance spikes ( as is the case with Unity dynamic batching ).

Hi,
Video section is not so grest because I now learn how to make videos and my command in English is not so good… Thanks for your patience

Here is a video on Batching Tools v1.3 that shows the BTStatic mode.

Here is a short video that briefly explains what is batching and why batching tools can prove useful.

A short demonstration of batching tools.

Do this batching tool also only batch max. 300 polygons?

this is great, but we need more compatible shaders, and bumpmapping support

Hi,

Batching tools in this version provide a fast workflow to create shared materials for the built - in batching system.
So the answer is yes, it also only batch max. 300 polygons.
With two notable exceptions : I use a custom shader for batching materials with diffuse and transparent difuse shaders.
Those cannot be dynamically batched.
Also, I have some prototypes running for custom batching, static and dynamic. They will be included in a future release.
But :

  • Please do not make a purchase based on this expectation.
  • Be aware that as I add options, price will rise.

Batching tools currently provide support for 14 shaders, including mobile/bumped diffuse and mobile/ bumped specular.
If you wish support for a specific shader, please specify which one interests you. Most shaders can be batched with some compromises.

Thanks for your interest, if you have others questions, feel free to ask.
-Ippokratis.

bumped difuse and bumped specular shader support would be nice

Thank you for such a great tool, Ippokratis.

P.S. synadelfikous xairetismous apo Athina :slight_smile:

Bravo Ippokratis! This is a excellent tool!

Maart

Thanks for the feedback, I 'll try to include them in a future release.

immFX

King

Thanks for your kind words, I hope that batching tools will prove useful to many people :slight_smile:

I also uploaded a small video showing Batching Tools in action, check it out !
-Ippokratis.

Nice. can you make it combine at runtime instead of editor?

Hi imtrobin,

Thanks for your feedback. I have found that performing those operations in runtime is trivial
compared to the complexity of creating prefabs ( faster too, sicnce yo do not have the overhead
of saving the assets, still takes quite a few cycles though ). The problem is that using this approach, you load the application with unnecessary work, that can be done beforehand. I have not included this option because I have never thought of any potential benefits.

In one of the presentations of Unite 11, I think the Imagination Technologies one, the spokesman
explained that the more things you do in the studio, the best. If you bake as much info as possible
you offload the application and make it faster, since it has to process less data. The idea was something like:

As I understand it, since combining materials can be done in the studio, one should opt to do so.
If you could describe me the potential uses runtime combination of materials has, I can consider including
it in a future release.

Also, I provide the source code, so it is possible to make such modifications by yourself earlier if you wish so. If you have any other suggestions, I am curious to hear them, as well as the possible uses of combining materials during runtime.

Thanks,
-Ippokratis

When you making customizable parts for characters for large worlds (MMO), then combining at runtime is needed.

Hi imtrobin,

Indeed !
I haven’t thought of this, thanks for your feedback.
It is very useful, thanks for opening my eyes :slight_smile: I 'll try to add it in a feature version.

Update : I have made a minor GUI change, as well some new graphics for supporting the package. v1.1 is submitted and is pending review.

Batching Tools v1.2 is under development.
Desktop Bumped Specular and Desktop Bumped Diffuse are working. I am rewriting the documentation too. v1.2 will be submitted for review until the end of this week ( writing documentation and making video tutorials is killing me, because I never did it again and I am very unhappy with the results so far but I keep on trying ).

This is a cool looking tool and a huge time saver, It is now on my purchase list once 1.2 is released. Great work! I look forward to using it!

Hi GWPGearWorx,

Thanks for your kind words :slight_smile:
Feel free to jump on board whenever it seems right to you.
-Ippokratis

This tool is really useful to me.

I am using it to automate the texture atlasing process for big levels. Instead of planning out a texture atlas beforehand I now can focus more on creating the level artistically than worry about fitting everything in an atlas, adding/ subtracting textures etc.

It’s very cool to be able to bring my scenes into Unity, and use the Batching Tools to combine all the textures into an atlas and then re-export the mesh and texture back into my 3D app, thus skipping a painful manual step.

I recommend this to 3D artists, not just people looking to take advantage of static/ dynamic batching inside Unity.

One quick question I had about this. I’m wanting to reduce my drawcalls as much as possible (building for phones for my project), but I noticed that you hit ‘static’ every time you went to show the draw calls being reduced. Does this not work for moving objects?

@Airship :

Airship is the person who gave me the idea for this script, the first to support it financially and the first beta tester. Thanks a lot for the support !

@Salx :

It works, just use one of the supported Mobile shaders.
If you have some models that can be dynamically batched ( vertices < 300 using a Mobile shader ), send them over for a demonstration. Please have a look at the updated documentation in the first post and if you need further clarifications, do not hesitate to ask.

Hi,

@Salx
The best way I can think of for finding out if an object can be dynamically batched is to create two instances of it and see if they are batched. Besides that, keep in mind that some Desktop shaders do not support Unity built - in dynamic batching with materials combined using Batching Tools. Check the table at page 7 in the updated docs ( first post ). Just use the respective Mobile shaders instead.

@Those who bought Batching Tools so far :
Thanks for the support
Your feedback is important for me. Feel free to communicate with me either here or via pm for every little thing - idea that occurs to you. What are your annoyances from this script. You will get a script that is best suited to your needs and I will own a better product.

-Updates-
I have submitted Batching Tools v1.2 that supports Desktop Bumped Diffuse and Desktop Bumped Specular shaders too ( 16 shaders in total ). It should appear in the next days at the Asset Store.
The updated and re - written documentation is in the first post.
I plan to release next version in the next two weeks, which will include at least one custom Batching mode. Until then I will not update the video tutorials ( since I 'll have to rewrite them for the new version ).
If you have some ideas on what tutorials you would like to see, please share those ideas with me.

Thanks,
-Ippokratis