OpenGL ES - Wie zeichne ich ein gefülltes Polygon?

8

Ich habe versucht zu googeln und auf Stack zu suchen, aber ich habe nichts gefunden :-(
( Mapping unregelmäßige Formen oder andere Polygone ( Cartoons, Sprites) zu Dreiecken in OpenGL ES )

Ich möchte ein gefülltes Polygon in OpenGL ES auf dem iPad zeichnen (2D, brauche kein 3D) (Ich bin neu in OpenGL & amp; OpenGL ES) Es scheint einfach auf OpenGL, aber mit ES mit nur kann Dreieck zeichnen.

Aber ich kann hier kein gutes Tutorial finden :-( Gibt es einen Wrapper / Bibliothek oder irgendetwas anderes, das mir helfen könnte?

Ich möchte nicht CoreGraphics verwenden , es ist zu langsam für das, was ich tue ^^
Und wenn möglich, vermeiden Sie zu große Bibliotheken wie Cocos2D.

Bearbeiten : Hier finden Sie einige nützliche Links zum Bearbeiten des Problems (wird bearbeitet)
Links
- Polygon-Triangulation
Ссылка
Ссылка (WIKI) Ссылка (Polygon OHNE Löcher) Ссылка (Polygon MIT Löchern, C-Code)

Lösung
Ich werde versuchen, Polygon Tessellation zu verwenden, um Dreiecke zu erhalten. Zuerst werde ich versuchen ( Ссылка ) und wie ich Polygon mit Löchern brauche, die zweite (< a href="http://www.cs.unc.edu/~dm/CODE/GEM/chapter.html"> Ссылка ). Wenn jemand einen besseren Weg hat, bitte, sagen Sie mir einen Kommentar ^^

Danke: -)

    
Vinzius 06.10.2010, 12:36
quelle

6 Antworten

3

Cocos2D ist eine coole Bibliothek, die OpenGL umschließt und viele nützliche Funktionen bietet (hauptsächlich für Spiele, aber nicht darauf beschränkt).

>

Für die Polygon-Tessellation verwenden Sie: Ссылка Ich habe es vorher benutzt und es hat gut funktioniert.

    
Krzysztof Zabłocki 06.10.2010, 12:42
quelle
6

Ich habe nicht versucht, OpenGL ES zu verwenden, aber nach einem kurzen Blick in die Dokumentation sollten Sie in der Lage sein, ein konvexes Polygon zu zeichnen, indem Sie z. ein "Dreiecksfan":

%Vor%

Sie können sich einen "Dreiecksfächer" vorstellen, wie die Speichen eines Fahrradrades, das den Bereich des Rades in "Dreiecke" teilt (der äußere Rand eines Fahrradrads ist natürlich rund, aber ich hoffe, Sie haben die Idee ).

UPDATE: Ich habe ein kleines Diagramm im Internet gefunden:

    
S.C. Madsen 06.10.2010 13:02
quelle
2

Auf der Wikipedia Polygon Triangulation Talk Seite argumentiere ich, dass mehr Dreiecke tatsächlich schneller sein werden.

Ich habe eine Triangulations-Engine geschrieben, die Löcher unterstützt und in O (n log (n)) Zeit. Ich habe es unter Gdk getestet und daraus eine Android App gemacht.

    
Nic Roets 21.01.2011 22:02
quelle
2

Was ist Ihre endgültige Wahl? Ich habe kürzlich 5 der libs getestet, die in folgendem Link aufgelistet sind: Ссылка

Aber keiner von ihnen ist befriedigend ...

  1. iphone-glu: (http://code.google.com/p/iphone-glu/)

    • Bugs im Algorithmus? Es gibt kleine Löcher, die nicht gefüllt sind, oder manchmal zeichnen Sie außerhalb des Polygons
  2. Triangulte: (http://www.flipcode.com/archives/Efficient_Polygon_Triangulation.shtml)

    • unterstützt keine Löcher ...
  3. Triangulation: (http://www.cs.unc.edu/~dm/CODE/GEM/chapter.html)

    • Buggy, läuft manchmal außerhalb der Grenzen oder negativer Index usw. ...
  4. poly2tri: (http://code.google.com/p/poly2tri/)

    • Buggy, Absturz in bestimmten Fällen
  5. openglespolygon: (https://github.com/nroets/OpenGlEsPolygon)

    • unvollständiger Algorithmus? An den Rändern des Polygons befinden sich winzige Löcher (nicht ausgefüllt)
Dong Ma 27.10.2011 10:35
quelle
0

In Nicht-ES OpenGL würde man eher den Tessellator aus der GL Utility (glu) library verwenden. Ich fand dieses Projekt , das darauf abzielt, Glu für das iPhone verfügbar zu machen, und es behauptet, Polygon-Tessellation zu unterstützen - wenn sie es ist funktioniert, dann wäre es eine gute Option.

    
Daniel Paull 06.10.2010 13:18
quelle
0

Wenn Sie Triangulation von Polygonen mit Löchern durchführen müssen, können Sie GPC verwenden. Es gibt eine Funktion für die Triggerung namens gpc_polygon_to_tristrip .

Verwenden Sie zum Rendern GL_TRIANGLE_STRIP .

Aber lesen Sie zuerst die GPC-Lizenz!

    
Petr B. 31.01.2014 14:09
quelle