2013-06-25 6 views
1

Я планирую использовать Ubuntu с QT Creator для изучения и разработки приложений OpenGL ES 2.x. очевидно, что OpenGL ES 2.x непросто настраивать в среде рабочего стола, а OpenGL ES - это под-спецификация OpenGL.OpenGL ES 2.x совместим с OpenGL

Итак, я хочу знать, можно ли разработать основную часть приложения OpenGL ES 2.x в среде OpenGL и перенести мой код на Android или iOS для разработки графического интерфейса позже?

ответ

1

Непросто настроить? Позволю себе не согласиться. Просто получите an emulator like the one Mali has, и пусть ваша программа использует свои библиотеки вместо системных.

Тогда вы можете быть уверены, что код GL должен быть прекрасным, как долго, конечно, так как вам удастся запустить его на iOS (Obj-C++?) Или Android (NDK?).

+0

Я новичок в OpenGL ES и C++, поэтому для меня это сложно. есть ли документ ant или учебник по настройке среды разработки OpenGL EL в Ubuntu, которую вы можете порекомендовать? спасибо – Korben

+0

@Korben [Страница эмулятора Mali ES] (http://malideveloper.arm.com/develop-for-mali/tools/opengl-es-2-0-emulator/) также содержит инструкции по установке. –

0

Qt5 построен по OpenGL ES 2.0 по умолчанию, поэтому, если вы используете текущий Qt, вы получите его из коробки, а разработчики Qt скажут, что они будут поддерживать Android и iPhone в версии 5.2.

0

Mesa реализует как обычные OpenGL, так и OpenGL ES: http://www.mesa3d.org/opengles.html. OpenGL ES 3.0 поддерживается также на некоторых GPU, AFAIK.

Существует также кросс-API-совместимость, встроенная в большинство библиотек OpenGL, поэтому вы можете скомпилировать и запустить код OpenGL ES без каких-либо или минимальных изменений. Вам необходимо выработать специфику платформы, такую ​​как настройка контекста визуализации, фреймбуферы и выполнение фактического рисования. Но это не GL/GLES.

ES API совместимость с OpenGL 3.2 с поддержкой большинства вызовов. Оставшиеся были добавлены ARB_ES2_compatibility extension, который является частью OpenGL 4.1. OpenGL 4.2 добавляет полную поддержку OpenGL ES 3.0.

И да, это хорошо работает. Я выполнял тот же ES-код как на Android, Linux, Mac OS X, так и на iOS. Это просто требует немного больше работы, чем поддержка одной платформы.

0

У меня есть собственный движок, который реализует ES 2.0 на iOS и Windows, поэтому он работает в обеих системах. Вам просто нужно заботиться о неподдерживаемых форматах и ​​методах (например, pvrtc, который не поддерживается в Windows, поэтому я написал конвертер).

Чтобы упростить, я сначала реализую все на iOS, поэтому я знаю его работу, после чего я переношу его в окна. В настоящее время у меня всего около 1000 строк кода, которые различаются на каждой платформе (но я использую Xamarin).