Чим відрізняється OpenGL ES від OpenGL?


Відповіді:


13

OpenGL ES (вбудовані системи) - це знята версія OpenGL. Існує велика кількість відмінностей між цими двома, і якщо ви хочете детальніше розібратися в деталях, тоді ви можете прочитати цю 128 специфікацію документа. Але ES - це підмножина OpenGL, тому всі програми ES працюють у системах, що не належать до ES, а не навпаки.

Немає жодного місця, де можна було б легко визначити, що є в ES, а що ні. Навіть одне визначення: "OpenGL-ES - це так само, як OpenGL, але без багато чого. Наприклад, немає glBegin або glEnd."


5
ES не є прямим підмножиною OpenGL, тому ваше твердження про те, що всі програми ES працюють у системах, що не є ES, не відповідає дійсності.
Jari Komppa

5
@JariKomppa - це станом на OpenGL 4.1.
DMan

Було б непогано резюме змін / різниці.
бобобобо

19

На жаль, жодна з відповідей поки що не є повною і цілком правильною. Дійсно, OpenGL-ES робить дві речі OpenGL не:

1) він знімає, а потім розширює API OpenGL, щоб зробити його придатним для мобільної платформи. Тобто спочатку вони викреслюють API та функції, які вам справді не потрібні, і є обтяжливими для мобільних реалізацій, таких як візуалізація полігонів або використання списків відображення. Потім він робить кілька розсудливих розширень, щоб зробити його більш корисним для мобільної платформи. Я навіть не можу згадати приклад цього.

2) він надає інтерфейс менеджеру вікон (і, отже, рідному графічному обладнання) мобільної платформи. Ця частина OpenGL-ES, відома як EGL, дуже схожа на GLUT на робочому столі. За винятком того, що в ньому немає жодного з тих зручних методів, які не є строго необхідними для цього інтерфейсу. Тож немає API для малювання багатогранників чи сфер (як у GLUT). Але є, наприклад, API, які відповідають ініціативним викликам init () GLUT, і зворотним викликам DisplayFunc () та ReshapeFunc ().


2
EGL не є частиною OpenGL ES. Це власна окрема річ. Дивіться специфікацію. Це не є обов'язковою частиною OpenGL ES і ледь згадується , крім як сказати , що це могло б існує у вашій системі , але в іншому настройка вікна і т.д. знаходиться поза сферою в OpenGL ES SPEC
GMan

7

На Android доступні дві версії OpenGL ES:

  • OpenGL ES 1.x (1.0 або 1.1): підмножина OpenGL 1.5 без безпосередніх команд
    • немає glBegin / glEnd
    • відсутність підтримки Quad або Polygon
  • OpenGL ES 2.0: підмножина OpenGL 3.X без фіксованого конвеєра
    • вершинні шейдери
    • фрагменти шейдери
    • геометричні шейдери недоступні

Попередження, OpenGL ES 2.0 не сумісний з OpenGL ES 1.X!

Майже всі Android-телефони мають графічний процесор OpenGL 1.X, а більшість - 2.0. OpenGL ES 2.0 доступний лише для Android 2.x або новіших версій.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.