TXD

Материал из GTAModding.ru

Перейти к: навигация, поиск

TXD (Texture Dictionary) - формат, использующийся RockStar Games для хранения игровой графики в таких играх как GTA 3, Vice City, San Andreas Manhunt и Bully. Важно заметить, что в данном случае 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 - количество текстур в архиве, 2b - неизвестно
         o Texture Native - данная секция в TXD может повторяться несколько раз, в зависимости от количества текстур в архиве.
               + Struct - заголовок с именем и параметрами текстуры + тело текстуры
               + Extension - дополнение подсекции (не используется) 
         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 - пусто - не используется)

Swizzling

Важно отметить, что на PS2 растр может хранится с использованием swizzling'а и для корректного отображения в графическом редакторе нужно преобразовать текстуру.

Особенности в GTA3 на платформе X-BOX

В TXD-файлах, содержащихся в IMG-архиве X-BOX версии GTA3 (не путать с модом GTAIII X-BOX version), применён специальный тип компрессии. Для их распаковки существует утилита dffxbox2pc от АК-73 aka Alex. После её применения TXD-архив открывается любым TXD-редактором (правда альфа-канал читается неверно).

Альфа канал

К изображениям в TXD также применим альфа канал. Разрешение текстуры и её альфа-канала всегда равны. Альфа канал, также известный как маска-канал - это черно-белое изображение, применяется с целью создания эффекта частичной прозрачности, либо с целью определения контуров, если модель выполняет роль спрайта в игровой сцене. Таким образом черные сектора альфа-канала определяют полную прозрачность, белые - полную видимость, а участки с разными оттенками серого определяют частичную прозрачность накладываемой на объект текстуры. Примеры - текстуры стекла, растительности, particle-эффектов, шрифтов и т.д.

Для наглядности возьмём текстуру и её альфа-канал:

Image:TXD_redtext_image.gif Image:TXD_redtext_alpha.gif

В итоге мы получим красный текст.

Компрессия текстур в TXD

GTA3, GTA VC и GTA SA поддерживают TXD с компрессированными текстурами. Алгоритмы компрессии, применяемые для текстур в игре - DXT1 (для текстур без альфа-канала) и DXT3 (для текстур с альфа-каналом). Использование в модах текстур с компрессией существенно снижает размер мода, при этом качество текстуры падает не очень существенно. Тем более все современные видеокарты уже умеют работать с компрессованными текстурами. Компрессию не рекомендуется применять для текстур particle-эффектов, где после компрессии в альфа-канале могут наблюдаются сильные искажения кривой градиента, что очень заметно проявляется в игре.

GENERIC текстуры

В GTA3, GTA VC и GTA SA для моделей игровой карты можно создавать и использовать TXD вне IMG-архива. Этот тип текстур считается общим, они ищутся и загружаются движком автоматически, при загрузке игры, по адресу, указанному в gta3.dat или default.dat. Данный тип внедрён специально только для разработчиков игры, для прямого редактирования текстур без обращения к IMG-архиву игры, а так же для подгонки системных требований игры под требования заказчика. Соответственно разработчиками модов эта возможность нигде не применяется (кроме GTA Stories) и задокументирована Херомантом007 только на gtamodding.ru и gtamaps.net.

1. Для GTA3 и GTA VC - в исполняемый файл игры зашито только одно единственное имя GENERIC'а карты - generic.txd. Механизм использования множества общих текстур на карте очень простое - создаём любые папки в игровой директории (имена папок соответственно на английском языке), в каждую папку помещаем какой-нибудь TXD-файл, используемый картой и переименовываем его в generic.txd. Затем прописываем путь к архиву в gta3.dat или default.dat, а так же не забываем в секции objs ИДЕшника привязать нужную модель к generic.txd. Например, я создал в папке TXD архив generic.txd, добавил строчку в gta3.dat "TEXDICTION TXD\GENERIC.TXD" и в каком-то IDE у меня есть строчечка "5002, ind_land052, generic, 1, 300, 0". Всё, теперь движок видит все добавленные текстуры и отрисовывает их на игровой карте.

