2DFX (Секция RW) — различия между версиями
Материал из GTAModding.ru
DK22 (обсуждение | вклад) м (→Type 0 - Light) |
DK22 (обсуждение | вклад) (→Type 0 - Light) |
||
Строка 56: | Строка 56: | ||
0x4D | BYTE lookDirection_z // ... | 0x4D | BYTE lookDirection_z // ... | ||
0x4E | BYTE padding[2] | 0x4E | BYTE padding[2] | ||
+ | Набор флагов 1 (flags1) | ||
+ | 1 CORONA_CHECK_OBSTACLES // Если между короной и камерой есть какие-либо обьекты, корона отрисована не будет | ||
+ | 2 FOG_TYPE // Определяет тип тумана для точечного источника света | ||
+ | 4 FOG_TYPE // Определяет тип тумана для точечного источника света | ||
+ | 8 WITHOUT_CORONA // Не создавать корону | ||
+ | 16 CORONA_ONLY_AT_LONG_DISTANCE // Корону видно только издалека | ||
+ | 32 AT_DAY // Работает днём | ||
+ | 64 AT_NIGHT // Работает ночью | ||
+ | 128 BLINKING1 // Мигает | ||
+ | Набор флагов 2 (flags2) | ||
+ | 1 CORONA_ONLY_FROM_BELOW // Корону видно только снизу (когда высота позиции камеры меньше высоты источника света) | ||
+ | 2 BLINKING2 // Мигает | ||
+ | 4 UDPDATE_HEIGHT_ABOVE_GROUND // Обновлять значение дистанции от короны до земли (используется для создания отражения короны) | ||
+ | 8 CHECK_DIRECTION // Работает только если камера занимает определённую позицию (вектор lookDirection) | ||
+ | 16 BLINKING3 // Мигает | ||
===Type 1 - Particle Effects=== | ===Type 1 - Particle Effects=== |
Версия 17:55, 20 февраля 2013
Секция RenderWare |
2dfx |
0x0253F2F8 |
2dfx - одна из секции в RW. В GTA SA используется для расположения света, эффектов частиц и прочего. Предыдущие игры серии (а также GTA 4) использует 2dfx в IDE файлах.
Содержание |
Заголовок
Секция 2dfx начинается с 4рёх байта DWORD, в котором указана информация о количестве используемых записей в данной секции.
Записи
Заголовок состоит из 20 байтов.
12 byte - FLOAT[3] - Координаты вектора (xyz) 4 byte - DWORD - Тип 2DFX 4 byte - DWORD - Размер данных
Type 0 - Light
Этот тип используется, чтобы создать источник света. Размер может составлять 76 или 80 байт.
- При размере 76 байт
0x00 | RwRGBA color // Цвет. Значение alpha обычно равно 200 0x04 | float coronaFarClip // Дистанция видимости короны 0x08 | float pointlightRange // Радиус точечного источника света (повершиноое освещение моделей, у которых отсутсвует прелит) 0x0C | float coronaSize // Размер короны (высота = ширина) 0x10 | float shadowSize // Размер тени (высота = ширина) 0x14 | BYTE coronaShowMode // Тип отображения короны (1-13) 0x15 | BYTE coronaEnableReflection // Включить отражение короны на мокром асфальте 0x16 | BYTE coronaFlareType // Тип бликов для короны (0-1-2) 0x17 | BYTE shadowColorMultiplier // Интенсивность тени 0x18 | BYTE flags1 // Набор флагов 1 0x19 | char coronaTexName[24] // Название текстуры короны в particle.txd 0x31 | char shadowTexName[24] // Название текстуры тени в particle.txd 0x49 | BYTE shadowZDistance // Максимальное расстояние для отрисовки тени 0x4A | BYTE flags2 // Набор флагов 2 0x4B | BYTE padding
- При размере 80 байт
0x00 | RwRGBA color // Цвет. Значение alpha обычно равно 200 0x04 | float coronaFarClip // Дистанция видимости короны 0x08 | float pointlightRange // Радиус точечного источника света (повершиноое освещение моделей, у которых отсутсвует прелит) 0x0C | float coronaSize // Размер короны (высота = ширина) 0x10 | float shadowSize // Размер тени (высота = ширина) 0x14 | BYTE coronaShowMode // Тип отображения короны (1-13) 0x15 | BYTE coronaEnableReflection // Включить отражение короны на мокром асфальте 0x16 | BYTE coronaFlareType // Тип бликов для короны (0-1-2) 0x17 | BYTE shadowColorMultiplier // Интенсивность тени 0x18 | BYTE flags1 // Набор флагов 1 0x19 | char coronaTexName[24] // Название текстуры короны в particle.txd 0x31 | char shadowTexName[24] // Название текстуры тени в particle.txd 0x49 | BYTE shadowZDistance // Максимальное расстояние для отрисовки тени 0x4A | BYTE flags2 // Набор флагов 2 0x4B | BYTE lookDirection_x // Вектор определяет, из какой стороны видно источник света 0x4C | BYTE lookDirection_y // ... 0x4D | BYTE lookDirection_z // ... 0x4E | BYTE padding[2]
Набор флагов 1 (flags1)
1 CORONA_CHECK_OBSTACLES // Если между короной и камерой есть какие-либо обьекты, корона отрисована не будет 2 FOG_TYPE // Определяет тип тумана для точечного источника света 4 FOG_TYPE // Определяет тип тумана для точечного источника света 8 WITHOUT_CORONA // Не создавать корону 16 CORONA_ONLY_AT_LONG_DISTANCE // Корону видно только издалека 32 AT_DAY // Работает днём 64 AT_NIGHT // Работает ночью 128 BLINKING1 // Мигает
Набор флагов 2 (flags2)
1 CORONA_ONLY_FROM_BELOW // Корону видно только снизу (когда высота позиции камеры меньше высоты источника света) 2 BLINKING2 // Мигает 4 UDPDATE_HEIGHT_ABOVE_GROUND // Обновлять значение дистанции от короны до земли (используется для создания отражения короны) 8 CHECK_DIRECTION // Работает только если камера занимает определённую позицию (вектор lookDirection) 16 BLINKING3 // Мигает
Type 1 - Particle Effects
Этот тип используется для эффекта частиц. Состоит из 24 байтов.
24b - CHAR[24] - Имя эффекта частиц
Имена эффектов частиц присутствует в файле effect.fxp.
Type 3 - PEDs
PED секция состоит из 56 байтов. Используется для появления пешеходов (Например на стульях, в магазинах, на скамейках и др..)
4b - INT32 - Тип поведения (1 - сидит ; 5 - стоит) 36b - VECTOR3[3] - Вращение (right, top, at) 8b - CHAR[8] - Имя внешнего скрипта 4b - INT32 - Вероятность появления пешехода 1b - BYTE - Неизвестно 1b - BYTE - Не используется 1b - BYTE - Неизвестно 1b - BYTE - Не используется
Type 4 - Sun Flare
Этот тип используется для создания бликов солнца на обьекте (в виде корон). Данный тип использует только данные из заголовка (позиция).
Type 6 - EnEx маркеры
Тип может вызвать вылеты в игре! Используется например в модели barrio3b_lae.dff'.
4b - FLOAT - Угол поворота enter-маркера (относительно обьекта) (всегда 0 ?) 4b - FLOAT - Радиус приближения к маркеру, X 4b - FLOAT - Радиус приближения к маркеру, Y 12b - FLOAT[3]- Позиция расположения exit-маркера (офсет относительно обьекта) (всегда 0 ?) 4b - FLOAT - Угол поворота exit-маркера (относительно обьекта) (всегда 0 ?) 4b - INT32 - Номер интерьера 4b - INT32 - Флаги? 8b - CHAR[8] - Название интерьера 4b - INT32 - Цвет неба
Type 7 - Street Signs
Этот тип управляет бегающими строчками. Размер составляет 88 байтов.
8b - FLOAT[2] - Масштаб (xy) 12b - FLOAT[3] - Поворот (xyz) 2b - WORD - Флаги, определяют 3 флага для генерации текста 64b - CHAR[64] - Текст, 16 байт на строку
Строки могут начинаться с таких символов, как <
, ^
и >
; также символ _
используется вместо пробела.
Type 8 - Slotmachine-wheels
Это игровые автоматы.
4b - Int32 - Индекс колеса
Каждое колесо в игровом автомате использует индекс 1. Положение индекса это положение колеса игрового автомата. Может быть, позицией можно управлять через SCM.
Type 9
Размер равен 12 байтам. Чаще всего используется в 2DFX секциях большого размера. Возможно является каким-то разделителем. Стурктура:
4b - FLOAT - X 4b - FLOAT - Y 4b - INT32 -
Type 10 - Escalators
Этот тип относится к эскалаторам. Размер равен 40 байтам.
12b - FLOAT[3] - Нижняя часть эскалатора (xyz) 12b - FLOAT[3] - Верхняя часть эскалатора (xyz) 12b - FLOAT[3] - Конечная точка эскалатора (точка Z должна быть наверху, если эскалатор едет вверх, если вниз, то на нижней позиции эскалатора) 4b - DWORD - Дирекция движения (0/1) (Вниз/Вверх)
Модели эскалаторов должны быть расположены через бинарные IPL файлы (То есть те, которые скомпилированы в двоичный вид и находятся в .img файле). Информация о скорости движения эскалатора находится в .exe файле.