Ищете кроссплатформенный метод для базовой 2D / 3D графики для iOS и Android - PullRequest
8 голосов
/ 13 марта 2012

Я разрабатываю приложение отдельно для Android и iOS, используя их собственные SDK. Тем не менее, в приложении есть некоторый модуль, который должен поддерживать базовые возможности 2D (а также 3D), такие как наклон, масштабирование, вращение векторной графики + все виды дополнительных необычных эффектов, например, на простых текстурированных плоскостях.

Я бы хотел разместить этот модуль внутри некоторого вида, и чтобы его код был как можно более распространен как для платформ iOS, так и для Android.

Я бродил по Интернету для всевозможных решений.

  1. Прежде всего, есть OpenGL, проблема в том, что я не знаком с кодированием для OpenGL и не смог понять, будет ли код, который я буду писать с OpenGL, делиться между двумя платформами. Похоже, что никто на самом деле не пытался сделать это с NDK и тому подобное.
  2. Существуют платформы, подобные

    а. Clutter (http://www.clutter -project.org /) - я не смог найти ни одного примера его использования на мобильных устройствах.

    б. Такие платформы, как Unity3D, хотя я не думаю, что они могли бы мне сильно помочь, потому что, насколько я понимаю, все приложение должно работать на их платформе, а это не то, что я ищу.

Итак, вы думаете, ребята, что возможно разделить 2d / 3d код между iOS и Android? Если да, то какой метод вы могли бы порекомендовать?

Или я должен просто пойти с родным методом каждого устройства для 2d или 3d графики?

Спасибо!

Ответы [ 3 ]

7 голосов
/ 09 сентября 2012

Kivy : кроссплатформенный язык программирования с открытым исходным кодом для написания чертежей, интерфейсов, визуальных элементов на основе OpenGL, чего угодно, для Linux, Windows, MacOSX, Android и iOS. kivy.org

Вы можете отказаться от использования собственных виджетов Android или iOS для виджетов Kivy, и ваши приложения будут иметь одинаковый интерфейс на основе OpenGL на всех платформах.

РЕДАКТИРОВАТЬ 27.09.11 1 вечера : Я сделал еще некоторые исследования.В общем, вы должны проверить эти 4 фреймворка с открытым исходным кодом для себя и решить, какая из них лучше для вас (я мог бы перечислить коммерческие фреймворки, но их легко найти):

  1. Kivy ( kivy.org )
    • Удивительная библиотека GUI и виджетов.
  2. HaxeNME ( haxenme.org )
    • Очень хороший 2D / 3D API для создания графики OpenGL.
    • Потрясающая кроссплатформенная поддержка.Лучшие из всех фреймворков.
    • К сожалению, библиотека встроенного графического интерфейса или виджетов не встроена.
  3. Qt Quick QML ( qt-project.org )
    • Очень хороший 2D / 3D API для создания графики OpenGL.
    • Аналогично HTML, но для OpenGL.Уже знаете HTML и JavaScript?QML (язык быстрой разметки) включает в себя базовые элементы, такие как текстовые поля, переключатели, флажки и т. Д., Которые можно анимировать и контролировать с помощью обработчиков событий.Анимации, обработчики событий и т. Д. В вашем приложении QML написаны на JavaScript;разница в том, что JavaScript компилируется, а не интерпретируется.
    • Qt Quick действительно потрясающий;мой личный фаворит.Прочтите Qt Quick QML и попробуйте приложение Animated Tiles для Android, чтобы увидеть потенциал Qt Quick.Новейшая версия Qt (очень скоро) поддерживает iOS, Android и Blackberry, а также все настольные ОС.Windows Phone находится в стадии разработки, но скоро появится, учитывая, что Qt Quick уже поддерживает платформу Metro в Windows 8.Qt Quick очень хорош, но он не работает на всех платформах, как HaxeNME.
  4. MoSync ( mosync.com )
    • Скрытый драгоценный камень.Эта структура нуждается в большем воздействии.MoSync SDK предоставляет кроссплатформенную платформу OpenGL, среду HTML / JavaScript, аналогичную PhoneGap, среду NativeUI для написания приложений на платформах, использующих собственные виджеты пользовательского интерфейса каждой платформы, и MAUI для написания графических интерфейсов C ++.
    • Есливы просто не могли просто написать чистый OpenGL, тогда я бы, по крайней мере, рекомендовал бы проверить MoSync, поскольку он обеспечивает реализацию OpenGL ES 1.0 / 2.0 1: 1.

Кроме того, если ваше приложение будет основано на формах (а не анимированных, как игра), то PhoneGap может удовлетворить ваши потребности.Если вы используете правильные функции HTML5, вы можете создавать приложения, которые выглядят нативно (в отличие от множества ужасных и обескураживающих примеров).Если вы хотите попробовать приложение, созданное с помощью PhoneGap, которое выглядит «родным», попробуйте « Go 2012 ».Приложения Go 2012 доказывают, что если вы правильно используете HTML5, вы можете воспользоваться преимуществами аппаратного ускорения на разных платформах (iOS, Android, Blackberry и Windows Phone (я проверял это на всех)).Все анимации (прокрутка и т. Д.) В Go 2012 - это анимация с аппаратным ускорением CSS3. Не позволяйте низкому качеству большинства приложений из демонстрации PhoneGap обмануть вас!

1 голос
/ 09 сентября 2012

Вы когда-нибудь слышали название маленькой компании Adobe

Попробуйте использовать Air.

Люди не ценят тяжелую работу, которую проделал Adobe, но это самаясильная кроссплатформенность доступна на рынке!

Поддерживается:

  • Windows с доступом DirectX для ускорения работы вашего приложения, как в 3D, так и в 2D.
  • Linux
  • Android (2.2 и выше) с фоном OpenGL
  • iOS с OpenGL
  • BlackBerry

И многие другие ... Если вы хотите работать надвысокий уровень, используйте воздух!

1 голос
/ 13 марта 2012

Используйте OpenGL ES и напишите код на языке C. Напишите оболочку NDK для Android.Теоретически, ваш открытый код GL C должен быть повторно использован между двумя платформами.

...