Каков наилучший способ взаимодействия с Ogre (C++) в приложении Java?

У меня есть Java-приложение, и я хочу подключить к нему Ogre. В частности, Ogre — это библиотека движка 3D-игр, в которой есть множество сложных объектов C++. У меня есть несколько вариантов для этого.

1.) Используйте Raw JNI (сложно, поскольку JNI довольно сложен)

2.) Используйте SWIG + JNI (несколько просто... но все же задействован JNI)

3.) Используйте Lua и NO JNI (используйте привязку lua к Ogre)... В основном использование Lua помогает, потому что взаимодействие библиотеки C++ с Lua намного проще, и вызов Lua из java не будет слишком сложным.

4.) Используйте Ogre4j (привязка Java к Ogre с использованием JNI... но этот проект не обновляется до последней версии Ogre)

Что из этого/похоже на лучший вариант с учетом будущего обслуживания/обновления Ogre?

Стоит ли попробовать вариант № 3?


person seahorse    schedule 19.01.2012    source источник
comment
Почему вы хотите использовать Ogre из Java? Почему бы не найти игровой движок Java или не написать приложение на C++?   -  person jalf    schedule 29.02.2012


Ответы (2)


Я хотел бы предложить 5-й вариант: JNA https://github.com/twall/jna#readme, бывший проект java.net.

Мои рассуждения: варианты 1 и 2 слишком низкоуровневые, 3 имхо экспериментальный (вы упомянули "множество сложных объектов C++"), а номер 4 определенно не хватает обновления. JNA по-прежнему поддерживается, с открытым исходным кодом (LGPL), документирована и кросс-платформенна (хотя документы/примеры могут указывать на обратное).

Обновление:
я слышал о шестом варианте, "inspired by JNA": BridJ http://code.google.com/p/bridj/. часто задаваемые вопросы и Wiki хорошо объясняет различия и причины, лежащие в их основе. BridJ активен и имеет открытый исходный код (лицензия BSD и Apache).

person t0r0X    schedule 29.02.2012

Возможно, мы сможем использовать XBiG для генерации Java-кода, как это делает ogre4j. На самом деле, в исходном коде XBiG есть тест для генерации исходного кода ogre4j, и он предназначен для этой работы.

person 西风逍遥游    schedule 11.10.2016