ผสมผสานโหมดใน Cocos2D ด้วย glBlendFunc


9

เราพยายามทำซ้ำโหมดการผสมที่พบบ่อยที่สุดที่มีอยู่ใน Photoshop และ Quartz 2D แต่เราได้มากับ 3 เท่านั้นและหลังจากการค้นหาออนไลน์นาน ๆ

สำหรับผู้ที่สนใจนี่คือ:

  • คูณ = GL_DST_COLOR, GL_ONE_MINUS_SRC_ALPHA
  • หน้าจอ = GL_MINUS_DST_COLOR, GL_ONE
  • Linear Dodge = GL_ONE, GL_ONE

คุณสามารถลองโหมดเหล่านี้และโหมดอื่น ๆ แบบออนไลน์ได้ที่เว็บไซต์ที่มีประโยชน์มากนี้: http://www.andersriggelsen.dk/glblendfunc.php

ตอนนี้เราจะขอบคุณถ้าใครสามารถให้โหมดการผสมเพิ่มเติมที่เราสามารถสร้างขึ้นใหม่ใน Cocos2D เนื่องจากประสบการณ์ Open GL ของเรานั้น จำกัด จริงๆ

ขอบคุณล่วงหน้า!

Argiris


1
Linear Dodge (เพิ่ม) = GL_ONE, GL_ONE ทำเช่นนี้กับคุณที่andersriggelsen.dk/glblendfunc.phpและ photoshop หรือไม่ มันทำให้ผีสางโปร่งใสหรือไม่ ไม่ทำงานสำหรับฉัน
Rakka Rage

คำตอบ:


4

ข่าวร้ายคือคุณไม่สามารถใช้โหมดผสมผสานของ photoshop ทั้งหมดกับ glBlendFunc แม้ว่าจะมีชุดค่าผสมหลายพันล้านชุดที่คุณสามารถใช้ได้

ข่าวดีคือเมื่อคุณย้ายไปที่เฉดสีหนังสือสีส้ม (OpenGL Shading Language, http://www.amazon.com/exec/obidos/ASIN/0321637631/khongrou-20 ) มีบทที่มีเฉดสีเพื่อเลียนแบบการผสมผสานของ photoshop โหมด

โชคดีที่ทุกสิ่งที่คุณอาจต้องการในโลก pre-shader คือโหมดการผสมผสานที่ใช้กันมากที่สุดสามโหมด

  • เพิ่ม: 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

Photoshop shaders ผสม: http://mouaif.wordpress.com/2009/01/05/photoshop-math-with-glsl-shaders/

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.