Question

Je présente mes excuses à l'avance si cette question semble confus. Le comportement que je vois ne me fait pas de sens.

J'ai un framebuffer rendu à une texture. Je rends des rectangles solides de rouge, vert, bleu opacité variable à cette texture. Je rends ensuite la texture à l'écran (framebuffer 0). La Framebuffer attachée à la texture est persistante, et dans chaque boucle de rendu I dessiner plusieurs rectangles à la texture. - éventuellement remplir l'écran

J'ai trouvé que si je ne contiendraient pas à l'opacité blanche glColor() 100% avant de rendre la texture à l'écran, des rectangles de couleurs particulières ne seront pas rendus. C'est si est réglé avant glColor(1.f, 0.f, 0.f, 1.f) rendre la texture, seuls les rectangles bleus seront tirés au sort.

Je ne comprends pas pourquoi la couleur actuelle aurait un effet sur le rendu de la texture (que je suppose est comme un blit). J'ai essayé plusieurs appels en vain texParameter(...), mais je suis juste deviner.

Merci.

Était-ce utile?

La solution

Entre autres choses, glColor () définit la couleur utilisée pour un sommet. Lorsque le rectangle texturé est tracé, chaque échantillon de texel est multipliée par la couleur de sommet. Eh bien, en fait, un interpoloation linéaire des sommets de la primitive qui est simplement la couleur du sommet si tous les vertices ont la même couleur.

Ce tutoriel explique les implications de tout cela assez bien:

http://www.falloutsoftware.com/tutorials/gl/gl4.htm

La seule partie étrange ici est votre déclaration glColor (1, 0, 0, 1) ne provoque que des rectangles bleus à tirer. Je pense que N'être rectangles rouges si les paramètres sont à glColor rouge, vert, bleu et alpha. Si tout va bien il y a une faute de frappe ou de l'ordre de paramètre est différent de telle sorte que rouge = 0, vert = 0, bleu = 1 et alpha = 1.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top