2008-10-11 2 views
5

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

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

Или я просто лучше пишущие вершины/краевые списки в текстовый файл и сделать с ним?

ответ

3

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

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

Если ни один из них не отвечает вашим потребностям, возможно, посмотрите на COLLADA. Вероятно, это не сработает для вас, но вы можете написать быстрый экспортер в свой собственный формат, который содержит только информацию о краях/вершинах, и в этот момент вы, по существу, поддерживаете каждый пакет моделирования на планете :)

1

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

7

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

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

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

Я бы не рекомендовал сделать свой собственный формат файла. Wavefront OBJ так же прост, как и получает и хорошо указывается.

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

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 
+0

Если это для плоскости 2x2, то я действительно не вижу, как это «просто»! Определено 18 вершин и 8 граней для чего-то, что должно иметь 4 вершины и 1 грань ... – freespace 2008-10-11 04:59:48

+0

@freespace: Очевидно, что это 2x2 лица, а не 2x2 verts. Кроме того, он создал двух из них (предположительно случайно). – 2008-10-11 12:54:18

+0

Спасибо за пример - это выглядит очень сложным для плоскости 2x2. Приведенная вами ссылка имеет более простой пример плоскости 2x2. – Draemon 2008-10-11 13:04:18

1

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

0

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

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

Gto File Format

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

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