Прежде всего, спасибо двум другим ответчикам. Также basszero, ты был прав насчет файла смешивания, и я должен был сначала проверить Википедию! Это почти бесполезный двоичный дамп памяти Blender.
Вскоре после написания этого вопроса я решил пойти дальше и написать загрузчик OBJ, потому что 1) это дало бы мне опыт загрузки формата файла 3D и 2) это казалось хорошим, широко используемым форматом, но также и простым загрузить. Это оказалось хорошим решением, потому что заставило меня осознать, что я на самом деле не знал разницу между объектом и группой, и я также мало знал о материалах. Это помогло мне установить код для этих трехмерных структур.
В обоих ответах рекомендуются форматы на основе XML. Я не хочу формат XML. Я не верю, что это правильное место для XML. Я считаю, что эти форматы были созданы, потому что XML является гибким, универсальным и простым для создания схем, но это не то, что я ищу. Мне нужен формат, который можно быстро загружать (XML не является, условно говоря), он не должен быть гибким или удобочитаемым, и что-то, для чего я могу написать импортер, а не полагаться на библиотеки XML. Бассеро даже сказал: «ценой быть XML», и он совершенно прав; это цена, которую я не чувствую, стоит бремени.
Мой загрузчик OBJ готов. Я отделил его от реальных классов модели и реализовал его с помощью интерфейса MeshFactory, чтобы в будущем я мог написать другой загрузчик, если бы захотел ... Каков план. В последние пару дней я проводил дополнительные исследования и определился с форматом ms3d.
Формат ms3d поддерживает скелетную оснастку (соединения) и скелетную анимацию ключевого кадра, а также текстурную карту и альфа-карту. Кроме того, это легко читаемый компьютером двоичный формат, который не тратит впустую пространство (как XML и OBJ) с читаемыми человеком тегами и метками и тому подобным.
К сожалению, в Blender нет (работающего) сценария экспорта ms3d, поэтому я сам напишу сценарий для него. К счастью, это не сложный процесс, и вы можете прочитать документацию Blender и использовать других экспортеров в качестве примеров. Мне придется освежить свой Python, но в остальном он кажется очень простым из того, что я видел в других скриптах.
Со стороны Java все должно быть просто, на самом деле это будет даже проще, чем в формате OBJ, потому что ms3d более структурирован. Я нашел спецификации для формата ms3d онлайн, в стиле C (гений!), Поэтому они невероятно говорят сами за себя, и у меня больше нет вопросов о формате. Я буду основывать свою реализацию на этой спецификации, хотя позже я могу реализовать свои собственные варианты; это здорово, когда я пишу свой собственный импортер и экспортер, я могу изменить формат так, как считаю нужным.
В общем, я решил, что это лучшее решение.
И basszero, вы абсолютно правы, как я видел из моего загрузчика OBJ: «Как только вы все прочитали, организация данных (список отображения, текстуры, массив вершин, буфер вершин и т. Д.) рендеринг совершенно другого зверя. "
Cruachan: для меня нет Java3D, я придерживаюсь JOGL. Я действительно владею этой книгой (хотя она сейчас недоступна), хотя я не помню, как он загружал модели, но я уверен, что он использовал загрузчики формата Java3D, которые делают это автоматически. Не то, что я планирую использовать ... Извините!
-Ricket