Overlay Color Blend in OpenGL ES / iOS / Cocos2d

Ich bin versucht, BlendModes, um ein Graustufen-Bild um wiederverwendbare statische Ressourcen

Ich habe die Suche im internet für Stunden, und ich habe meine eigenen tests, aber ich fand keine Lösung.

Ich begann mit diesem Bild:

Overlay Color Blend in OpenGL ES /iOS /Cocos2d

Und die grundlegende Idee war es, ziehen Sie ein Rechteck über Sie in einer bestimmten Farbe, und wenden Sie eine Füllmethode, um das Bild nur dort, wo der alpha ist 1.0

Hier ist der Code (das ist ein Teil der Cocos2d Projekt, obwohl ich denke, es kann angewendet werden auf generische OGL N):

-(void)draw
{
    [super draw];

    glBlendColor(0,255,0,255);

    glBlendFunc(GL_ZERO, GL_SRC_COLOR);
    glColor4ub(255, 0, 255, 255);
    glLineWidth(2);
    CGPoint vertices2[] = { ccp(0,100), ccp(100,100), ccp(100,0) };
    [ DrawingHelper  drawPolygonWithPoints:vertices2 points:3 closePolygon:YES];

}

*Zeichnen Helfer ist die Logik zum zeichnen des Dreiecks.

+(void)drawPolygonWithPoints:(CGPoint *)poli points:(int)points closePolygon:(BOOL)closePolygon
{
    glDisable(GL_TEXTURE_2D);
    glDisableClientState(GL_TEXTURE_COORD_ARRAY);
    glDisableClientState(GL_COLOR_ARRAY);
    glVertexPointer(2, GL_FLOAT, 0, poli);

    if( closePolygon )
        glDrawArrays(GL_TRIANGLE_FAN, 0, points);
    else
        glDrawArrays(GL_LINE_STRIP, 0, points);

    glEnableClientState(GL_COLOR_ARRAY);
    glEnableClientState(GL_TEXTURE_COORD_ARRAY);
    glEnable(GL_TEXTURE_2D);
}

Und hier einige Ergebnisse:

Overlay Color Blend in OpenGL ES /iOS /Cocos2d
Overlay Color Blend in OpenGL ES /iOS /Cocos2d

Wie Sie sehen können, ist eine gute Annäherung, aber diese beiden Bilder hat Fehler:

OpenGL Fehler 0x0502 in -[EAGLView swapBuffers]

Meine Fragen sind:

  1. Wie kann ich die entfernen, oder diesen Fehler beheben?
  2. Wie kann halten nur die alpha-Version von der Bild (Schirm) und wenden Sie die Mischung overlay-Farbe?

[Update]Dies ist ein Beispiel von dem, was ich möchte (mit dem richtigen Mischungen):

Overlay Color Blend in OpenGL ES /iOS /Cocos2d

  • Können Sie fügen Sie bitte eine "bearbeitete" Bild, was Sie sich wünschen? Wenn ich mit Künstlern arbeiten ist es viel einfacher zu arbeiten, eine shader-oder postprocessing-filter, die aus einer photoshop Datei mit allen Ebenen, als eine textuelle Beschreibung. Sie wissen, ein Bild → 1000 Worte.
  • Done @datenwolf, Hoffe es hilft.
  • Ein Wort der Vorsicht, wenn Ihre Absicht ist, zu verwenden, dass die banner in Ihrer app: die Fahnen der ein football-team sind Marken. Sie können nicht verwenden Sie in irgendeiner Weise, die Sie wünschen. Zum Beispiel wäre es sehr wahrscheinlich ein Verstoß gegen Markenrecht die Verwendung der banner in einer Weise, dass Ihre app wirbt, oder macht es den Anschein, offizielle, oder etwas ähnliches. Einige fair use " gelten kann, zum Beispiel die Anzeige der Liga-Ergebnisse mit team-Banner in einer Sport-app, aber auch dies kann der Genehmigung durch die FIFA, die UEFA oder andere organisation.
  • Nein, das ist nur die Prüfung Vermögenswerte 🙂 vielen Dank für die Beratung @LearnCocos2D
  • Gut, Los dann. 🙂
InformationsquelleAutor Mc- | 2012-01-07
Schreibe einen Kommentar