Mischmodi in Cocos2D mit glBlendFunc

9

Wir haben versucht, die gängigsten Mischmodi zu replizieren, die in Photoshop und Quartz 2D verfügbar sind, aber wir haben nur 3 entwickelt, und das nach einiger langer Online-Suche.

Für alle Interessierten sind sie hier:

  • Multiplizieren = GL_DST_COLOR, GL_ONE_MINUS_SRC_ALPHA
  • Screen = GL_MINUS_DST_COLOR, GL_ONE
  • Lineares Ausweichen = GL_ONE, GL_ONE

Sie können diese und andere solche Modi online auf dieser sehr nützlichen Website ausprobieren: http://www.andersriggelsen.dk/glblendfunc.php

Jetzt würden wir uns freuen, wenn uns jemand zusätzliche Mischmodi zur Verfügung stellen könnte, die wir in Cocos2D neu erstellen können, da unsere Open GL-Erfahrung wirklich sehr, sehr begrenzt ist.

Danke im Voraus!

Argiris

Argiris
quelle
1
Linear Dodge (Add) = GL_ONE, GL_ONE verhält sich dies für Sie genauso wie bei andersriggelsen.dk/glblendfunc.php und Photoshop? macht es Sprites transparent? funktioniert nicht für mich
Rakka Rage

Antworten:

4

Schlechte Nachrichten sind, dass Sie nicht alle Mischmodi von Photoshop mit glBlendFunc implementieren können, obwohl es eine Unmenge von Kombinationen gibt, die Sie verwenden können.

Wenn Sie zu Shadern wechseln, enthält das orangefarbene Buch (OpenGL Shading Language, http://www.amazon.com/exec/obidos/ASIN/0321637631/khongrou-20 ) ein Kapitel mit Shadern, um die Mischung des Photoshops zu emulieren Modi.

Glücklicherweise sind in der Pre-Shader-Welt wahrscheinlich nur die drei häufigsten Mischmodi erforderlich.

  • Hinzufügen: GL_ONE, GL_ONE
  • Mischung: GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA
  • Multiplizieren: verschiedene, wie die von Ihnen erwähnte: GL_DST_COLOR, GL_ONE_MINUS_SRC_ALPHA

EDIT :

Verwandte (fast doppelte) Frage zum Stackoverflow: /programming/818230/photoshop-blending-mode-to-opengl-es-without-shaders

Photoshop Blending Shader: http://mouaif.wordpress.com/2009/01/05/photoshop-math-with-glsl-shaders/

Jari Komppa
quelle