Aliasing on Sprites in Unity

With Unity 4.3 came native supports for 2D sprites.  I tried to use these for some game prototypes but found that when I had small sprites that were rotated, I ended up with some ugly aliasing:

aliasing

I tried a few things to get around this like resizing the texture and playing with Unity’s anti-aliasing settings.  Nothing worked until I did the following:

  • Instead of setting my .png files as Sprites, I switched then over to Textures and made Materials with the Shader set to Transparent/Diffuse.
  • Disabled the SpriteRenderers I was using and added MeshFilter (Quad) and MeshRenderers.
  • Edit the art files so the art didn’t go all the way to the edge.  Instead I left a transparent border around the sides.

After these changes, things looked smoother:

aliasing2

I did leave all my physics as RigidBody2D and 2D Colliders though, since they were working well for me.  I don’t think it would be tough to switch over to regular RigidBody and Colliders, but the PolygonCollider seems unique and I want the keep the option open to use that rather than modeling 3D bounding boxes in a separate program.

Leave a Reply