TXD

Материал из GTAModding.ru
Перейти к: навигация, поиск

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-эффектов, шрифтов и т.д.

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

TXD redtext image.gif TXD redtext alpha.gif

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

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

Программы для изменения TXD и создания новых
Версия игры Название Авторы
Gta3.png Vc.png Sa.png Magic.TXD DK22Pac, The_GTA
Gta3.png Vc.png Sa.png TXD Workshop JernejL
Gta3.png Vc.png Sa.png TXD Builder Steve-M
Gta3.png Vc.png Sa.png PS2 TXD Viewer Steve-M
Gta3.png Vc.png Sa.png PS2 TXD Mod Studio "Exclusive"
Gta3.png Vc.png Sa.png TXD 2048 Lego
Gta3.png Vc.png Sa.png TXDFucker Lego
Gta3.png Vc.png Sa.png G-TXD REspawn
Gta3.png Vc.png Sa.png TxdGen The_GTA
Gta3.png Vc.png ViceTXD Spooky
п · о · р
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-ToolsGXT EditorIMG ToolPS2 TXD ModPS2 TXD ViewerLimit AdjusterMap EditorPathViewer
San Andreas Audio ToolkitSan Andreas Texture PlacerSanny BuilderTXD WorkshopTXDFuckerXBOX TXD PowerTool
ТуториалыРедактирование аудио в SAИзменение cutsceneDecision MakerПропуск роликовКонвертация автомобилей в SA
Основы маппинга GTA:SAДелаем ломающиеся объектыКонвертирование персонажа в SA2dfx в SanAndreasМоддинг San Andreas v2.0
Новая анимация персонажейУниверсальный солдат (GTA SA)
МодыAlien CityDesign Your Own MissionGTA: UnitedGTA StoriesGTA Berlin
МультиплеерgtaTournamentMulti Theft AutoSan Andreas Multiplayer
п · о · р
Vice City Grand Theft Auto: Vice City
Форматы файлов.adf.col.cfg.dff.dat.gxt.ide.ifp.img/.dir.ipl.raw/.sdt.rep.sc.scm.set.txd.zon
ИнструментыCLEOClump ViewerCol-IO‎Collision File Editor IIData toolDFF Viewerdffxbox2pcG-ToolsGame Archive Viewer
GTA Garage Mod ManagerGTA3 Script CompilerGXT EditorIMG ToolKam's Max ScriptsMap EditorMod GeneratorMod InstallerMoo Mapper
PS2 TXD ModPS2 TXD ViewerResourse HackerRotation CalculatorRW AnalyzeSanny BuilderTXD Workshop
TXD_2048TXDFuckerVC Limit AdjusterVC Mission BuilderViceTXDVC SeterVCFCToolWater EditorYAIEZModeler
МодификацииUltimate VCModern ModSnow ModDeluxeMilleniumNew AgeKiller KipAliens vs. Predator
GTA Long NightGTA Liberty CityGTA Myriad IslandsGTA State Of Liberty
ОтечественныеМентовский БеспределCделано в СССРUndergroundLost HeavenКыштымНостальгияXBox Mod (Коктейль)
МультиплейерMulti Theft AutoVice City Online
п · о · р
GTA III Grand Theft Auto III
Форматы файлов.b.a3d.anm.col.cfg.dff.dat.gxt.ide.ifp.img/.dir.ipl.raw/.sdt.rep.sc.scm.set.txd.zon
Документацияcarcols.datCHASE.DATCULLZONE.DATcuts.imgdefault.datfistfite.datflight.datgta3.exegta3.dat
gta3.imggta3.zonhandling.cfgmain.scmmap.datmap.zonobject.datparticle.cfgped.datpedgrp.dat
pedstats.datsfx.rawsurface.datTimeCyc.DATtracks.dattrain.datwater.datwaterpro.datweapon.dat
ИнструментыCLEOClump ViewerCol-IO‎Collision File Editor IIData toolDFF Viewerdffxbox2pcG-ToolsGTA Garage Mod Manager
GXT EditorGTA3 Limit AdjusterGTA3 Mission BuilderGTA3 PatcherIMG ToolKam's Max ScriptsMap Editor
Mod GeneratorMod InstallerMoo MapperPS2 TXD ModPS2 TXD ViewerResourse HackerRotation Calculator
RW AnalyzeViceTXDWater EditorSanny BuilderTXD ToolTXD WorkshopYAIEZModeler
Туториалыраздел в разработке
Классические МодыGPS RadarBye-Bye BikiniUltimate Stunt ParkThe SphereMiss LibertyIllandoIntercity HighwayShoreside Bridge
Rockstar HeightsLighthouse BridgeBlade FunparkOrbital CityLakeside IslandLiberty PenitentiaryJEM Island
Illando HelixCliff Climbing Mountain
Глобальные МодыReal GTA3Twenty TenSnow CityFrosted WinterUltimateBeta modX-box modBad BusinessGTA3 HDUltra mod
OpenTunnelsBack to the Future
МультиплеерMulti Theft AutoLiberty Unleashed
Исходники4x48ballambulanceasukaasusbcameracar_gencatcopcardebugdemodiablofiretruckfrankgates
genstufhealthhjhoodimportintrojoeykenjiloveluigimayhemmeatpickupsrampagerayrcswitch
taxitoniusjwantedyard
п · о · р
Manhunt.png Manhunt
Форматы файлов.bik.bsp.col.dff.grf.gxt.ifp.inst.fxp.mls.pak.rib.raw/.sdt/.lst.scc.spl.txd
ИнструментыClump ViewerCol-IO‎Collision File Editor IIDFF ViewerG-ToolsKam's Max ScriptsPS2 TXD Mod
PS2 TXD ViewerRW AnalyzeViceTXDTXD WorkshopZModeler