Level.hom — различия между версиями
Материал из S.T.A.L.K.E.R. Inside Wiki
Pavel (обсуждение | вклад) |
Pavel (обсуждение | вклад) (→Блок 0x1 (данные меша)) |
||
| (не показаны 6 промежуточные версии 1 участника) | |||
| Строка 1: | Строка 1: | ||
| + | Перед прочтением данной статьи, прочтите эту статью: <br>[[Бинарные файлы]] | ||
| + | |||
== Описание == | == Описание == | ||
| − | + | HOM - отсекатель геометрии. | |
| + | |||
| + | Является мешем. | ||
| + | |||
| + | Нужен для увеличения производительности. | ||
| + | |||
| + | Создаётся данный файл при компиляции уровня (если в СДК были расставлены HOM объекты). | ||
| + | |||
| + | Сохраняется в папку gamedata\levels\имя_уровня\level.hom | ||
== Версии == | == Версии == | ||
| − | Не менялся формат с самой первой версии. С билда 1154 до Зова Припяти версия равна 0. | + | Не менялся формат с самой первой версии. |
| + | |||
| + | С билда 1154 до Зова Припяти версия равна 0. | ||
== Блоки == | == Блоки == | ||
| − | Состоит из двух блоков | + | Состоит из двух блоков: |
| − | + | {| class="standard" | |
| − | + | |- | |
| − | 0x1 - | + | !Идентификатор блока||Размер (в байтах)||Описание |
| + | |- | ||
| + | |0x0||4||заголовок (содержит информацию о версии формата) | ||
| + | |- | ||
| + | |0x1||количество полигонов * 40||координаты вершин и свойства полигонов | ||
| + | |- | ||
| + | |} | ||
Структура файла схожа с *.som | Структура файла схожа с *.som | ||
| − | |||
== Описание блоков == | == Описание блоков == | ||
| − | === Блок 0x0 === | + | === Блок 0x0 (заголовок) === |
| − | + | {| class="standard" | |
| + | |- | ||
| + | !Тип||Описание | ||
| + | |- | ||
| + | |I||версия формата | ||
| + | |- | ||
| + | |} | ||
| + | |||
| + | ===Блок 0x1 (данные меша) === | ||
| + | |||
| + | Содержит данные треугольников, которые записаны поочерёдно. | ||
| + | |||
| + | Данные для одного треугольника: | ||
| + | |||
| + | {| class="standard" | ||
| + | |- | ||
| + | !Тип||Описание | ||
| + | |- | ||
| + | |fff||3D координаты первой вершины треугольника | ||
| + | |- | ||
| + | |fff||3D координаты второй вершины треугольника | ||
| + | |- | ||
| + | |fff||3D координаты третьей вершины треугольника | ||
| + | |- | ||
| + | |I||опция "two sided" | ||
| + | |- | ||
| + | |} | ||
| − | + | Возможные значения опции "two sided": 0x0, 0x1 | |
| − | + | ||
| − | Индексы полигонов не сохраняются, но их легко можно сгенерировать, так как все вершины сохранены так, что индексы полигонов расположены в порядке возрастания | + | Индексы полигонов не сохраняются, но их легко можно сгенерировать, так как все вершины сохранены так, что индексы полигонов расположены в порядке возрастания. |
| − | + | Первый треугольник будет таким: 0, 1, 2, второй: 3, 4, 5, третий: 6, 7, 8 и т.д. | |
[[Участник: Pavel]] | [[Участник: Pavel]] | ||
[[Категория:Форматы файлов]] | [[Категория:Форматы файлов]] | ||
Текущая версия на 08:00, 20 декабря 2016
Перед прочтением данной статьи, прочтите эту статью:
Бинарные файлы
Содержание
Описание
HOM - отсекатель геометрии.
Является мешем.
Нужен для увеличения производительности.
Создаётся данный файл при компиляции уровня (если в СДК были расставлены HOM объекты).
Сохраняется в папку gamedata\levels\имя_уровня\level.hom
Версии
Не менялся формат с самой первой версии.
С билда 1154 до Зова Припяти версия равна 0.
Блоки
Состоит из двух блоков:
| Идентификатор блока | Размер (в байтах) | Описание |
|---|---|---|
| 0x0 | 4 | заголовок (содержит информацию о версии формата) |
| 0x1 | количество полигонов * 40 | координаты вершин и свойства полигонов |
Структура файла схожа с *.som
Описание блоков
Блок 0x0 (заголовок)
| Тип | Описание |
|---|---|
| I | версия формата |
Блок 0x1 (данные меша)
Содержит данные треугольников, которые записаны поочерёдно.
Данные для одного треугольника:
| Тип | Описание |
|---|---|
| fff | 3D координаты первой вершины треугольника |
| fff | 3D координаты второй вершины треугольника |
| fff | 3D координаты третьей вершины треугольника |
| I | опция "two sided" |
Возможные значения опции "two sided": 0x0, 0x1
Индексы полигонов не сохраняются, но их легко можно сгенерировать, так как все вершины сохранены так, что индексы полигонов расположены в порядке возрастания.
Первый треугольник будет таким: 0, 1, 2, второй: 3, 4, 5, третий: 6, 7, 8 и т.д.