2010-07-29 5 views
1

Je voudrais par exemple dessiner des formes A, B, C puis régler le mélangeur, puis dessiner la forme D et partout où la forme D est, la scène montre ma couleur de fond de (1,1,1,0). MerciFusion soustractive avec OpenGL?

+0

Si la couleur de ma source est (1,1,1,0) alors ne devrait pas y avoir un moyen? – jmasterx

Répondre

0

beaucoup plus simple que d'autres réponses:

  • Affichage formes A, B et C de façon normale
  • glDisable (GL_DEPTH_TEST);
  • glDisable (GL_ALPHA_TEST);
  • glDisable (GL_BLEND);
  • forme d'affichage D avec la couleur (1,1,1,0)

et vous avez terminé.

+0

Parfois, la solution la plus simple est la meilleure;) merci – jmasterx

+0

@Jex vous pouvez vouloir désactiver les écritures de profondeur, selon ce que vous essayez de faire – Calvin1602

4

Je ne suis pas au courant que cela soit possible directement. Il y a quelques possibilités pour obtenir le même effet. Le plus propre serait probablement de commencer par remplir le tampon du stencil avec 1, puis dessiner la forme D dans le tampon du stencil avec des 0, puis dessiner tout le reste (avec le tampon stencil activé, bien sûr).

+0

+1 J'étais sur le point de suggérer ça! – Blindy

0

glBlendEquation peut le faire.

+0

Cela ne se rapproche même pas de ce que demande l'op. – Blindy

+0

Ce n'est pas? Si j'ai une forme définie à 1,1,1,0 le résultat de l'opération SUBTRACT devrait faire le nouveau pixel 1,1,1,0? – jmasterx

+0

@Blindy Le titre de la question fait référence au mélange soustractif, mais maintenant que vous le mentionnez, le corps de la question fait référence à un autre sujet complètement différent. –