Разбор форматов, Тема для обсуждения различных форматов игровых файлов |
Здравствуйте, гость ( Авторизация | Регистрация )
Сайт S.T.A.L.K.E.R. Inside / [ЗП] Параметры командной строки / Распаковщик ресурсов
Разбор форматов, Тема для обсуждения различных форматов игровых файлов |
04.10.2019, 21:46
Сообщение
#81
|
|
Продвинутый геймер Репутация: 51 Группа: Участник Сообщений: 489 Награды: 3 Регистрация: 12.11.2012 |
А по логу ничего выяснить нельзя? Вот вроде бы последнее, на чем движок вылетел:
Код 0023:6E2640AA xrRender_R1.dll, Fvisual::Render(), j:\xray_sources\trunk\xray\xr_3da\xrrender\fvisual.cpp, 187 Посмотрел в fvisual.cpp файл 187 строку и там это: Код RCache.set_Geometry (rm_geom); RCache.Render (D3DPT_TRIANGLELIST,vBase,0,vCount,iBase,dwPrimitives); RCache.stat.r.s_static.add (vCount); Что этот код делает? -------------------- |
 
|
|
|
|
04.10.2019, 21:50
Сообщение
#82
|
|
. Репутация: 750 Группа: Участник Сообщений: 7072 Награды: 4 Регистрация: 30.07.2010 |
Pavel_Blend, устанавливает геометрию согласно тому что записано в GCONTAINER и отрисовывает, третья строчка добавляет в статистику количество вершин.
|
 
|
|
04.10.2019, 22:34
Сообщение
#83
|
|
Игровое Воплощение Репутация: 394 Группа: Участник Сообщений: 4791 Награды: 4 Регистрация: 27.04.2011 |
Pavel_Blend, а если загрузить в блендер и, ничего не меняя, сохранить, файлы совпадают? Хотя бы по размеру. Ну и в сравнивалке в какой-нибудь сравнить. Флоаты могут быть чуток другие, но структура файла должна сохраниться, и это вполне можно увидеть глазами.
Если запилишь уровень для ЧН, могу позапускать движок под отладчиком и посмотреть, что там творится. |
 
|
|
05.10.2019, 13:29
Сообщение
#84
|
|
Продвинутый геймер Репутация: 51 Группа: Участник Сообщений: 489 Награды: 3 Регистрация: 12.11.2012 |
Нашёл ошибку. Оказывается неправильно был записан формат вершин в VB, как говорил Modera. Я там одно число неправильно записал. А именно usage index у UV для карт освещения. Был 0, я сделал 1 и всё запустилось. Правда сектора дико глючат. Буду дальше разбираться.
-------------------- |
 
|
|
05.10.2019, 20:52
Сообщение
#85
|
|
Продвинутый геймер Репутация: 51 Группа: Участник Сообщений: 489 Награды: 3 Регистрация: 12.11.2012 |
Сделал экспорт с текстурами. Правда у террейна нет текстур, не проставлены шейдеры (везде default), глючат сектора, нет лодов и т. д. В общем работы ещё много:
Не знаю, как побороть глючность секторов. Наверное неправильно построена иерархия визуалов. Какая вообще она должна быть? Единственное, что я понял, это то, что не должно быть в CHILDREN_L ссылки на непрочитанный визуал. То есть не должно быть ссылки на то, что храниться ниже в файле, только то, что прочитано выше. -------------------- |
 
|
|
05.10.2019, 21:14
Сообщение
#86
|
|
Почти Мастер Репутация: 111 Группа: Участник Сообщений: 1158 Награды: 3 Регистрация: 07.08.2015 |
Pavel_Blend, в компиляторе, сектора собираются в последнюю очередь, прям перед последним сейвом build.cform в файле level.geomx, наверно.
Может быть, а может не быть. |
 
|
|
05.10.2019, 21:25
Сообщение
#87
|
|
Продвинутый геймер Репутация: 51 Группа: Участник Сообщений: 489 Награды: 3 Регистрация: 12.11.2012 |
Дизель, у меня в аддоне всё импортируется как есть, и экспортируется тоже как есть (я по крайней мере так пытаюсь сделать). То есть я в своём коде не делал генерацию секторов (как это делает компилятор). И я не разбиваю геометрию на визуалы и не вычисляю их иерархию. Вместо этого при импорте я пытаюсь средствами блендера создать что-то похожее на внутреннюю структуру уровня. А потом при экспорте пытаюсь сохранить эту структуру в level. Но пока не до конца понял, в каком порядке сохранять иерархические визуалы.
-------------------- |
 
