2DFX (Секция RW) — различия между версиями

Материал из GTAModding.ru
Перейти к: навигация, поиск
(Type 4 - Sun Flare)
(Type 0 - Light)
Строка 20: Строка 20:
 
===Type 0 - Light===
 
===Type 0 - Light===
  
Этот тип используется для света. Состоит из 80 байтов.
+
Этот тип используется, чтобы создать источник света. Размер может составлять 76 или 80 байт.
 
+
*При размере 76 байт
   4b - BYTE[4] - Цвет (RGBA)
+
0x00 | RwRGBA color
   4b - FLOAT    - Дальность прорисовки
+
0x04 | float  coronaFarClip
   4b - FLOAT    - Внешний круг
+
0x08 | float  pointlightRange
   4b - FLOAT    - Размер
+
0x0C | float  coronaSize
   4b - FLOAT    - Внутренний круг
+
0x10 | float  shadowSize
   5b - BYTE[5- Параметры
+
0x14 | BYTE   coronaFlashType
  24b - CHAR[24] - Имя текстуры короны
+
0x15 | BYTE   coronaEnableReflection
  24b - CHAR[24] - Имя текстуры тени
+
  0x16 | BYTE  coronaFlareType
   4b - INT32    - Вспышка
+
0x17 | BYTE   shadowColorMultiplier
   3b - BYTE[3] - Параметр вспышки(?)
+
0x18 | BYTE   flags1
 +
0x19 | char   coronaTexName[24]
 +
0x31 | char   shadowTexName[24]
 +
0x49 | BYTE   shadowZDistance
 +
0x4A | BYTE   flags2
 +
0x4B | BYTE  unknown[2]
 +
*При размере 80 байт
 +
  0x00 | RwRGBA color
 +
  0x04 | float  coronaFarClip
 +
0x08 | float  pointlightRange
 +
0x0C | float  coronaSize
 +
0x10 | float  shadowSize
 +
0x14 | BYTE  coronaFlashType
 +
0x15 | BYTE  coronaEnableReflection
 +
0x16 | BYTE  coronaFlareType
 +
0x17 | BYTE  shadowColorMultiplier
 +
0x18 | BYTE  flags1
 +
0x19 | char  coronaTexName[24]
 +
  0x31 | char  shadowTexName[24]
 +
0x49 | BYTE   shadowZDistance
 +
0x4A | BYTE   flags2
 +
0x4B | BYTE   unknownDirection_x
 +
0x4C | BYTE  unknownDirection_y
 +
0x4D | BYTE  unknownDirection_z
 +
0x4E | BYTE  unknown[2]
  
 
===Type 1 - Particle Effects===
 
===Type 1 - Particle Effects===

Версия 19:38, 12 июля 2012

Секция 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
0x04 | float  coronaFarClip
0x08 | float  pointlightRange
0x0C | float  coronaSize
0x10 | float  shadowSize
0x14 | BYTE   coronaFlashType
0x15 | BYTE   coronaEnableReflection
0x16 | BYTE   coronaFlareType
0x17 | BYTE   shadowColorMultiplier
0x18 | BYTE   flags1
0x19 | char   coronaTexName[24]
0x31 | char   shadowTexName[24]
0x49 | BYTE   shadowZDistance
0x4A | BYTE   flags2
0x4B | BYTE   unknown[2]
  • При размере 80 байт
0x00 | RwRGBA color
0x04 | float  coronaFarClip
0x08 | float  pointlightRange
0x0C | float  coronaSize
0x10 | float  shadowSize
0x14 | BYTE   coronaFlashType
0x15 | BYTE   coronaEnableReflection
0x16 | BYTE   coronaFlareType
0x17 | BYTE   shadowColorMultiplier
0x18 | BYTE   flags1
0x19 | char   coronaTexName[24]
0x31 | char   shadowTexName[24]
0x49 | BYTE   shadowZDistance
0x4A | BYTE   flags2
0x4B | BYTE   unknownDirection_x
0x4C | BYTE   unknownDirection_y
0x4D | BYTE   unknownDirection_z
0x4E | BYTE   unknown[2]

Type 1 - Particle Effects

Этот тип используется для эффекта частиц. Состоит из 24 байтов.

24b - CHAR[24] - Имя эффекта частиц

Имена эффектов частиц присутствует в файле effect.fxp.

Type 3 - PEDs

PED секция состоит из 56 байтов. Используется для появления пешеходов (Например на стульях, в магазинах, на скамейках и др..) Используется также информация об анимации пешехода.

 4b - INT32    - Флаг (1 - сидит ; 5 - стоит)
 8b - BYTE[8]? - Неизвестно
16b - FLOAT[4] - Поворот (XYZW)
12b - BYTE[12]?- ID пешехода?
 8b - CHAR[8]  - Анимация пешехода
 4b - INT32    - Вероятность появления пешехода
 4b - INT32    - Неизвестно (всегда ноль)

Поворот используется в виде кватерниона, как и у объектов в [[IPL} файлах.

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 файле.

Ссылки

Статья о том, как создать эскалатор + скрипт