Библиотека текстур (.txm)
📌 Обзор
Текстуры либо хранятся в отдельном файле (.txm), либо встроены в файлы моделей (.3db, .cmp, .dfm и т. д.).
Freelancer поддерживает следующие типы:
- Несжатые изображения Targa (.tga) в 16-битном (5551, RGB), 24-битном (888, RGB) и 32-битном (8888, RGBA) режимах. ❗ Изображения Targa и/или палитры, сжатые RLE, не поддерживаются.
- Изображения DirectDrawSurface (.dds) в несжатом или сжатом DXT режимах. Для отображения окружения поддерживаются кубические карты.
stateDiagram-v2
direction LR
state type <<choice>>
mips: MIP0 … MIP9
Library: Texture library
[*] --> Library
Library --> texture_name
texture_name --> type
type --> mips : Targa bitmaps
type --> MIPS : DDS bitmap
type --> CUBE : DDS cubemap
Изображения Targa хранятся по отдельности в виде записей MIPn, начиная с 0, что соответствует полному размеру, а каждая последующая запись — половине размера предыдущей MIP-карты. Изображение DirectDrawSurface будет включать MIP-карты (если они есть) и попадёт в запись MIPS.
Текстурная анимация
Freelancer поддерживает покадровую (переворачивающуюся) анимацию текстур.
stateDiagram-v2
direction LR
mips: MIPn
Library: Texture library
TexCount: Texture count
FrameCount: Frame count
FrameRects: Frame rects
[*] --> Library
Library --> animated_texture
animated_texture --> TexCount
animated_texture --> FrameCount
animated_texture --> FPS
animated_texture --> FrameRects
Library --> animated_texture_0
animated_texture_0 --> mips
| Имя | Тип | Описание |
|---|---|---|
| Texture count | int32 | Текстуры, используемые в анимации. (1 или более) |
| Frame count | int32 | Общее количество кадров. |
| FPS | float | Частота кадров анимации. |
| Frame rects | varying | Анимационные кадры. |
- Отдельные текстуры затем должны использовать суффикс _n, где n — индекс текстуры, начинающийся с 0. Например, текстура с именем
lightning256будет содержать записи, указанные выше, а другая текстураlightning256_0будет содержать фактические записи MIPn/MIPS, хранящие растровые изображения.
Каждый кадр анимации:
| Имя | Тип | Описание |
|---|---|---|
| index | int32 | Индекс изображения текстуры (начиная с 0). |
| startU | float | Координата U начальной точки. |
| startV | float | Координата V начальной точки. |
| endU | float | Координата U конечной точки. |
| endV | float | Координата V конечной точки. |
- Начало координат в левом верхнем углу.