|
|
05.10.2019, 21:37
Сообщение
#88
|
|
Почти Мастер Репутация: 111 Группа: Участник Сообщений: 1158 Награды: 3 Регистрация: 07.08.2015 |
Pavel_Blend, я могу перекомпилировать, для своего движка, уровень за 40 минут, после правок геометрии.
Да и Блендер освоить, для меня - это что самолётом учиться управлять. |
 
|
|
05.10.2019, 21:42
Сообщение
#89
|
|
Продвинутый геймер Репутация: 51 Группа: Участник Сообщений: 489 Награды: 3 Регистрация: 12.11.2012 |
Дизель, я это делаю, так как мне важно не сэкономить время на компиляции (хотя и это тоже важно), а сделать из блендера конвертер уровней между всеми известными билдами (эх мечты...). Чтобы можно было из билдов в ТЧ перенести уровни с минимальными изменениями.
Да и вообще, если будет полноценный импорт/экспорт уровней, то можно будет править юви развёртку, исправлять мелкие косяки, которые заметил после компиляции и т. д. -------------------- |
 
|
|
06.10.2019, 01:10
Сообщение
#90
|
|
Продвинутый геймер Репутация: 51 Группа: Участник Сообщений: 489 Награды: 3 Регистрация: 12.11.2012 |
Удалось решить проблему с мерцанием моделей. Я не правильно сохранял bbox и bsphere у визуалов.
-------------------- |
 
|
|
06.10.2019, 21:47
Сообщение
#91
|
|
Продвинутый геймер Репутация: 51 Группа: Участник Сообщений: 489 Награды: 3 Регистрация: 12.11.2012 |
Добавил Сюзанну (голова обезьяны, стандартная модель из блендера) на Кордон. Правда не без глюков. Деревья начали мерцать, юви у террейна глючная, не экспортировано вертексное освещение и т. д.
-------------------- |
 
|
|
07.10.2019, 06:31
Сообщение
#92
|
|
Мастер Игры Репутация: 104 Группа: Участник Сообщений: 1331 Регистрация: 08.08.2018 |
|
 
|
|
12.10.2019, 23:49
Сообщение
#93
|
|
Продвинутый геймер Репутация: 51 Группа: Участник Сообщений: 489 Награды: 3 Регистрация: 12.11.2012 |
Продолжаю делать импорт/экспорт level в блендер. Не понятна одна вещь. В файле level есть ogf с типом MT_LOD, у которых есть чанк OGF_LODDEF2. В этом чанке хранятся 8 полигонов, точнее 32 вершины от 8-ми полигонов. Эти 8 полигонов - это лод модели (просто плоскости, их 8 штук для разных проекции). В общем каждая вершина этой лод модели имеет данные:
1) позиция (3 числа флоат) 2) юви (2 числа флоат) 3) свет и хэми (4 байта) 4) тени от солнца (1 байт) 5) неизвестные данные (3 байта) Что это за последних 3 байта? За что они отвечают? Я их импортировал в блендер как RGB цвет вершины и получилась билиберда. Вообще непонятно за что отвечают. Менял на нули и на другие числа, смотрел в игре и результат одинаков. -------------------- |
 
|
|
13.10.2019, 00:29
Сообщение
#94
|
|
. Репутация: 750 Группа: Участник Сообщений: 7072 Награды: 4 Регистрация: 30.07.2010 |
Pavel_Blend, эти байты движком никак не используются, даже не объявлены в нём. Их добавляет компилятор C++ чтобы размер структуры был кратен 4. В файле оказались потому что кто-то поленился и записал структуру целиком, как она представлена в памяти, вместо того чтобы писать только используемую часть.
Записывать в эти байты можно что угодно. Можно рандом, можно нули, можно своё фирменное магическое число, можно секретные послания. |
 
|
|
25.10.2019, 20:24
Сообщение
#95
|
|
Продвинутый геймер Репутация: 51 Группа: Участник Сообщений: 489 Награды: 3 Регистрация: 12.11.2012 |
Как сгенерировать тангенсы и бинормали для ogf визуала в level? И вообще, что такое тангенсы и бинормали в сталкере? Это перпендикулярные нормали вектора, которые указывают направление текстурных координат?
-------------------- |
 
