Попробую объяснить суть проблемы. Есть последовательность байтов, выгрызенная из структа.
Последовательность, например, такая (в десятичном представлении):
Отсюда вроде как следует, что в байтах содержатся индексы полигонов (ushort polys[];). На каждый индекс якобы по одному unsigned short int-у, стало быть по 2 байта.
Когда я пытаюсь распарсить последовательность,
C++ Source Code:
get_indices(Bin) ->
[I || <<I:16/little>> <= Bin].
индексы получаются огромными и идут с каким-то шагом:
Товарищи! Абстрактные задачи в сферическом ваккууме безусловно способствуют развитию абстрактного мышления, но в данном случае, нам всё-таки надо получить вполне конкретный результат, правда?
Так почему бы не рассказать, что такое MDS?
Если это формат от Raven, так его структуры давно уже открыты.
Добавлено 23-05-2013 в 21:40:
ЗЫ. polygon list is variable sized. Ну просто напоминаю
Дядя Миша писал: нам всё-таки надо получить вполне конкретный результат, правда?
Конкретика в прицепе.
Цитата:
Дядя Миша писал: Так почему бы не рассказать, что такое MDS?
Если это формат от Raven, так его структуры давно уже открыты.
Это формат проп-мешей для Dark Engine-а (.bin). Хедер взят из утечных исходников движка, так что эти структуры тоже кхм кхе кхе так сказать открыты. Только я всё равно в сях ничего не соображаю, так что толку-то.
Вот и обращаюсь к людям, которые этих парсеров уже обписались. Вдруг вы на практике сталкивались с упаковкой индексов через ж по-особенному.
Цитата:
Дядя Миша писал: polygon list is variable sized. Ну просто напоминаю
Там выгрызалка отрабатывает корректно и число индексов сходится. Последовательность начинается и заканчивается ровно там, где надо.
Вложение: mds.h.zip (3.5 кб)
Этот файл был скачан 125 раз.
Ну оно на манер халфовского формата устроено: там raw-вертексы.
short - vertex index
short - normal index
short - U * multiplier
short - V * multiplier
short == 0 - end of array
судя по каменту.
Ну логично, у каждого полигона в принципе может быть произвольное кол-во вершин, т.е. там не трианглы, как я понял. Так что мой камент про организацию raw-vertex тоже к месту.