2011-04-30 4 views
0

Je souhaite mettre en place un mélange (sans utiliser de shaders de préférence) pour produire ce qui suit.OpenGL Blending Couleur sur monochrome

J'ai un quad texturé noir/blanc et un quad d'une couleur unie (par exemple rouge). Je voudrais que le mélange montre la couleur (rouge) où tous les pixels blancs sont et noir sinon. Est-ce possible et à quoi ressemble le code?

enter image description here

+0

Je ne suis pas sûr comment faire cela en utilisant OpenGL, mais en utilisant un AND binaire sur les deux textures conduirait à ce résultat. – schnaader

+0

Je veux dire "utiliser le tampon stencil" mais malheureusement je ne peux pas donner de détails car je n'ai pas utilisé de stencils au-delà des tutoriels OpenGL. – Zilchonum

Répondre

1

Ce généralement pas fait en mélangeant, mais vous pouvez essayer glBlendFunc(GL_SRC_COLOR, GL_ZERO); dessiner le quad rouge sur le dessus du texte. Toutefois, cela ne fonctionnera que s'il n'y a pas d'autre contenu dans le framebuffer.

+0

Comment cela se passe-t-il habituellement? –

+0

Depuis la disponibilité des FBO et des shaders: Rendez chaque couche dans sa propre texture, puis combinez les textures de la manière désirée (multitexturing avec le mode GL_MODULATE, ou en utilisant un fragment shader approprié). Techniquement, vous implémentez des couches similaires à celles de Photoshop. Sans l'utilisation de couches, ce genre de combinaison devient un peu lourd. – datenwolf