Voici un code possible avec les images, mais faire cela à chaque frame, pauvre ordi.
//J'assume que les textures sont de meme dimension
bool divideTexture( const sf::Texture& TextureA, const sf::Texture& TextureB, sf::Texture& Result )
{
sf::Image
ImageA = TextureA.copyToImage(),
ImageB = TextureB.copyToImage(),
ImageC;
ImageC.create( TextureA.getSize().x, TextureA.getSize().y );
sf::Color ColorA, ColorB, ColorC;
for( unsigned int x(0); x < ImageA.getSize().x; x++ ) // x++ et ++x sont les memes dans une boucle
{
for( unsigned int y(0); y < ImageA.getSize().y; y++ )
{
ColorA = ImageA.getPixel( x, y );
ColorB = ImageB.getPixel( x, y );
ColorC.r = ( ColorB.r != 0 ) ? 255 * ( (ColorA.r / 255.f) / (ColorB.r / 255.f) ) : ( 255 );
ColorC.g = ( ColorB.g != 0 ) ? 255 * ( (ColorA.g / 255.f) / (ColorB.g / 255.f) ) : ( 255 );
ColorC.b = ( ColorB.b != 0 ) ? 255 * ( (ColorA.b / 255.f) / (ColorB.b / 255.f) ) : ( 255 );
ColorC.a = 255; //opaque
ImageC.setPixel( x, y, ColorC );
}//for y
}//for x
return Result.loadFromImage( ImageC );
}