Blender + Java:
Ну, если вы говорите о создании сцены, а затем загрузки файла .blend, что не очень хороший подход. Вероятно, вы хотите экспортировать уровень/символ/etc как что-то еще. Раньше я работал с openGL и java. Я рекомендую экспортировать как файл collada (файл .dae). Файлы Collada основаны на xml (легко анализируются с использованием DOM или SAX) и не содержат никаких дополнительных данных блендера, которые в любом случае не могут использоваться gl. Файлы Collada поддерживают анимационные рамки, структуры костей, источники света, материалы, текстуры, цвета, нормали и вершины. Кроме того, поскольку они представляют собой файлы на основе XML, их легко открыть с помощью текстового редактора и изучить тип файла. Поскольку у java уже есть синтаксические анализаторы XML в своей библиотеке, этот тип файла прост в использовании и чтении. Его данные можно сразу же сбрасывать в буфер BufferObject или немедленный режим рендеринга.
Fbx - еще один тип файла, который поддерживает все элементы блендера. Проблема с этим типом, то есть имеет двоичный и текстовый формат. Структура немного меняется, поэтому трудно найти ресурсы, описывающие формат двоичного файла. Кроме того, это тип файла, защищенного авторскими правами.
Файлы Obj являются самыми легкими для чтения и использования. Однако они хранят данные текстуры/материала в отдельном внешнем файле. Кроме того, они никоим образом не поддерживают анимацию. Из-за этого они являются плохим выбором по многим причинам. Однако, если у вас есть статический объект (ящик или дерево бездействия), этот тип файла может работать на вас.
Как я уже упоминал ранее, трудно напрямую смешивать блендер и java без типа файла, который легко читается обеими сторонами, файлы .blend не легко читаются java.
Java + Python:
Это немного сложнее. Я думаю, что Jython - хорошее место для начала. Python можно использовать аналогично скрипту, по крайней мере, при использовании с движком. Как вы решите реализовать это полностью зависит от вас.
Лично я нашел более легким создание игровой консоли с предварительно подготовленными командами java. У меня есть простые текстовые файлы, которые вызывают команды для консоли для использования скриптов. Сценарии могут определять такие вещи, как движения ai и загрузку ресурсов.
Я изо всех сил пытаюсь найти сильный набор причин, чтобы включить в движок игры скриптовый движок (что вы, вероятно, код в python). Я признаю, что это не область разработки двигателей, с которой я много работал. Я упал, как будто, в любом случае, это будет просто вызов команд (или методов) ваших классов Java. Возможно, кто-то может прояснить более сильное использование для python в игровом движке для нас обоих.
Наконец, я бы порекомендовал javaScript поверх python.Python используется из-за его популярности и потому, что большинство движков кодируются на C++ или C#. В отличие от java, на этих языках нет скрипта «маленький брат». Если вы намереваетесь сделать это истинным движком java, было бы намного проще использовать JS, поскольку вы используете язык сценариев выбора, поскольку библиотеки для его использования уже упакованы вместе с JDK.
Надеюсь, это поможет некоторым.
А? Какой смысл переносить Blender на Java? – Devolus
Я не пытаюсь переносить blender в java, но я хочу склеить blender и java-библиотеку. –
Я думаю, что вы должны написать скрипт Python для экспорта требуемых данных в формате, который вы хотите для java. Python на самом деле действительно хороший язык, и его легко подбирать. –