Un truc composé de pixels, ça reste une texture quoiqu'il arrive, même si tu modifies les pixels toi-même un à un.
Si tu veux faire ça une fois à l'init alors tu peux utiliser sf::Image et sa fonction setPixel, puis Texture::loadFromImage ; si tu veux le faire en temps réel alors il faudra travailler sur un tableau de pixels et utiliser Texture::update.
sf::Uint8 image[width * height * 4];
sf::Texture texture;
texture.create(width, height);
sf::Sprite sprite(texture);
// remplis / modifie "image"
texture.update(image);