2. Для GTA SA - в исполняемый файл игры так же зашито только одно единственное имя GENERIC'а карты - generic.txd. Но так же движок GTA SA поддерживает и дочерние текстуры, на которые по принципу наследования распространяются и параметры их родителей, заданные в исполняющем файле, в том числе и параметр GENERIC. За счёт этого можно создавать внешние TXD со своими именами. Делается это так: сначала создаём где-нибудь generic.txd и прописываем его в игре так же точно, как это описано для GTA3 и GTA VC; после этого, как ресурсов generic.txd нам становится мало, в директории игры создаётся ещё один TXD-файл с любым англоязычным уникальным именем (удобнее это делать в папке GENERIC) и прописываем так же путь к нему в gta3.dat или default.dat, а в IDE, кроме указания имени текстуры в секции objs, так же прописываем её как дочернюю по отношению к generic.txd в секции txdp. Пример: я создал текстуру jetty.txd в папке GENERIC, прописал её в gta3.dat как "TEXDICTION MODELS\GENERIC\jetty.txd", в IDE у меня есть строчки "5002, ind_land052, generic, 300, 0" в секции objs и "jetty, generic" в секции txdp. Всё, теперь движок видит все добавленные текстуры и отрисовывает их на игровой карте.

п · о · р
San Andreas Grand Theft Auto: San Andreas
Форматы файлов.col.cfg.cut.dff.dat.fxp.gxt.ide.ifp.img.ipl.rep.rrr.scm.txd.set
Документацияcarcols.datCarrecPed EventsPed TypeАдреса Памяти Функций (SA)Анимация моделей в SAВизуальные эффекты в скриптинге
Загруженные звукиКатсценыНомера оружияРисование на экранеТрюки с меткамиСтатистикаСтруктура аудио в SABeta версия
ИнструментыCLEOCollision File Editor IIENBSeriesG-ToolsIMG ToolPS2 TXD ModPS2 TXD ViewerLimit AdjusterMap EditorPathViewer
San Andreas Audio ToolkitSan Andreas Texture PlacerSanny BuilderTXD WorkshopXBOX TXD PowerTool
ТуториалыРедактирование аудио в SAИзменение cutsceneDecision MakerПропуск роликовКонвертация автомобилей в SA
Основы маппинга GTA:SAДелаем ломающиеся объектыКонвертирование персонажа в SA2dfx в SanAndreas
Новая анимация персонажейУниверсальный солдат (GTA SA)
МодыAlien CityDesign Your Own MissionGTA: United
МультиплеерgtaTournamentMulti Theft AutoSan Andreas Multiplayer
п · о · р
Vice City Grand Theft Auto: Vice City
Форматы файлов.anm.adf.col.cfg.dff.dat.gxt.ide.ifp.img/.dir.ipl.raw/.sdt.rep.scm.txd
ИнструментыCLEOCollision File Editor IIG-ToolsGXT EditorIMG ToolLimit AdjusterMap EditorSanny BuilderTXD Workshop
МодификацииGTA State Of LibertyGTA Liberty City
п · о · р
GTA III Grand Theft Auto III
Форматы файлов.a3d.anm.col.cfg.cut.dff.dat.gxt.ide.ifp.img/.dir.ipl.raw/.sdt.rep.sc.scm.set.txd.xml.zon
Документацияcarcols.datCHASE.DATCULLZONE.DATcuts.imgdefault.datdefault.idefistfite.datflight.datgta3.exegta3.dat
gta3.imggta3.zonhandling.cfgmain.scmmap.zonobject.datparticle.cfgped.datpedgrp.datpedstats.dat
sfx.rawsurface.dattimecyc.dattracks.dattrain.datwater.datwaterpro.datweapon.dat
ИнструментыCLEOCollision File Editor IIDFF Viewerdffxbox2pcG-ToolsGTA Garage Mod ManagerGTA ToolsGTA3 Limit Adjuster
GTA3 PatcherIMG ToolMap EditorMod GeneratorMoo MaperPS2 TXD ModPS2 TXD ViewerRotation Calculator
RusGTX EditorRW AnalyzeWater EditorSanny BuilderTXD WorkshopYAIEZModeler
Туториалыраздел в разработке
Глобальные МодыReal GTA3Twenty TenSnow CityUltimateBeta modX-box modGTA3 HDUltra modOpenTunnelsGhost City
МультиплеерMulti Theft AutoLiberty Unleashed
Исходники4x48ballambulanceasukaasusbcameracar_gencatcopcardebugdemodiablofiretruckfrankgates
genstufhealthhjhoodimportintrojoeykenjiloveluigimayhemmeatpickupsrampagerayrcswitch
taxitoniusjwantedyard
Источник — «http://gtamodding.ru/wiki/TXD»