Вопрос

Я ищу простой формат файла для использования в каркасных моделях.Я знаю о VRML, u3D и т.д., Но они кажутся тяжеловесными для моих нужд.Моими критериями являются:

  • Должна быть четкая спецификация.Либо открытый, либо очень хорошо установленный / документированный.
  • Мне нужны только простые модели - вершины и ребра.Я не хочу обрабатывать лица или объекты.Если формат поддерживает больше, это нормально, пока я могу их игнорировать.
  • Инструменты конечного пользователя не являются обязательным требованием, но были бы великолепны.Если нет, то он должен быть удобочитаемым для человека (и доступным для редактирования для простых моделей).
  • Было бы неплохо (но не обязательно) иметь возможность аннотировать или, по крайней мере, помечать узлы.
  • Не должно иметь значения, какой язык я использую, но вероятными вариантами являются Java / C ++ и OpenGL

Или мне просто лучше записать списки вершин / ребер в текстовый файл и покончить с этим?

Это было полезно?

Решение

Я не знаю ни одного формата, который активно нацелен на каркасные представления.(Только ребро / вершина) Вам почти всегда придется иметь дело как минимум с гранями.К счастью, если у вас нет особой потребности ни в чем, кроме списка граней, каркасный рендеринг может быть выполнен практически с помощью любого API из списка граней.

Что касается формата, OBJ - ОБЪЕКТ хорош и прост, если немного устарел.Вероятно, это также самый простой формат для поиска документации.X files от Microsoft отлично подходят для быстрого и грязного рендеринга, но я всегда был неравнодушен к форматам Quake.Однако они, как правило, очень ориентированы на игру и поэтому содержат много информации, которая вам, вероятно, не нужна.

Если ни один из них не соответствует вашим потребностям, возможно, загляните в КОЛЛАДА.Вероятно, это само по себе у вас не сработает, но вы могли бы быстро написать экспортер в свой собственный формат, который содержит только информацию о ребрах / вершинах, и на этом этапе у вас, по сути, есть поддержка для каждого пакета моделирования на планете :)

Другие советы

Wavefront OBJ - это очень простой формат текстового файла для хранения 3d-моделей, и он поддерживается всеми приложениями для 3d-моделирования (например.maya, 3dsmax, lightwave), так что вы можете очень легко экспортировать и импортировать свои модели.

Вы можете прочитать больше и технические характеристики здесь:

http://www.fileformat.info/format/wavefrontobj/

Я бы не рекомендовал создавать свой собственный формат файла.Объект Wavefront настолько прост, насколько это возможно, и хорошо определен.

Вот пример плоскости 2х2. v является для координат вершины, f для описания граней (вершины которых соединены):

v -0.500000 -0.000000 0.500000
v 0.000000 -0.000000 0.500000
v 0.500000 -0.000000 0.500000
v -0.500000 0.000000 0.000000
v 0.000000 0.000000 0.000000
v 0.500000 0.000000 0.000000
v -0.500000 0.000000 -0.500000
v 0.000000 0.000000 -0.500000
v 0.500000 0.000000 -0.500000
v -0.500000 -0.000000 0.500000
v 0.000000 -0.000000 0.500000
v 0.500000 -0.000000 0.500000
v -0.500000 0.000000 0.000000
v 0.000000 0.000000 0.000000
v 0.500000 0.000000 0.000000
v -0.500000 0.000000 -0.500000
v 0.000000 0.000000 -0.500000
v 0.500000 0.000000 -0.500000
f 1/1 2/2 5/5 4/4
f 2/2 3/3 6/6 5/5
f 4/4 5/5 8/8 7/7
f 5/5 6/6 9/9 8/8
f 10/10 11/11 14/14 13/13
f 11/11 12/12 15/15 14/14
f 13/13 14/14 17/17 16/16
f 14/14 15/15 18/18 17/17

Возможно, просто было бы проще создать эти списки в текстовом файле.Это первое, что пришло мне в голову!

POV-Рэя Формат необработанного треугольника это то, что я считаю самым простым.На мой взгляд, вы действительно не можете стать проще.Я реализовал загрузку для этого за считанные минуты - это действительно очень простой формат.

OBJ - самый распространенный и простой, но он выходит из строя, если вам нужно больше, чем положение вершины, нормаль и единственная текстурная координата.Это вообще не поддается расширению.Он также основан на тексте, поэтому у него возникают проблемы с большими сетками.

GTO зарождается как новый формат обмена.Это простой, быстрый и расширяемый, и для их чтения и записи имеется проверенный на производстве открытый исходный код:

Формат файла Gto

Это использовалось в производстве в нескольких VFX и игровых студиях, и все же примерно столько же работы требуется для написания загрузчика в виде OBJ-файла (и один из примеров - конвертер OBJ в GTO).

Проверьте это и помогите остановить распространение вируса раздувания Collada.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top