TXD — различия между версиями
Материал из GTAModding.ru
Lego (обсуждение | вклад) (Добавил плашку сан андреаса.) |
|||
(не показаны 12 промежуточных версий 5 участников) | |||
Строка 1: | Строка 1: | ||
− | + | '''TXD''' (TeXture Dictionary) - формат [[RenderWare]], использующийся [[Rockstar North]] для хранения игровой графики в [[GTA 3]], [[GTA VC|GTA: Vice City]], [[GTA SA|GTA: San Andreas]], а также Bully, The Warriors и [[Manhunt]]. TXD - это платформозависимый формат (<i>англ.</i> platform specific texture dictionary), таким образом файлы этого формата имеют практически идентичную структуру на одной и той же платформе, но сильно различаются на разных платформах. | |
− | '''TXD''' ( | + | |
== Основные данные == | == Основные данные == | ||
− | Все текстуры в GTA третьей серии закодированы в виде бинарных потоков - [[RenderWare binary stream file]], специализированных для движка RenderWare, используемого в игре. Все бинарные потоки с текстурами имеют расширение TXD (TeXture Dictionary), для просмотра и редактирования иерархии которого существует программа [[RW Analyze]] от Steve M. Для создания, изменения текстур в архиве и их типа компрессии так же используют специальные программы, а именно [[PS2 TXD Viewer]] (только для просмотра текстур на PS2), [[G-TXD]] | + | Все текстуры в GTA третьей серии закодированы в виде бинарных потоков - [[RenderWare binary stream file]], специализированных для движка [[RenderWare]], используемого в игре. Все бинарные потоки с текстурами имеют расширение TXD (TeXture Dictionary), для просмотра и редактирования иерархии которого существует программа [[RW Analyze]] от Steve M. Для создания, изменения текстур в архиве и их типа компрессии так же используют специальные программы, а именно [[PS2 TXD Viewer]] (только для просмотра текстур на PS2), [[G-TXD]], [[TXD Workshop]] и др. |
== Типы текстур == | == Типы текстур == | ||
− | Текстуры в GTA можно разделить на 4-битные (только для PS2), 8-битные, 16-битные, 32-битные. Разрешения всех текстур в ГТА обычно кратно N^2, т.е. встречаются 2х2, 4х4, 2x4 и т.д. В некоторых модах можно встретить нестандартные разрешения текстур, использование которых так же не запрещено документацией RenderWare. | + | Текстуры в GTA можно разделить на 4-битные (только для PS2), 8-битные, 16-битные, 32-битные. Разрешения всех текстур в ГТА обычно кратно N^2, т.е. встречаются 2х2, 4х4, 2x4 и т.д. В некоторых модах можно встретить нестандартные разрешения текстур, использование которых так же не запрещено документацией [[RenderWare]], но движок игры всё равно выделит память на текстуру столько же, сколько и на кратную двум, поэтому использование нестандартных расширений текстур не рационально. |
== Структура == | == Структура == | ||
Строка 12: | Строка 11: | ||
* Texture Dictionary | * Texture Dictionary | ||
− | o Struct - 2b - количество текстур в архиве | + | o Struct |
+ | - 2b - количество текстур в архиве (в версиях до 3.6.0.0 (или ранее) - 4 байта) | ||
+ | - 2b - deviceId (начиная с версии 3.6.0.0 (или ранее)) - 1 для D3D8-платформы, 2 - для D3D9. | ||
o Texture Native - данная секция в TXD может повторяться несколько раз, в зависимости от количества текстур в архиве. | o Texture Native - данная секция в TXD может повторяться несколько раз, в зависимости от количества текстур в архиве. | ||
+ Struct - заголовок с именем и параметрами текстуры + тело текстуры | + Struct - заголовок с именем и параметрами текстуры + тело текстуры | ||
− | + Extension - дополнение подсекции ( | + | + Extension - дополнение подсекции (Плагин анизотропной фильтрации в GTA San Andreas и GTA Vice City) |
o Extension - дополнение секции (не используется) | o Extension - дополнение секции (не используется) | ||
Строка 32: | Строка 33: | ||
# Sky Mipmap Val (RW Section) - 4 bytes неизвестно | # Sky Mipmap Val (RW Section) - 4 bytes неизвестно | ||
o Extension - дополнение секции (0b - пусто - не используется) | o Extension - дополнение секции (0b - пусто - не используется) | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
== Альфа канал == | == Альфа канал == | ||
К изображениям в TXD также применим альфа канал. Разрешение текстуры и её альфа-канала всегда равны. | К изображениям в TXD также применим альфа канал. Разрешение текстуры и её альфа-канала всегда равны. | ||
− | Альфа канал, также известный как маска | + | Альфа канал, также известный как маска - это черно-белое изображение, применяется с целью создания эффекта частичной прозрачности, либо с целью определения контуров, если модель выполняет роль спрайта в игровой сцене. Таким образом черные сектора альфа-канала определяют полную прозрачность, белые - полную видимость, а участки с разными оттенками серого определяют частичную прозрачность накладываемой на объект текстуры. Примеры - текстуры стекла, растительности, particle-эффектов, шрифтов и т.д. |
+ | <br /><br /> | ||
+ | Для наглядности возьмём текстуру и её альфа-канал: | ||
− | [[ | + | [[Image:TXD_redtext_image.gif]] |
− | [[ | + | [[Image:TXD_redtext_alpha.gif]] |
В итоге мы получим красный текст. | В итоге мы получим красный текст. | ||
+ | |||
+ | == Mip Mapping == | ||
+ | TXD всех версий так же поддерживает хранение уровней детализации текстур. Но для текстур низкого и среднего качества, в большинстве случаев используемых в GTA третьей серии, использовать mip mappng не имеет особого смысла. Более подробнее описано в статье [[MIP-текстурирование]]. | ||
+ | |||
+ | == Swizzling == | ||
+ | Важно отметить, что на PS2 растр <i>может</i> хранится с использованием swizzling'а и для корректного отображения в графическом редакторе нужно преобразовать текстуру. | ||
== Компрессия текстур в TXD == | == Компрессия текстур в TXD == | ||
− | GTA3, GTA VC и GTA SA поддерживают TXD с компрессированными текстурами. Алгоритмы компрессии, применяемые для текстур в игре - DXT1 (для текстур без альфа-канала) | + | ПК и XBox-версии GTA3, GTA VC и GTA SA поддерживают TXD с компрессированными текстурами. Алгоритмы компрессии, применяемые для текстур в игре - DXT1 (для текстур без альфа-канала), DXT3 (для текстур с альфа-каналом) и DXT5 (улучшенный алгоритм для текстур с альфа-каналом). Использование в модах текстур с компрессией существенно снижает размер мода, при этом качество текстуры падает не очень существенно. Тем более все современные видеокарты уже умеют работать с компрессованными текстурами. Компрессию не рекомендуется применять для текстур particle-эффектов, где после компрессии в альфа-канале могут наблюдаются сильные искажения кривой градиента, что очень заметно проявляется в игре. |
+ | |||
+ | == Особенности TXD на платформе XBOX == | ||
+ | В TXD-файлах, содержащихся в IMG-архиве XboX версий GTA 3 (не путать с модом GTA 3 X-BOX version) и GTA VC, применён специальный тип компрессии. Для их распаковки существует утилита [[dffxbox2pc]] от АК-73 aka Alex. После её применения TXD-архив открывается любым TXD-редактором (правда альфа-канал читается неверно). | ||
== GENERIC текстуры == | == GENERIC текстуры == | ||
В GTA3, GTA VC и GTA SA для моделей игровой карты можно создавать и использовать TXD вне IMG-архива. Этот тип текстур считается общим, они ищутся и загружаются движком автоматически, при загрузке игры, по адресу, указанному в [[gta3.dat]] или [[default.dat]]. Данный тип внедрён специально только для разработчиков игры, для прямого редактирования текстур без обращения к IMG-архиву игры, а так же для подгонки системных требований игры под требования заказчика. Соответственно разработчиками модов эта возможность нигде не применяется (кроме GTA Stories) и задокументирована Херомантом007 только на gtamodding.ru и gtamaps.net. | В GTA3, GTA VC и GTA SA для моделей игровой карты можно создавать и использовать TXD вне IMG-архива. Этот тип текстур считается общим, они ищутся и загружаются движком автоматически, при загрузке игры, по адресу, указанному в [[gta3.dat]] или [[default.dat]]. Данный тип внедрён специально только для разработчиков игры, для прямого редактирования текстур без обращения к IMG-архиву игры, а так же для подгонки системных требований игры под требования заказчика. Соответственно разработчиками модов эта возможность нигде не применяется (кроме GTA Stories) и задокументирована Херомантом007 только на gtamodding.ru и gtamaps.net. | ||
− | + | В исполняемый файл игры зашито только одно единственное имя GENERIC'а карты - generic.txd. Механизм использования множества внешних текстур очень простое - в любое место игровой директории размещается TXD-файл с любым именем (естественно на английском языке), затем прописываем путь к TXD в [[gta3.dat]] или [[default.dat]], ну а после в секции objs ИДЕшника в значении TexDictName записываем generic. Всё, теперь определённая игровая модель привязана к generic-текстурам. Например, я создал в папке TXD архив blablabla.txd, добавил строчку в [[gta3.dat]] "TEXDICTION TXD\BLABLABLA.TXD" и в каком-то IDE у меня есть строчечка "5000, ind_land666, generic, 1, 300, 0". Для модели ind_land666 игра будет искать текстуры во всех generic-текстурах, в том числе и в blablabla.txd. | |
+ | |||
+ | Для GTA SA можно использовать собственные имена внешних TXD-архивов в IDE, для этого его нужно просто прописать в секции txdp как дочернюю к generic'у, например "blablabla, generic", соответственно, и в секции obj можно написать "5000, ind_land666, blablabla, 300, 0" (обычно делается для того, чтобы после готовности карты можно было спокойно перенести TXD в IMG-архив). | ||
+ | |||
+ | == Редакторы TXD == | ||
+ | {| {{Таблица}} | ||
+ | |+ Программы для изменения TXD и создания новых | ||
+ | |- | ||
+ | ! Версия игры !! Название !! Авторы | ||
+ | |- | ||
+ | |[[Изображение:Gta3.png|16px]] [[Изображение:Vc.png|16px]] [[Изображение:Sa.png|16px]]||[[Magic.TXD]]||DK22Pac, The_GTA | ||
+ | |- | ||
+ | |[[Изображение:Gta3.png|16px]] [[Изображение:Vc.png|16px]] [[Изображение:Sa.png|16px]]||[[TXD Workshop]]||JernejL | ||
+ | |- | ||
+ | |[[Изображение:Gta3.png|16px]] [[Изображение:Vc.png|16px]] [[Изображение:Sa.png|16px]]||[[TXD Builder]]||Steve-M | ||
+ | |- | ||
+ | |[[Изображение:Gta3.png|16px]] [[Изображение:Vc.png|16px]] [[Изображение:Sa.png|16px]]||[[PS2 TXD Viewer]]||Steve-M | ||
+ | |- | ||
+ | |[[Изображение:Gta3.png|16px]] [[Изображение:Vc.png|16px]] [[Изображение:Sa.png|16px]]||[[PS2 TXD Mod]]||Studio "Exclusive" | ||
+ | |- | ||
+ | |[[Изображение:Gta3.png|16px]] [[Изображение:Vc.png|16px]] [[Изображение:Sa.png|16px]]||[[TXD 2048]]||Lego | ||
+ | |- | ||
+ | |[[Изображение:Gta3.png|16px]] [[Изображение:Vc.png|16px]] [[Изображение:Sa.png|16px]]||[[TXDFucker]]||Lego | ||
+ | |- | ||
+ | |[[Изображение:Gta3.png|16px]] [[Изображение:Vc.png|16px]] [[Изображение:Sa.png|16px]]||[[G-TXD]]||REspawn | ||
+ | |- | ||
+ | |[[Изображение:Gta3.png|16px]] [[Изображение:Vc.png|16px]] [[Изображение:Sa.png|16px]]||[[TxdGen]]||The_GTA | ||
+ | |- | ||
+ | |[[Изображение:Gta3.png|16px]] [[Изображение:Vc.png|16px]]||[[ViceTXD]]||Spooky | ||
+ | |} | ||
− | + | {{SA-navi}}{{VC-navi}}{{GTA3-navi}}{{Manhunt-navi}} | |
− | {{ | + | [[Категория:Форматы файлов]][[Категория:GTA 3]][[Категория:GTA VC]][[Категория:GTA SA]][[Категория:Manhunt]] |
− | [[Категория:Форматы файлов]][[Категория:GTA 3]][[Категория:GTA VC]][[Категория:GTA SA]] | + |
Текущая версия на 12:28, 25 апреля 2022
TXD (TeXture Dictionary) - формат RenderWare, использующийся Rockstar North для хранения игровой графики в GTA 3, GTA: Vice City, GTA: San Andreas, а также Bully, The Warriors и Manhunt. TXD - это платформозависимый формат (англ. platform specific texture dictionary), таким образом файлы этого формата имеют практически идентичную структуру на одной и той же платформе, но сильно различаются на разных платформах.
Содержание |
Основные данные
Все текстуры в GTA третьей серии закодированы в виде бинарных потоков - RenderWare binary stream file, специализированных для движка RenderWare, используемого в игре. Все бинарные потоки с текстурами имеют расширение TXD (TeXture Dictionary), для просмотра и редактирования иерархии которого существует программа RW Analyze от Steve M. Для создания, изменения текстур в архиве и их типа компрессии так же используют специальные программы, а именно PS2 TXD Viewer (только для просмотра текстур на PS2), G-TXD, TXD Workshop и др.
Типы текстур
Текстуры в GTA можно разделить на 4-битные (только для PS2), 8-битные, 16-битные, 32-битные. Разрешения всех текстур в ГТА обычно кратно N^2, т.е. встречаются 2х2, 4х4, 2x4 и т.д. В некоторых модах можно встретить нестандартные разрешения текстур, использование которых так же не запрещено документацией RenderWare, но движок игры всё равно выделит память на текстуру столько же, сколько и на кратную двум, поэтому использование нестандартных расширений текстур не рационально.
Структура
1. Архив текстур PC и X-BOX (TXD)
* Texture Dictionary o Struct - 2b - количество текстур в архиве (в версиях до 3.6.0.0 (или ранее) - 4 байта) - 2b - deviceId (начиная с версии 3.6.0.0 (или ранее)) - 1 для D3D8-платформы, 2 - для D3D9. o Texture Native - данная секция в TXD может повторяться несколько раз, в зависимости от количества текстур в архиве. + Struct - заголовок с именем и параметрами текстуры + тело текстуры + Extension - дополнение подсекции (Плагин анизотропной фильтрации в GTA San Andreas и GTA Vice City) o Extension - дополнение секции (не используется)
2. Архив текстур PS2 (TXD)
* Texture Dictionary o Struct - 2b - количество текстур в архиве, 2b - неизвестно o Texture Native - данная секция в TXD может повторяться несколько раз, в зависимости от количества текстур в архиве. + Struct - 4b - платформа (строка "PS2"), 4b- флаги фильтра + String - имя текстуры + String - имя альфа-канала текстуры + Struct # Struct - 4b- ширина, 4b - высота, 4b - битность, неизвестно # Struct - 80 bytes неизвестно, пиксели/индексы (80 bytes неизвестно, палитра) + Extension - дополнение секции # Sky Mipmap Val (RW Section) - 4 bytes неизвестно o Extension - дополнение секции (0b - пусто - не используется)
Альфа канал
К изображениям в TXD также применим альфа канал. Разрешение текстуры и её альфа-канала всегда равны.
Альфа канал, также известный как маска - это черно-белое изображение, применяется с целью создания эффекта частичной прозрачности, либо с целью определения контуров, если модель выполняет роль спрайта в игровой сцене. Таким образом черные сектора альфа-канала определяют полную прозрачность, белые - полную видимость, а участки с разными оттенками серого определяют частичную прозрачность накладываемой на объект текстуры. Примеры - текстуры стекла, растительности, particle-эффектов, шрифтов и т.д.
Для наглядности возьмём текстуру и её альфа-канал:
В итоге мы получим красный текст.
Mip Mapping
TXD всех версий так же поддерживает хранение уровней детализации текстур. Но для текстур низкого и среднего качества, в большинстве случаев используемых в GTA третьей серии, использовать mip mappng не имеет особого смысла. Более подробнее описано в статье MIP-текстурирование.
Swizzling
Важно отметить, что на PS2 растр может хранится с использованием swizzling'а и для корректного отображения в графическом редакторе нужно преобразовать текстуру.
Компрессия текстур в TXD
ПК и XBox-версии GTA3, GTA VC и GTA SA поддерживают TXD с компрессированными текстурами. Алгоритмы компрессии, применяемые для текстур в игре - DXT1 (для текстур без альфа-канала), DXT3 (для текстур с альфа-каналом) и DXT5 (улучшенный алгоритм для текстур с альфа-каналом). Использование в модах текстур с компрессией существенно снижает размер мода, при этом качество текстуры падает не очень существенно. Тем более все современные видеокарты уже умеют работать с компрессованными текстурами. Компрессию не рекомендуется применять для текстур particle-эффектов, где после компрессии в альфа-канале могут наблюдаются сильные искажения кривой градиента, что очень заметно проявляется в игре.
Особенности TXD на платформе XBOX
В TXD-файлах, содержащихся в IMG-архиве XboX версий GTA 3 (не путать с модом GTA 3 X-BOX version) и GTA VC, применён специальный тип компрессии. Для их распаковки существует утилита dffxbox2pc от АК-73 aka Alex. После её применения TXD-архив открывается любым TXD-редактором (правда альфа-канал читается неверно).
GENERIC текстуры
В GTA3, GTA VC и GTA SA для моделей игровой карты можно создавать и использовать TXD вне IMG-архива. Этот тип текстур считается общим, они ищутся и загружаются движком автоматически, при загрузке игры, по адресу, указанному в gta3.dat или default.dat. Данный тип внедрён специально только для разработчиков игры, для прямого редактирования текстур без обращения к IMG-архиву игры, а так же для подгонки системных требований игры под требования заказчика. Соответственно разработчиками модов эта возможность нигде не применяется (кроме GTA Stories) и задокументирована Херомантом007 только на gtamodding.ru и gtamaps.net.
В исполняемый файл игры зашито только одно единственное имя GENERIC'а карты - generic.txd. Механизм использования множества внешних текстур очень простое - в любое место игровой директории размещается TXD-файл с любым именем (естественно на английском языке), затем прописываем путь к TXD в gta3.dat или default.dat, ну а после в секции objs ИДЕшника в значении TexDictName записываем generic. Всё, теперь определённая игровая модель привязана к generic-текстурам. Например, я создал в папке TXD архив blablabla.txd, добавил строчку в gta3.dat "TEXDICTION TXD\BLABLABLA.TXD" и в каком-то IDE у меня есть строчечка "5000, ind_land666, generic, 1, 300, 0". Для модели ind_land666 игра будет искать текстуры во всех generic-текстурах, в том числе и в blablabla.txd.
Для GTA SA можно использовать собственные имена внешних TXD-архивов в IDE, для этого его нужно просто прописать в секции txdp как дочернюю к generic'у, например "blablabla, generic", соответственно, и в секции obj можно написать "5000, ind_land666, blablabla, 300, 0" (обычно делается для того, чтобы после готовности карты можно было спокойно перенести TXD в IMG-архив).
Редакторы TXD
Версия игры | Название | Авторы |
---|---|---|
Magic.TXD | DK22Pac, The_GTA | |
TXD Workshop | JernejL | |
TXD Builder | Steve-M | |
PS2 TXD Viewer | Steve-M | |
PS2 TXD Mod | Studio "Exclusive" | |
TXD 2048 | Lego | |
TXDFucker | Lego | |
G-TXD | REspawn | |
TxdGen | The_GTA | |
ViceTXD | Spooky |
Форматы файлов | .bik • .bsp • .col • .dff • .grf • .gxt • .ifp • .inst • .fxp • .mls • .pak • .rib • .raw/.sdt/.lst • .scc • .spl • .txd |
Инструменты | Clump Viewer • Col-IO • Collision File Editor II • DFF Viewer • G-Tools • Kam's Max Scripts • PS2 TXD Mod PS2 TXD Viewer • RW Analyze • ViceTXD • TXD Workshop • ZModeler |