I have some full size backgrounds for an iPad children’s project, that were getting terribly artifacty. I first tried to register and download Pvrtextool, but they seem to be having issues with the site and I can’t download it. I just purchased TexturePacker which seems very capable and can output a background.pvr images, but when I drag it into the asset folder, it doesn’t show up as a usable texture image.
If anyone is familair with this product, or the use of any of the external tools for creating .pvr images I could really use some help. Based on threads I’ve read here recently, I know that we can create or pvrt textures externally then drag them into the asset folder for use. Is there something else that I need to do with them? A renaming or anything? Here’s a link to the product in case it is useful to anyone else.
I am Andreas Loew - author of TexturePacker. I found this post via google…
I could help with questions concerning TexturePacker but not with special Unity questions.
Do you think it’s a problem with the PVR file created by TexturePacker?
Or is it more related to Unity’s Interface?
Are you using TexturePacker for the packing or for the compression? Unity can do PVRTC compression on its own, so if you’re having trouble importing .pvr files as sprite sheets (which should work as of Unity 3.1), then just use PNG and let Unity do the compression.
The Unity pvrtc compression is pretty horrible in the case of these backgrounds. They are really simple, with huge areas of single colors. These are full screen background images, and I was hoping that a tool such as PVRTexTool or TexturePacker would be able to save out .PVR images and I could just import them into my projects to avoid Unity’s compression.
I’d like to give PVRTexTool a try as well, but something is wrong with the registration form on their site, so I can’t register to download it.
This is a real drag as this is a client project and all else is approved, except artifacts and some color creep in the 1024x768 background images. Any helpful hints would be hugely appreciated.
1024x768 won’t go to PVR for iOS, you can only use such an image uncompressed actually (RGB16 or RGB32)
For iOS usage it would need to be 1024x1024 or 512x512
Indeed not, Imagination Technologies PVR tool for Windows creates PVRs worlds ahead of what Unity creates.
But thats not that much Unity’s fault, as unity relies on the iPhone SDKs tool
So here’s an interesting thought. One of the mighty useful options in Unity would be to resize an 1024x768 to a1024x1024 to take advantage of PoT compression. Since he artwork I have is trimmed to fit the Ipad screen, would it be sensible to ‘pad’ it up to 1024x1024 then process it through something like TexturePacker or PVRTexTool?
And for my own clarity, is PVR and PVRTC the same image type (.pvr)?
Damn, I really wanna give PVRTexTool a spin to see if it might save my butt. Any chance someone could email me a copy. I’d get it direct but the registration form is wonked.
PVR is a container format for raw pixel data or PVRTC2/PVRTC4 compressed image data.
It can contain quite a lot of different formats and mipmap levels and other stuff.
If you use TexturePacker you don’t have to care about the size since it chooses the next POT size that fits. In your case 1024x1024. Image will be placed in the top left corner.
Right, knew that. I thought since I was bypassing Unity’s internal compression I’d have to make up for the PoT aspect difference manually. Got the image in with TP, it just came in upsidedown. will test on the device to see how it looks.
Interesting observation… I imported the .PVR image into the image assets folder fine, Unity sees its size as 2 meg, which is the same as if importing a PNG and setting it to RGB 16bit.
So I wonder if there is a memory savings for all the effort?
For iPhone/iPad you have 4 choices which are supported by the hardware:
bbp = bits per pixel, memory sizes for 1024x1024
Use RGBA8888 with is 32bbp = 4MB
Use RGBA4444, RGB565,… which is 16bbp (with color reduction) = 2MB
PVRTC4 with 4bbp (lossy compression) = 512k
PVRTC2 with 2bbp (lossy compression) = 256k
Usually you would go for 1) if not possible use 2) the other boths come with heavy impact on texture quality.
If you need color reduction there are several ways: Simple nearest neighbour, or linear quantization or you can apply dithering to keep the visual impression of an image by adding some grain to it - which is in many cases better than just setting fixed colors and removes “banding”. I am not sure now good dithering works on textures used on 3d objects - guess it’s only good for background images…
I’m trying to export PVR image from TexturePacker to Unity, but no matter, what image format i choose inside PVR, Unity imports it upside dows and writes to console “Non flipped PVR formats are not yet supported” Did i missed some important setting there?
@Lisan: Sorry for that. I filed a bug report. You can check the status: ticket 239.
I scheduled the fix for 2.1.11 which is the next TP release coming soon.