Формат файлов *.LOD

Редакция 1.02

Оглавление


Введение

Формат файла пока сравнительно молодой и может претерпевать некоторые изменения. Те параметры которые были изменены или добавлены в этой редакции по сравнению с предыдущей редакций, отмечены жёлтым цветом или красным словом New ! . Новые добавленные блоки размечены как New ! begin в начале и New ! end в конце.

Структура файла

Файлы типа *.LOD состоят из сигнатуры и блоков.

Сигнатура

Каждый LOD-файл начинается сигнатурой "LODka3D1". Это означает, что это именно LOD-Файл, а не что-нибудь другое. Далее идут блоки ...

Блоки

Каждый блок состоит из заголовка и данных идущих за ним. Заголовок занимает 12 байт. В нём описан тип данных ( ID ), их длина ( Size ), и один дополнительный параметр данных названный Count, так как часто используется как счётчик.

При помощи Size удобно пропускать ненужные блоки. Считываем из файла/потока только заголовок, и если блок не нужен, то смещаемся по файлу/потоку на Size, таким образом оказываясь перед заголовком следующего за этим блока.

Заголовок блока

Заголовок имеет формат :

Параметр Размер ( байт ) Смещение ( байт ) Тип Описание
ID 4 0 string

Идентефикатор блока. Определяет тип данных идущих за заголовком. Например "LOD1" - означает что данные содержит LOD-файл, PHS1 - означает, что данные содержит описание физики. И т. д.

Size 4 4 Integer

Размер данных идущих за заголовком. Сам заголовок в эту величину не входит. Если надо получить размер данных с заголовком, то к этой величине надо прибавить 12 ( длина заголовка ).

Count 4 8 Integer

Дополнительный параметр данных. Часто используется как счётчки, поэтому и назван Count.

На Паскале описание заголовка выглядит так:

  type
    TLODChunk = packed record
      ID    : array [0..3] of Char;
      Size  : Integer;
      Count : Integer;
    end;

Данные некоторых блоков ( LOD1, MAL1, TXTL, SHDL, MSL1, ANS1, LGS1, PXL1, CLL1 ) могут состоять исключительно из других блоков. Данные других блоков ( INF1, MAT1, SHDR, TXTR, MSH1, SK1, ANM1, PSH1, LIG1, PXI1, COL1, IMG1 ) - нет.

Типы данных

Типы данных, которые используются при описании формата.

Тип данных Размер ( байт ) Значения Описание
Integer 4 -2147483648..2147483647

Целое знаковое 32-битное число.

Smallint 2 -32768..32767

Целое знаковое 16-битное число.

Byte 1 0..255

Байт. Целое беззнаковое 8-битное число.

ShortInt 1 -128..127

Целое знаковое 8-битное число.

Boolean 1 0..1

Тот же байт, но принимает только два значения, 0 или 1. Чтобы определять включено что-то или выключено.

Single 4 1.5 x 10^-45 .. 3.4 x 10^38

Вещественное знаковое 32-битное число. Значащих цифр - 7-8.

string произвольный 0..255

Строка символов. Состоит из байтов.

Array произвольный произвольное

Массив. Любые произваольные данные.

Сигнатура и блоки в древовидном представлении

Типы блоков


Предыдущие редакции

Вопросы, пожелания, обратная связь

Если вы найдёте какие-либо ошибки в формате или в этом описании, или что-то здесь объяснено не однозначно, или у вас есть пожелания как формат можно улучшить/дополнить - пишите .

Об орфографических ошибках просьба не сообщать.


© LODka3D 2006 —
Hosted by uCoz