Android використовує OpenGL ES, у чому різниця між ним та OpenGL?
Android використовує OpenGL ES, у чому різниця між ним та OpenGL?
Відповіді:
OpenGL ES (вбудовані системи) - це знята версія OpenGL. Існує велика кількість відмінностей між цими двома, і якщо ви хочете детальніше розібратися в деталях, тоді ви можете прочитати цю 128 специфікацію документа. Але ES - це підмножина OpenGL, тому всі програми ES працюють у системах, що не належать до ES, а не навпаки.
Немає жодного місця, де можна було б легко визначити, що є в ES, а що ні. Навіть одне визначення: "OpenGL-ES - це так само, як OpenGL, але без багато чого. Наприклад, немає glBegin або glEnd."
На жаль, жодна з відповідей поки що не є повною і цілком правильною. Дійсно, OpenGL-ES робить дві речі OpenGL не:
1) він знімає, а потім розширює API OpenGL, щоб зробити його придатним для мобільної платформи. Тобто спочатку вони викреслюють API та функції, які вам справді не потрібні, і є обтяжливими для мобільних реалізацій, таких як візуалізація полігонів або використання списків відображення. Потім він робить кілька розсудливих розширень, щоб зробити його більш корисним для мобільної платформи. Я навіть не можу згадати приклад цього.
2) він надає інтерфейс менеджеру вікон (і, отже, рідному графічному обладнання) мобільної платформи. Ця частина OpenGL-ES, відома як EGL, дуже схожа на GLUT на робочому столі. За винятком того, що в ньому немає жодного з тих зручних методів, які не є строго необхідними для цього інтерфейсу. Тож немає API для малювання багатогранників чи сфер (як у GLUT). Але є, наприклад, API, які відповідають ініціативним викликам init () GLUT, і зворотним викликам DisplayFunc () та ReshapeFunc ().
На Android доступні дві версії OpenGL ES:
Попередження, OpenGL ES 2.0 не сумісний з OpenGL ES 1.X!
Майже всі Android-телефони мають графічний процесор OpenGL 1.X, а більшість - 2.0. OpenGL ES 2.0 доступний лише для Android 2.x або новіших версій.