OpenGL ES ve OpenGL arasındaki fark nedir?


Yanıtlar:


13

OpenGL ES (Gömülü Sistemler), OpenGL'nin soyulmuş bir sürümüdür. Bu ikisi arasında çok fazla fark var ve ayrıntılara girmek istiyorsanız, bu 128 şartname belgesini okuyabilirsiniz. Ancak ES, OpenGL’nin bir alt kümesidir, bu yüzden tüm ES uygulamaları ES olmayan sistemlerde çalışır ancak bunun tersi olmaz.

ES'de olanı ve olmayanı kolayca tanımlayabileceğiniz bir yer yoktur. Hatta bir tanım bile "OpenGL-ES, OpenGL'ye benziyor, ancak çok fazla şey olmadan. Örneğin, glBegin veya glEnd yok."


5
ES, OpenGL'nin düz bir alt kümesi değildir, bu nedenle tüm ES uygulamalarının ES olmayan sistemlerde çalıştığını iddia etmeniz doğru değildir.
Jari Komppa

5
@JariKomppa - OpenGL 4.1’de olduğu gibi.
DMan

Değişikliklerin / farkların güzel bir özeti iyi olurdu.
bobobobo

19

Ne yazık ki, şu ana kadarki cevaplardan hiçbiri hem tam hem de tam doğru değil. Gerçekten, OpenGL-ES OpenGL’in yapmadığı iki şeyi yapar:

1) aşağı soyar ve sonra bir mobil platform için uygun hale getirmek için OpenGL API'lerini genişletir. Yani, önce gerçekten ihtiyacınız olmayan API'leri ve özellikleri çıkarırlar ve çokgen oluşturma veya ekran listelerini kullanma gibi mobil uygulamalar için çok zordur. Sonra mobil platform için daha kullanışlı hale getirmek için birkaç makul uzantı yapar. Yine de bunun bir örneğini bile hatırlayamıyorum.

2) mobil platformun pencere yöneticisine (ve dolayısıyla yerel grafik donanımı) arayüz sağlar. OpenGL-ES'in EGL olarak bilinen bu kısmı masaüstündeki GLUT'a çok benziyor. Bunun dışında, bu arayüz için kesinlikle gerekli olmayan kolaylık yöntemlerinden hiçbirine sahip değildir. Dolayısıyla, polyhedra veya küreler çizmek için API yoktur (GLUT'daki gibi). Ancak, örneğin, GLUT'nin init () ve DisplayFunc () ve ReshapeFunc () geri çağrılarına karşılık gelen API'ler vardır.


2
EGL, OpenGL ES'nin bir parçası değildir. Bu kendi ayrı bir şey. Teknik özelliklere bakın. Bu OpenGL ES gerekli bir parçası değildir ve zar zor olabilir sisteminizde mevcut ancak aksi OpenGL ES Spec kapsamı dışında vb bir pencere kurma olduğunu söylemek dışında belirtilen
Gman

7

Android'de kullanılabilen iki OpenGL ES sürümü var:

  • OpenGL ES 1.x (1.0 veya 1.1): hemen komutları olmayan bir OpenGL 1.5 alt kümesi
    • glBegin / glEnd yok
    • Quad veya Poligon desteği yok
  • OpenGL ES 2.0: Sabit boru hattı olmayan bir OpenGL 3.X alt kümesi
    • köşe gölgelendiricileri
    • parça gölgelendiricileri
    • geometri gölgelendiricileri mevcut değil

Uyarı, OpenGL ES 2.0, OpenGL ES 1.X ile uyumlu değildir!

Hemen hemen tüm Android telefonlarda OpenGL 1.X GPU var ve çoğunda 2.0 var. OpenGL ES 2.0, yalnızca Android 2.x veya daha yeni sürümlerde kullanılabilir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.