2009-12-04 10 views
0

Недавно я сделал окунуться в DirectX и немного поработал с Anim8or, и обнаружил несколько типов файлов, которые модели могут экспортировать в текстовые. Особенно я попал в файлы VTX. Я научился разбирать некоторые из них, но я, очевидно, пропустил несколько вещей.. Формат файла VTX?

Начинается с .Faceset с немедленно (в той же строке), за которой следует количество ячеек в файле.

Для каждой сетки, есть один .Vertex участок и один .Index раздел в таком порядке и первая пара .Vertex/.Index секций являются первой сеткой, вторым набором является второй сеткой и так далее, как можно было ожидать.

В разделе .Vertex файла содержится 8 номеров в строке и неопределенное количество строк спецификации файла, просто Anim8or быть добрым). Первые 3 числа соответствуют координатам X, Y и Z для определенной точки, которая позже будет использоваться как вершина, а другая 5 я понятия не имею. В большинстве случаев последние 2 числа равны 0, но я заметил, что это не ВСЕГДА, правда, обычно это правда.

Далее идет соответствующий раздел .Index. Этот раздел имеет 4 номера. Первые 3 являются ссылочными номерами ранее указанным вершинам, а три точки обозначают треугольник в модели. 0 означает первый упомянутый Vertex, 1 означает следующий и т. Д., Как массив с нулевым значением. Четвертый номер всегда будет -1, я не могу понять, какое значение у него есть, и я не могу обещать, что он ВСЕГДА -1. Если вы не можете сказать, я не слишком уверен в этом типе файла.

В этом файле также есть другая информация, которую я сейчас предпочитаю игнорировать, потому что я новичок и не хочу слишком сильно усваивать вещи. Такой, как после каждого .Index раздела:

.Brdf 
// Ambient color 
0.431 0.431 0.431 
// Diffuse color 
0.431 0.431 0.431 
// Specular color and exponent 
1 1 1 2 
// Kspecular = 0.5 
// end of .Brdf 

Мне кажется, речь идет о поверхности сетки только что описали. Но это не нужно для размещения ячеек, поэтому я сейчас проехал мимо него.

Переходя к реальной проблеме ... Я могу загрузить VTX-файл, когда в VTX-файле есть только одна сетка (это означает, что .FaceSet равно 1). Я могу почти успешно загрузить файл VTX с несколькими сетками, каждая сетка успешно структурирована, но неправильно размещена по отношению к другим сеткам. Я загрузил модель AT-AT из потока Anim8or на форуме, и он состоит из 344 сеток, когда я загружаю файл только с использованием спецификаций, о которых я упоминал до сих пор, похоже, что AT-AT взломан, как будто это была диаграмма того, как это сделать (при загрузке в Anim8or все части близки и напоминают полностью собранный AT-AT). Все части ориентированы правильно и имеют одно и то же направление вверх, но между кусками имеется дополнительное пространство.

Знает ли кто-нибудь, как правильно читать VTX-файл? Или знаете веб-сайт, который объяснит, что означают эти другие цифры?

Edit:

Расширение файла .VTX используется для большого количества различных вещей и имеет много различных структур, в зависимости от того, что предполагаемое использование. Valve, Visio, Anim8or и некоторые другие используют VTX, меня интересует только VTX-файл, который экспортирует Anim8or, и структуру, которую он использует.

ответ

1

Я сам работал над программой 3D-моделирования и хотел, чтобы простой формат мог вносить объекты в редактор, чтобы иметь возможность проверять скорость моих графических подпрограмм с большими наборами вершин и граней. Я искал простой, где я мог быстро получить модели и нашел формат .vtx. Я искал ее и нашел ваш вопрос. Когда мне не удалось найти формат в Интернете, я поиграл и сравнил .OBJ экспорт с .vtx. (Может быть, он был создан только для Anim8or?) Вот что я нашел:

1) Да, вершины имеют восемь чисел на каждой строке. Первые три, как вы предполагали, являются координатами x, y и z. Следующие три являются вершинными нормалями, nx, ny и nz. Вы можете заметить, что каждая вершина появляется несколько раз с разными нормалями для каждого лица, которое ее содержит. Последние два числа - это координаты текстуры.

2) Что касается лиц, я сделал те же выводы, что и вы. Первые три числа - это индексы в списке вершин выше. Последнее число всегда равно -1.Я собираюсь предположить, что это имеет какое-то отношение к облику лица. (например, обращаясь внутрь или наружу.) Поскольку большинство моделей создаются с лицами, все сталкиваются с ними надлежащим образом, разумно, что это будет одинаковое число для всех из них.

3) Еще одно примечание: при сравнении .obj с .vtx я заметил, что позиции вершин изменены. Это также верно при сравнении с файлом .an8. Это не должно быть проблемой «ОГРОМНАЯ», если все они смещены на одну и ту же сумму в каждой вершине и каждом файле. По крайней мере, это можно было бы компенсировать.

Считаете ли вы использование формата файла .obj? Он основан на тексте и не является чрезвычайно сложным для разбора или понимания. В Интернете есть довольно много информации об этом.

Я собираюсь добавить, что после нескольких часов проверки экспорт vtx в Anim8or, кажется, сломан. Я столкнулся с той же проблемой, что и вы, потому что части не были расположены должным образом. Мое предположение заключалось в том, что anim8or экспортирует эти объекты, используя локальные координаты для каждой сетки, и не учитывает применяемые преобразования. Я также отмечаю, что он не будет ИМПОРТ файла vtx ...

1

Основываясь на некоторых поисковых системах, похоже, вы находитесь на неправильном конце трубопровода.Как я понимаю: файл VTX - это Valve Proprietary File Format, который является результатом набора шагов.

Окончательный вывод Studiomdl для каждой модели Half-Life представляет собой группу файлов в gamedirectory/папки моделей готовых для использования в Game Engine:

  • в .MDL файл, который определяет структуру модели наряду с анимацией, ограничивающего прямоугольником, ударом боксом, материалом, сетка и информации LOD,
  • .VVD файл, который сохраняет позиции независимые плоские данные для весов костей, нормалей, вершин, касательных и текстуры координаты используются леях, в настоящее время
  • три отдельных типа VTX файла:

    • .sw.vtx (Программное обеспечение),
    • .dx80.vtx (DirectX 8.0 ) и
    • .dx90.vtx (DirectX 9.0), который оптимизирован магазин аппаратного материала, шкуры и треугольник полосы/вентилятор информация для EAC ч LOD каждой сетки в леях,
  • часто .PHY файл , содержащий жесткий или сочлененных (тряпичная кукла) модель столкновений и иногда
  • .ANI файл для того, чтобы: что-то делать с моделью анимации

Valve

теперь клапан Source SDK м у него есть некоторые утилиты, чтобы читать VTX (у него, похоже, есть возможность сделать их в любом случае). Некоторые люди могут сделали сторонние инструменты или у них есть код для их чтения, но, вероятно, он не будет работать на всех файлах, потому что это сторонний формат. Я также нашел this post, который может помочь, если вы еще не видели его раньше.

Смежные вопросы