2010-06-15 9 views
3

Je regarde un exemple de code dans un livre qui crée un effet d'anti-crénelage en reproduisant plusieurs fois une scène (à différents décalages) sur une texture hors écran, puis en utilisant cette texture pour dessiner plusieurs fois un quad dans la vue principale. installer.Que fait la définition de la couleur GL avant de faire une opération de mappage de texture?

Pour accumuler la couleur « correctement », le code définissant la couleur comme ceci:

glColor4f(f, f, f, 1); 

où f est 1.0/number_of_samples, puis en liant la texture et le rendre offscreen. Comme les textures viennent avec leurs propres couleurs et données alpha, quel est l'effet (mathématiquement et intuitivement) que la définition de la «couleur» globale à l'avance permet d'obtenir?

Merci.

Répondre

5

L'environnement de texture par défaut est GL_MODULATE, ce qui signifie que la couleur vertex (définie avec glColor) est multipliée par la couleur de la texture.

donc, mathématiquement, il fait:

fragmentColor = texColor/numberOfSamples (alpha = 1.0) 

espoir qui l'explique.

+0

Merci beaucoup! Qui aide. Donc la question de suivi pour s'assurer que je l'obtiens est: Si je veux mapper une texture à un quad, et conserver exactement le RGBA qui est sur la texture, je peux faire l'une des deux choses suivantes: 1. Changer l'environnement de texture en GL_REPLACE ou 2. Réglez la couleur sur (1, 1, 1, 1). Est-ce correct? –

+0

Oui, c'est correct. –

+0

Génial, merci. –