PixelAndPolygon

Blog

Pico Pixel 0.6.5

Pico Pixel 0.6.5 has been released. As I mentionned in a previously blog post, there is partial support for PVR texture files. Although support for more format in PVR files will improve in subsequent releases, head over to Pico Pixel Support and let us know if you need to prioritize support for a specific texture format.

Also making a debut in Pico Pixel 0.6.5 is the texel grid. The grid shows up one texel have a size greater than 5x5. Use the 9 key to turn the grid on or off.

Texel Grid

Cut off from this release is support for alternative view of 2D and volume textures. Alternative view for 2D textures would show all the mip levels (if any) at the same time.

Alternate View 2D texture

Alternate View 2D texture

For volume textures, the alternate view shows the depth textures spreaded out in a row.

Alternate View 2D texture

Alternative views for cubemaps is still supported and are accessed by pressing the Enter key.

Texel Grid

Pico Pixel 0.6.5 will have a grid to isolate individual texels in textures. The grid can be turned on and off and only shows up once texels reach a size of 5x5 pixels on screen.

Rather than a grid made of straight lines going from top to bottom and from left to right, the grid places two small crossing lines (at 90 degrees) at the the corners of texels. The result is rather neat.

Texel Grid

OpenGL extension GL_ARB_draw_instanced is used to optimize the rendering of the grid.

PVRTC

Pico Pixel now supports PVR files and PVRTC compressed textures. PVRTC compression is known in OpenGL ES as:

  • GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG
  • GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG
  • GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG
  • GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG

PVR files may embed even more compressed texture formats. Initially, Pico Pixel will support a subset of those formats with more to be added in the future.

Support for PVRTC will debut in Pico Pixel 0.6.5.

New Blogging Platform

I have changed the blogging platform of this site. I ported back some of the previous articles I believe are worth having here.

Here is something that has been in development lately...

Pico Pixel On Linux

Pico Pixel 0.6.2

I was pretty confident of the support for KTX files in Pico Pixel. However, this being a new file format, there aren’t many references viewer for it. The only one I found is Mali GPU Texture Compression Tool.

It turns out Mali’s tool does not correctly reproduce the mipmaps of texture it generates. While the Mali’s texture compression works, the reproduction of the rendering in the tool’s interface is wrong. Unfortunately, Pico Pixel also had the same issue.

In all the pictures, both Pico Pixel and Mali’s tool are using texture rgb-mipmap-reference.ktx from Khronos KTX SDK.

This is what Mali’s tool (v4.1) shows.
Mali gpu texture compression tool

Prior to release 0.6.2, Pico Pixel showed the same mipmap chain except for the last mip (level 6). Indeed, after a long investigation at the time, I came with the conclusion that level 6 in Mali’s tool was wrong and the last mip level should be pink (0, FF, FF) instead of black.

Last mip of rgb-mipmap-reference.ktx

Still, Pico Pixel had level 5 wrong just like Mali’s tool.

Incorrect decoding of level 5

Thanks to a bug report, this problem is fixed in 0.6.2. Here is what Pico Pixel shows now.

Zoomed view of rgb-mipmap-reference.ktx

A bug has also been submitted for the problem in Mali’s tool but I don’t know when it is going to be addressed.

Pico Pixel 0.6.1

This release makes changes to Pico Pixel Client API. Now, client programs may attempt to auto reconnect after Pico Pixel is shutdown. When Pico Pixel restarts, client programs don’t need to be restarted to initiate the socket connection.