使用glBlendFunc在Cocos2D中混合模式


9

我们一直在尝试复制Photoshop和Quartz 2D中可用的最常见的混合模式,但我们只提出了3种,这是经过长时间的在线搜索后才提出的。

对于任何有兴趣的人,这里是:

  • = GL_DST_COLOR,GL_ONE_MINUS_SRC_ALPHA
  • 屏幕 = GL_MINUS_DST_COLOR,GL_ONE
  • 线性道奇 = GL_ONE,GL_ONE

您可以在这个非常有用的网站上在线尝试这些和其他类似的模式:http : //www.andersriggelsen.dk/glblendfunc.php

现在,如果有人可以为我们提供可以在Cocos2D中重新创建的其他混合模式,我们将不胜感激,因为我们的Open GL经验确实非常有限。

先感谢您!

阿尔吉里斯


1
Linear Dodge(Add)= GL_ONE,GL_ONE对您的行为与andersriggelsen.dk/glblendfunc.php和photoshop中的行为相同吗?它使精灵透明?不为我工作
Rakka Rage

Answers:


4

坏消息是,即使有成千上万的组合可以使用,也无法使用glBlendFunc实现所有photoshop的混合模式。

好消息是,当您转到着色器时,会看到橙色的书(OpenGL着色语言, http:)包含一章带有着色器的章节,以模拟photoshop的混合模式。

幸运的是,在预着色器世界中,您可能需要的只是三种最常见的混合模式。

  • 新增:GL_ONE,GL_ONE
  • 混合:GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA
  • 乘:多种,例如您提到的那一种:GL_DST_COLOR,GL_ONE_MINUS_SRC_ALPHA

编辑

有关stackoverflow的相关(几乎重复)问题:https : //stackoverflow.com/questions/818230/photoshop-blending-mode-to-opengl-es-without-shaders

Photoshop混合着色器:http : //mouaif.wordpress.com/2009/01/05/photoshop-math-with-glsl-shaders/

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.