Superposition de couleurs ?

Superposition de couleurs ? - Algo - Programmation

Marsh Posté le 20-04-2005 à 20:21:12    

Bonjour,
 
Je programme actuellement un petit programme de rendu 2d en C++. Plus précisemment, mon programme dessine des formes 2d sur une matrice de pixels, puis la sauvegarde au format tga.
J'ai réussi à interpoler mes couleurs sur des droites, mais je suis arrêté par un petit problème.
Quand deux surfaces sont superposées, et que celle du dessus et en partie transparente, que celle du dessous soient en partie visible, comme dans la réalité.
Mes couleurs sont au format rgba, variant de 0 à 255, la transparence variant de 0 (totalement opaque) à 255 (totalement transparent, donc en réalité invisible).
 
Quelqu'un aurait une idée sur la formule à employer ?
 
Merci d'avance.

Reply

Marsh Posté le 20-04-2005 à 20:21:12   

Reply

Marsh Posté le 20-04-2005 à 21:12:20    

Couleur Final = Couleur1 * Alpha1/255 + Couleur2 * Alpha2/255

Reply

Marsh Posté le 20-04-2005 à 22:58:51    

hmm ça dépend du type d'effet que tu veux
 
la formule de Joel F est dite additive, les couleurs s'ajoutent jusqu'à saturation (flammes, et par extension tout matériel qui émet sa propre lumière).
 
Tu as d'autres moyens d'interpoler : modulation cela simule le passage par un medium qui ne laisse pas passer toutes les couleurs. Verre coloré, eau etc..
Couleur Final = CouleurObjet * CouleurFond  
 
Semi transparence (par exemple pour simuler un matériau à trous comme la soie, ou la fumée ou pour attenuer les bords d'une forme découpé dans une texture).  
Couleur finale = CouleurObjet * alphaObjet + (1 - alphaObjet) CouleurFond.
 
Quand on dit couleurFond, il s'agit de tout ce qui a été tracé auparavant (si il y a plus de deux objets).

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed