TL;DR: Note that Pixmap.drawPixel(x, y, colour) expects a RGBA8888 colour, even if the pixmap is not RGBA8888.

Today I wanted to create a background with a bunch of different pixels and I had a lot of problems, displaying different colours from what I had in my array.

The process is simple: Pixmap > Texture > Sprite, with the colours being filled up in the pixmap using Pixmap.drawPixel(x, y, colour).

My Pixmap was created as RGB888, so I expected to draw the pixel with a RGB888 colour.

NO! you need RGBA888!

Ouch!

At the end of the day is not such a big deal, because all I needed to do was to change:

//
pix.drawPixel(i, 0, Color.rgb888(color.x, color.y, color.z));
//

to

//
pix.drawPixel(i, 0, Color.rgba8888(color.x, color.y, color.z, 1));
//

HTH,