Вопрос

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

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

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

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

Далее следует сопоставление .Index Раздел.В этом разделе есть 4 номера.Первые 3 являются ссылочными номерами к ранее указанным Вершинам, а 3 точки обозначают треугольник в модели.0 означает первую упомянутую вершину, 1 означает следующую и так далее, как массив на основе нуля.4-е число, по-видимому, всегда равно -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?Или знаете веб-сайт, который объяснит, что означают эти другие цифры?

Редактировать:

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

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

Решение

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

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

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

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

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

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

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

Судя по некоторым поискам в Google, кажется, что вы находитесь не на том конце конвейера.Насколько я понимаю, это:Файл VTX - это Проприетарный формат файла Valve это и есть тот самый Результат из набора шагов.

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

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

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

Клапан

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

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