Wählen Sie OpenGL ES 1.1 oder OpenGL ES 2.0?
Beginne ich eine neue cross-plattform openGL-Projekt (primär für iPhone & PC). So gibt es die Haupt-Frage: targeting für OpenGL ES 1.1 und OpenGL ES 2.0? Oder beides? So weit ich gelesen habe Open GL ES 1.1 ist wirklich nicht veraltet, ist es nicht?
Also, was spricht für openGL ES 2.0? Programmierbare vertex- & fragmentshader - sonst noch Etwas? Ich habe gehört, über die Leistung verringern mit alpha blending oder so - kann das wahr sein? Ich nehme an, der openGL ES 2.0-code auch ausgeführt werden soll auf dem PC - So ist die openGL ES 2.0 ist wirklich mehr Zukunft bewusst?
Die anderen Entwickler da draußen sind immer noch die Codierung für OpenGL ES 1.1 oder 2.0? Und warum?
Ich nehme an, im Fall ich wählen, openGL ES 2.0, es wäre eine Menge Aufwand für auch rückwärts-Kompatibilität mit openGL ES 1.1. Aber es gibt eine Menge von iPhones gibt ohne openGL-ES-2.0-Unterstützung - wie sollte ich dies erreichen? Jede Erfahrung, die es gibt?
Fand ich nur diese Frage: OpenGL ES 1.1 oder 2.0 auf dem iPhone Art von relevanten, aber es ist nicht wirklich tief über die Umsetzung...
So dass jede Beratung ist willkommen! Vielen, vielen Dank!
InformationsquelleAutor der Frage Constantin | 2011-01-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ob OpenGL ES 1.1 oder 2.0 hängt davon ab, was Sie wollen in Ihrem Antrag, und wie viele Geräte Sie benötigen es, um die Kompatibilität mit. Alle iOS-Geräte unterstützt OpenGL ES 1.1, in denen nur das iPhone 3G S und neueren Geräten (iPhone 3G S, iPhone 4, iPad, und 3. und 4. generation iPod touch) unterstützt OpenGL ES 2.0. Allerdings werden alle iOS-Geräte von Apple ist derzeit Versand sind kompatibel mit OpenGL ES 2.0. Der Prozentsatz der Geräte, die keine Unterstützung für OpenGL ES 2.0 ist, fallen jeden Tag. Alle iPads haben, unterstützt OpenGL ES 2.0 aus starten, damit Sie garantiert die Unterstützung, wenn Sie Ziel -, form-Faktor.
OpenGL ES 2.0 und 1.1 verwenden unterschiedliche und ziemlich inkompatibel rendering-pipelines. OpenGL ES 1.1 verwendet einen festen Funktions-pipeline, wo Sie Futter in der geometrie-und textur-Daten, einrichten, Beleuchtung, etc. Staaten, und lassen Sie OpenGL behandeln den rest für Sie. OpenGL ES 2.0 basiert, um eine programmierbare pipeline, wo Sie liefern vertex-und fragment-Shader, um zu behandeln die Besonderheiten, wie Sie Ihre Inhalte am Bildschirm gezeichnet.
Weil Sie Ihren eigenen code schreiben zu ersetzen sogar die meisten basic-built-in-Funktionen, Verwendung von OpenGL ES 2.0 für einfache 3-D-Anwendungen erfordern möglicherweise mehr Aufwand als OpenGL ES 1.1. Auch die meisten Beispielanwendungen und writeups, dass Sie herausfinden, wird es ausgerichtet auf 1.1, so dass es schwieriger sein kann, um den Einstieg in die 2.0-API.
Jedoch die Tatsache, dass Sie können schreiben Sie Ihre eigenen Routinen für den Umgang mit Ihrer geometrie und Texturen und wie Sie angezeigt werden auf dem Bildschirm bedeutet, dass OpenGL ES 2.0 können Sie die Dinge tun, die einfach nicht möglich wäre (oder würde erfordern eine enorme Menge an Aufwand zu tun, die in OpenGL ES 1.1. Dazu gehören Effekte wie cartoon-shading und ambient occlusion Beleuchtung, sowie lassen Sie etwas tun, interessant wie Entladung Massiv parallel arbeiten, um die GPU.
Wenn Sie sich sorgen um einige Beispiele zu sehen von dem, was Sie tun können, mit OpenGL ES 2.0, video für die Klasse, die ich unterrichtete über das Thema verfügbar ist auf iTunes Uund ich habe zwei Beispiel-Anwendungen hier und hier.
Wenn es um cross-Plattform-Kompatibilität, Shader wurden auf dem desktop OpenGL für eine kleine Weile jetzt, so alles, was Sie bauen mit OpenGL ES 1.1 oder 2.0 sollte Recht portabel auf dem desktop.
Wenn Sie können das rendering in OpenGL ES 1.1, könnten Sie diesen Weg zu gehen, bieten die maximale Geräte-Kompatibilität. Allerdings, die große Mehrheit der iOS-Geräte im Einsatz, heute ist die Unterstützung von OpenGL ES 2.0 (ich kann nicht finden die Statistik auf dieses Recht jetzt, aber es wurde basierend auf Einheiten ausgeliefert), und diese Zahl wird nur wachsen im Laufe der Zeit. OpenGL ES 2.0 können Sie abziehen einige beeindruckende Effekte (siehe Epic Citadel), die helfen könnten Sie Ihre Anwendung, abgesehen von den anderen da draußen.
InformationsquelleAutor der Antwort Brad Larson
Grundsätzlich nur das iPhone 3G und vor (auslaufend 2010) und iPod 2. generation und früher (auch eingestellt, Sept 2010), müssen Sie die Verwendung von OpenGL ES 1.0.
Alle iPads, iPad minis und iPhones 3GS oder höher unterstützt OpenGL ES 2.0. In der Tat, jedes iOS-Gerät verkauft (wie ein brandneues Gerät) nach Sept 2010 unterstützt OpenGL ES 2.0.
OpenGL-ES-3.0-Unterstützung
Nicht nur, dass Sie ES 2.0-Unterstützung, aber das iPhone 5S + iPad Air (iPad 5. generation) nun OpenGL ES 3.0, November 2013.
InformationsquelleAutor der Antwort bobobobo
Derzeit, aber ich bezweifle, dass es irgendein Gerät gibt, das keine Unterstützung für OpenGLES 2.0! Setzen Sie in ein wenig mehr Mühe in OpenGLES 2.0, und Sie werden zukunftssicher, zumal OpenGLES 3.0 ist raus. Eigentlich fand ich OpenGLES 2.0 einfacher als die 1.1, einfach weil ich kann mein eigenes matrix-Berechnungen und genau angeben, was in einem shader.
Die andere Sache ist, wenn du gehst zu verwenden, OpenGLES 1.1-API, die Sie benötigen, zu wissen, dass es tatsächlich umgesetzt werden, da ein shader, und dass es nicht eine hardware-Sache, wenn das Sinn macht. OpenGLES 2.0 läuft eine vertex-shader implementiert, dass ein OpenGLES 1.1 fixed-function-pipeline.
Es ist ein Klacks -- OpenGLES 2.0 mindestens!
InformationsquelleAutor der Antwort Michael
Habe ich gewählt 2.0 nur für die Cubemap
InformationsquelleAutor der Antwort Lijiayu