Packer Pro. A texture combiner for Unity3D

Made by SMG
A blender that represents Packer Pro's functionality of combining textures
Packer Pro is a plugin for Unity3D and at its core is a texture combiner for your 3D models.

By combining multiple textures into one mega texture you can reduce draw calls dramatically. It also takes the worry of having to pack many objects manually into textures and rearranging them as your models change.

Packer Pro works with the free and commercial version of Unity and is available on the Unity asset store.

Download Now See it in action

Features

  • Packs at a UV level but with pixel precision
  • Much tighter results than other packers out there
  • Only packs the pixels that are used
  • Stacks and combines smartly shared mesh and texture elements of your models
  • Assign to selected GameObjects a single texture or generate a new combined mesh
  • Option to export as a OBJ and PNG files and use your Unity assets ubsude ab exterbak 3D software such as 3dsMax, Maya or Blender. combined mesh
  • Option to generate a Prefab of your packed set that contains a single mesh and Material.
  • Very easy and adaptive interface
  • No forced or destructive work flow, easy to remove or undo
  • You can add or remove packed textures at any time
  • Four supported languages:
    English, Japanese, Chinese, and Korean
  • No Quality compromises:
    No texture squashing or downsizing
  • Option to set custom Texel Density
  • Texture inspector to easily manage the packed textures

Quick Start

  1. From the Unity menu choose: Assets > Packer Pro
  2. In your scene select a few Game Objects and click the blue button "Add" in Packer Pro's packing list to add the objects to the packing list
  1. Press the now blue "Pack items" button to start the packing process
  2. Once the textures are packed you can assign them or create a new combined mesh. These buttons are located above the preview texture
  • Overview Packer Pro Interface example The Interface

    Top Area: Here you can setup a Set name, the maximum texture size and the padding size. The drop area lets you drag and drop GameObjects from the scene hierarchy unto here to add them to the packing list. The "Pack" button will pack the current packing list into a new texture atlas.

    Packing List: This list contains the objects to pack into a texture atlas. The Add button lets you add currently selected objects in your scene to the list. If you press "Remove Set" it will remove all of the items in the list. You can also remove individual items by clicking on the "X" button next to them.

    Advanced Settings: In this section you can customise the Texture settings and Material options.

    Preview Area: When you packed a texture this area will show you the generated texture. By pressing "Assign new Texture" you can assign the newly generated texture to all related objects. By pressing the "Create New Combined Mesh" button you can create a new Mesh Prefab that contains all the selected objects combined into a single mesh with a single texture.

  • Practical use Packer Pro Interface example Why do draw calls matter?

    What are draw calls: Draw calls are in many ways the main reason why your game performance runs really smooth or very slow. The basic rule is: the less draw calls your game requires the faster the game loop can run and thus gaining more fps.

    What is the common problem: When creating art assets it is not always convenient to pack all game assets into a single texture to reduce the draw calls. Instead artists keep iterating on art assets and like to pack single related objects into 1 texture.

    How can PackerPro help: By combining multiple textures from multiple objects into one single texture all objects can share the same single texture. Since with the single texture the renderer doesn't need to swap the shader or textures draw calls are combined. This means that ideally you have very few or only 1 draw call in your scene.

  • Seams in Mip Mapping Packer Pro Interface example Pixel Padding

    What is Pixel Padding: When you have UV elements its usually a good idea to keep some space between them and keep their texture source expanded for a few pixels.

    Why the pixel padding?: The reason to do this is because when Unity generates mip maps, lower resolutions of the same texture might blur out on the borders between these UV elements. By maintaining a pixel padding between them pixels under the UV islands are still preseverd when downsampled for a further distance mip map.

    What does PackerPro do: Packer Pro will try to fill out a padding area around each UV element based on the original texture's sourrounding pixels of that UV location.

  • Undo Packer Pro Interface example Easy to Undo

    To remove a packed texture do the following:

    Select object: Select an packed object from your scene. You should be able to recognize them by the little PackerPro gizmo in the viewport.

    Find the component: In your inspector panel look for the "Pp Component". It shows you a few things including the former used texture.

    Remove Set: Press the remove set button to remove the packed set from the related set.

    You can also edit existing packed sets, by pressing the "Edit Set" button instead.

  • Included 3D assets Packer Pro Interface example Free Assets

    Packer Pro comes with a few example models that you can use for your own stuff or try out PackerPro with.

  • Multi Lingual Packer Pro Interface example Choose your Language

    We added support for 4 Languages in PackerPro. Simply right click inside the PackerPro window and choose your language from the menu. Everything is translated including little but sometimes important elements such as tool tips wich reveal many times more detailed descriptions of what certain UI elements do.

  • Export as Prefab or OBJ file Packer Pro Interface example Export your results

    Create single Mesh You can save your packed result as a Prefab that consists only of a single Mesh and one Material with just 1 texture.

    Export single OBJ This option lets you export your packed result as a OBJ and PNG file that you can open and edit in other 3D software such as 3dsMax, Maya or Blender. Or like we do here at SMGstudio edit the textures on the 3D OBJ model inside Photoshop.

  • OTTTD Example Packer Pro Interface example Example of OTTTD

    For the game OTTTD we used PackerPro to pack the level textures into combined textures to reduce the draw calls at runtime.

    For the artists this meant that they didn't had to worry to much to UV-unwrap to many sub sets of assets into a single texture in advance but rather let PackerPro do the job afterwards.

FAQ

How do I remove a assigned packing from all related GameObjects?

If you already assigned the texture and UV's to your objects select one of them and from within the Packer Pro component choose "Edit Set". This should bring up the Packer Pro editor with the related GameObjects. Now press the "Remove all" button from the packing list area, this should remove all packing operations from all related GameObjects.

How does the packing work in detail?

In a first step the UV islands are collected and stacked if they are identical or match. For each UV shell a bounding box in pixel units is measured and used for a bin packing process. Since the algorithm uses bounding boxes of the UV shells its probably a good idea to unwrap your UV's in rectangular areas if possible. Sub UV islands that are within other UV island bounds are merged.

What happens in detail to my GameObjects when I assign the texture and UV's?

Packer Pro will swap the current material and main texture of the material with the packed texture. The UV's of the mesh of each object will be offset each UV cluster set to its packing target. In addition to that a Packing Pro component will be added to each GameObjects which contains instructions on how to revert the changes. From within the component you can remove the packing changes or edit the packing related objects in Packer Pro.

How can I optimizer my UV's of my 3D models to get optimal results in Packer Pro?

The key is to try to keep your UV clusters in formations of rectangles. Try to put smaller items into corners or holes and try to keep the borders as close as possible to a rectangular formation.

Can I pack multiple textures or channels e.g. Normal maps, specular maps and diffuse maps?

No not at this moment, but there are plans to implement something like this in the future.

Can I pack png sprites with this?

No not at this moment, but there are plans to implement something like this in the future.

How do I change the UI Language?

Right click inside the Packer Pro interface and select from the 4 supported languages.

I found an error in your translation and I have a better suggestion.

We are very keen in supporting other languages, if you have translation suggestions or improvements please email them to us.

Support & Contact

If you have a bug report or additional questions you can contact us at this uservoice support page or at the Unity forums inside this thread.

Uservoice support Unity forums