Ich fing an, etwas Android-Entwicklung zu lernen, und eines der ersten Dinge, von denen ich dachte, ich könnte sie machen, ist ein einfaches Spiel. Ich stehe jedoch sofort vor einer schwierigen Frage. Soll ich OpenGL ES 1.0 oder 2.0 verwenden?
Das Spiel, das ich mir vorgestellt habe, wird grafisch ziemlich einfach sein und 2D- (gekachelte Top-Down-Grafiken) und isometrische Ansichten mit fester Kamera verwenden. Ich habe OpenGL noch nie in einer Desktop-Umgebung verwendet, daher weiß ich nicht, ob Shader etwas sind, das ich verwenden werde usw.
Laut dieser Seite sollte ich OpenGL ES 2.0 generell für Neuentwicklungen verwenden. Mein eigenes Handy hat jedoch erst kürzlich (letztes Jahr) ein Update erhalten, um es auf das erforderliche Android 2.2 zu bringen. (Ich weiß nicht einmal, ob es OpenGL ES 2.0 unterstützt)
Meine Frage ist also im Grunde, ob ich von den Funktionen von OpenGL ES 2.0 über 1.0 profitieren kann und / oder ob es sich im Hinblick auf die Kompatibilität lohnt.
Antworten:
Wenn Sie keine oder nur wenig Erfahrung mit OpenGL haben, würde ich 2.0 nicht empfehlen.
Mit OpenGL ES 2.x müssen Sie Ihre eigenen Routinen für die Matrixmanipulation schreiben und Ihre eigenen Shader schreiben. Dies ist eine Menge Arbeit, viel kann schief gehen, und das Debuggen vieler dieser Dinge ist sehr schmerzhaft.
Nur wenn Sie der Meinung sind, dass Sie einige der Funktionen von OpenGL ES 2.0 benötigen, sollten Sie diese verwenden.
Bearbeiten: Wenn das oben Genannte nicht ausreicht, um Sie abzuschrecken, empfehlen wir Ihnen, ein einfaches Beispiel in OpenGL ES 1.x zu erstellen und dann dasselbe Beispiel in OpenGL ES 2.x zu erstellen. Sie können beispielsweise einen rotierenden Würfel mit einer darauf angewendeten Textur zeichnen.
quelle
Es hängt davon ab. Ich habe keine Erfahrung mit ES, aber die allgemeine Frage ist immer dieselbe: Alte und veraltete feste Funktion im Vergleich zu einem modernen Shader-zentrierten Ansatz.
Während Stephelton insofern richtig ist, als die alte ES 1-API für Anfänger leichter zu verstehen ist und es einfacher ist, einfache Dinge zu erreichen, ohne die gesamte API zu verstehen (und es verhindert, dass Sie einer dieser Typen werden, die Shader verwenden, ohne zu verstehen, was sie tun ) Würde ich Ihnen dennoch raten, sofort mit der modernen Art der Erstellung von Echtzeitgrafiken zu beginnen. Obwohl Sie zunächst möglicherweise nicht die Flexibilität von Shadern benötigen, ist diese äußerst wertvoll, sobald Sie die Grundlagen verwaltet haben. Und so können heute (und morgen) hardwarebeschleunigte Echtzeitgrafiken erstellt werden.
Während Kompatibilität ein Problem sein kann (und ich keinen Überblick über den aktuellen Stand von ES-Geräten habe), würden Sie sich bei Verwendung von Desktop-GL nicht künstlich auf GL 1.1-Funktionen beschränken, nur um 15 zu unterstützen bis 20 Jahre alte Grafikkarten. Das heißt, Fortschritt muss irgendwo beginnen.
quelle