Мы пытались воспроизвести наиболее распространенные режимы наложения , которые доступны в Photoshop и Quartz 2D, но мы только придумали 3, и это после долгого поиска в Интернете.
Для тех, кто заинтересован, вот они:
- Умножить = GL_DST_COLOR, GL_ONE_MINUS_SRC_ALPHA
- Экран = GL_MINUS_DST_COLOR, GL_ONE
- Линейный Dodge = GL_ONE, GL_ONE
Вы можете попробовать эти и другие подобные режимы в действии онлайн на этом очень полезном веб-сайте: http://www.andersriggelsen.dk/glblendfunc.php
Теперь мы были бы признательны, если бы кто-нибудь мог предоставить нам дополнительные режимы наложения, которые мы можем воссоздать в Cocos2D, поскольку наш опыт работы с Open GL действительно очень ограничен.
Заранее спасибо!
Argiris
opengl-es
cocos2d-iphone
ios
blending
Argiris
источник
источник
Ответы:
Плохая новость заключается в том, что вы не можете реализовать все режимы наложения фотошопа с помощью glBlendFunc, даже если есть несколько комбинаций, которые вы можете использовать.
Хорошей новостью является то, что при переходе к шейдерам оранжевая книга (OpenGL Shading Language, http://www.amazon.com/exec/obidos/ASIN/0321637631/khongrou-20 ) содержит главу с шейдерами для эмуляции смеси фотошопа. режимы.
К счастью, все, что вам, вероятно, когда-либо понадобится в мире пре-шейдеров, это три самых распространенных режима смешивания;
РЕДАКТИРОВАТЬ :
Смежный (почти дублирующий) вопрос по stackoverflow: /programming/818230/photoshop-blending-mode-to-opengl-es-without-shaders
Фотошоп смешивания шейдеров: http://mouaif.wordpress.com/2009/01/05/photoshop-math-with-glsl-shaders/
источник