Режими змішування в Cocos2D з glBlendFunc


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, оскільки наш досвід GL GL є дуже-дуже обмеженим.

Заздалегідь спасибі!

Аргіріс


1
Лінійний Dodge (Add) = GL_ONE, GL_ONE чи поводиться з вами так само, як на andersriggelsen.dk/glblendfunc.php та Photoshop? це робить спрайти прозорими? не працює для мене
Rakka Rage

Відповіді:


4

Погана новина полягає в тому, що ви не можете реалізувати всі режими поєднання фотошопу з glBlendFunc, навіть якщо ви можете використати мільйон комбінацій.

Хороша новина полягає в тому, що, коли ви переходите до шейдерів, помаранчева книга (OpenGL Shading Language, http://www.amazon.com/exec/obidos/ASIN/0321637631/khongrou-20 ) містить розділ із шейдерами для імітації суміші фотошопу режими.

На щастя, все, що вам, можливо, знадобиться у світі перед шейдером, - це три найпоширеніші режими накладання;

  • Додати: GL_ONE, GL_ONE
  • Суміш: GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA
  • Множте: різні, наприклад, згаданий вами: GL_DST_COLOR, GL_ONE_MINUS_SRC_ALPHA

Редагувати :

Пов'язане (майже повторне) запитання про stackoverflow: /programming/818230/photoshop-blending-mode-to-opengl-es-without-shaders

Фотошопи для змішування шейдерів: http://mouaif.wordpress.com/2009/01/05/photoshop-math-with-glsl-shaders/

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.