|
|
25.10.2019, 21:06
Сообщение
#96
|
|
Почти Игроман Репутация: 42 Группа: Участник Сообщений: 626 Награды: 1 Регистрация: 10.12.2015 |
Блендер освоить, для меня - это что самолётом учиться управлять. Уроков куда больше, на уровне моддинга, чем на Максе. Никак не решиться за переход с Макса. Пока на Максе 2012 из множества удобств совместимостей с плагинами. И тут функционал с Блендером, а также с совместимостью с различными форматами моделей игр, просто огромен. Слежу за работой Pavel_Blend, рано или поздно перейду на Блендер и это однозначно. И да, ему же огромная благодарность за его труд в разделе работы со Сталкер контентом! -------------------- |
 
|
|
04.11.2019, 22:18
Сообщение
#97
|
|
Продвинутый геймер Репутация: 51 Группа: Участник Сообщений: 489 Награды: 3 Регистрация: 12.11.2012 |
Вопрос по поводу формата level:
В level файлах есть чанк fsL_LIGHT_DYNAMIC = 6. В нём хранятся источники света. И эти источники света имеют позицию и направление. Именно направление, а не поворот в углах Эйлера. Как преобразовать направление в углы Эйлера? И ещё вопрос: в чанк fsL_LIGHT_DYNAMIC попадают только динамические источники света (те источники света, у которых установлена галочка Dynamic в LevelEditor). Если в сцене есть один динамический источник света, то в level файл будет сохранено два источника света. Первый компилятор сам добавляет, а второй из LevelEditor. Вопрос: почему компилятор добавляет ещё один источник света, помимо добавленного в LevelEditor? Зачем они нужен и для чего он используется? И кто-нибудь значет, как расшифровывается сокращение fsL? В исходниках имена всех чанков уровня имеют такую приставку. -------------------- |
 
|
|
04.11.2019, 22:22
Сообщение
#98
|
|
Мастер Игры Репутация: 104 Группа: Участник Сообщений: 1331 Регистрация: 08.08.2018 |
Вопрос по поводу формата level: В level файлах есть чанк fsL_LIGHT_DYNAMIC = 6. В нём хранятся источники света. И эти источники света имеют позицию и направление. Именно направление, а не поворот в углах Эйлера. Как преобразовать направление в углы Эйлера? И ещё вопрос: в чанк fsL_LIGHT_DYNAMIC попадают только динамические источники света (те источники света, у которых установлена галочка Dynamic в LevelEditor). Если в сцене есть один динамический источник света, то в level файл будет сохранено два источника света. Первый компилятор сам добавляет, а второй из LevelEditor. Вопрос: почему компилятор добавляет ещё один источник света, помимо добавленного в LevelEditor? Зачем они нужен и для чего он используется? И кто-нибудь значет, как расшифровывается сокращение fsL? В исходниках имена всех чанков уровня имеют такую приставку. Разрабатываешь компилятор уровня для сталкер на блендере? |
 
|
|
04.11.2019, 22:30
Сообщение
#99
|
|
Продвинутый геймер Репутация: 51 Группа: Участник Сообщений: 489 Награды: 3 Регистрация: 12.11.2012 |
Разрабатываешь компилятор уровня для сталкер на блендере? почти. Делаю импортёр уровней в блендер для экспорта обратно в level, level.geom, level.geomx, level.cform. Почти всё получилось, кроме источников света, swis и двусторонних поверхностей. Просто двусторонние поверхности имеют разное освещение с лицевой и обратной сторон полигонов. А я в блендер импортирую только лицевую сторону полигонов. Из-за чего теряется информация об освещении на обратной стороне полигона. Делаю импорт/экспорт уровней для того, чтобы в будущем можно было конвертировать уровни между разными билдами, без необходимости делать повторную компиляцию. Пока плагин поддерживает уровни из финалки. -------------------- |
 
|
|
05.11.2019, 07:47
Сообщение
#100
|
|
Pro gamer
Почти Игроман Репутация: 72 Группа: Участник Сообщений: 622 Регистрация: 05.11.2017 |
расшифровывается сокращение fsL level file system а второй из LevelEditor Постой. Файл level. создаёт только компилятор xrLC, редактор к нему даже не касается.* *в ТЧ Как преобразовать направление в углы Эйлера? |
 
|
|
Текстовая версия | Сейчас: 26.04.2024, 23:00 |