Truevision TGA
Truevision TGA
Truevision TGA, often referred to as TARGA, is a raster graphics file format created by Truevision Inc. (now part of Avid Technology). It was the native format of TARGA and VISTA boards, which were the first graphic cards for IBM-compatible PCs to support Highcolor/truecolor display. This family of graphic cards was intended for professional computer image synthesis and video editing with PCs; for this reason, usual resolutions of TGA image files match those of the NTSC and PAL video formats. [2]
TARGA is an acronym for Truevision Advanced Raster Graphics Adapter; TGA is an initialism for Truevision Graphics Adapter.
TGA files commonly have the extension «.tga» on PC DOS/Windows systems and macOS (older Macintosh systems use the «TPIC» type code). The format can store image data with 8, 15, 16, 24, or 32 bits of precision per pixel [3] – the maximum 24 bits of RGB and an extra 8-bit alpha channel. Color data can be color-mapped, or in direct color or truecolor format. Image data may be stored raw, or optionally, a lossless RLE compression similar to PackBits can be employed. This type of compression performs poorly for typical photographic images, but works acceptably well for simpler images, such as icons, cartoons and line drawings.
Contents
History [ edit ]
The TGA file format was originally defined and specified by AT&T EPICenter with feedback from Island Graphics Inc in 1984. AT&T EPICenter was an internal spin-off of AT&T created to market new technologies AT&T had developed for color frame buffers. What later became Truevision was the result of a leveraged employee buyout from AT&T in 1987.
EPICenter’s first two cards, the VDA (video display adapter) and ICB (image capture board), used the first incarnations of the TGA file format. The file extensions «.vda» and «.icb» implied information about the board specific data contained.
It was later determined by Alan Wlasuk (then head of EPICenter), Brad Pillow (EPICenter) and Steven Dompier (Island’s president) that a more codified file format was needed. The file format was created and implemented by Brad Pillow (EPICenter) and Bryan Hunt (EPICenter) and was developed in response to this need for a less board specific file format. A very simple extension was made to what was already in use, and contained information on width, height, pixel depth, an associated color map and image origin. A label field (up to 255 characters) was also included in the initial spec, but was rarely used.
At the time, another technically superior file format called TIFF also appeared, but its use for true color images was very limited as the implementation and sharing of files between applications supporting the TIFF specification was rather difficult and involved. The TGA file format’s simpler nature and portability between platforms is the main reason for its widespread adoption and its continued success in a wide variety of applications worldwide to this day.
Initially the TGA file format was used in the ICB-PAINT and TARGA-PAINT programs (what later became known as TIPS) and for several projects in online real estate browsing and still-frame video teleconferencing.
The current version (2.0) includes several enhancements such as «postage stamps» (better known as thumbnails), an alpha channel, gamma value, and textual metadata, and was authored by Truevision Inc.’s Shawn Steiner with direction from Kevin Friedly and David Spoelstra in 1989.
At the time of its launching, it represented the state of the art in digital image processing. Even today, though its maximum color depth is not well suited for high-end pre-press, intensive image processing systems, TGA is still used extensively throughout the animation and video industry because its primary intended outputs are standard TV screens, not color printed pages. [4]
Uncompressed 24-bit TGA images are relatively simple compared to several other prominent 24-bit storage formats: A 24-bit TGA contains only an 18-byte header followed by the image data as packed RGB data. In contrast, BMP requires padding rows to 4-byte boundaries, while TIFF and PNG are metadata containers that do not place the image data or attributes at a fixed location within the file.
Thirty-two-bit TGA images contain an alpha channel, or key signal, and are often used in character generator programs such as Avid Deko.
Technical details [ edit ]
All values are little-endian; field and subfield numbers are per Version 2.0 of the specification.
Version 2 added the extension area and footer. The developer area exists to store application-specific information.
Header [ edit ]
Field no. | Length | Field name | Description |
---|---|---|---|
1 | 1 byte | ID length | Length of the image ID field |
2 | 1 byte | Color map type | Whether a color map is included |
3 | 1 byte | Image type | Compression and color types |
4 | 5 bytes | Color map specification | Describes the color map |
5 | 10 bytes | Image specification | Image dimensions and format |
Image ID length (field 1)
0–255 The number of bytes that the image ID field consists of. The image ID field can contain any information, but it is common for it to contain the date and time the image was created or a serial number.
As of version 2.0 of the TGA spec, the date and time the image was created is catered for in the extension area.
Color map type (field 2)
- 0 if image file contains no color map
- 1 if present
- 2–127 reserved by Truevision
- 128–255 available for developer use
Image type (field 3)
is enumerated in the lower three bits, with the fourth bit as a flag for RLE. Some possible values are:
- 0 no image data is present
- 1 uncompressed color-mapped image
- 2 uncompressed true-color image
- 3 uncompressed black-and-white (grayscale) image
- 9 run-length encoded color-mapped image
- 10 run-length encoded true-color image
- 11 run-length encoded black-and-white (grayscale) image
Image type 1 and 9: Depending on the Pixel Depth value, image data representation is an 8, 15, or 16 bit index into a color map that defines the color of the pixel. Image type 2 and 10: The image data is a direct representation of the pixel color. For a Pixel Depth of 15 and 16 bit, each pixel is stored with 5 bits per color. If the pixel depth is 16 bits, the topmost bit is reserved for transparency. For a pixel depth of 24 bits, each pixel is stored with 8 bits per color. A 32-bit pixel depth defines an additional 8-bit alpha channel. Image type 3 and 11: The image data is a direct representation of grayscale data. The pixel depth is 8 bits for images of this type.
Color map specification (field 4)
has three subfields:
- First entry index (2 bytes): index of first color map entry that is included in the file
- Color map length (2 bytes): number of entries of the color map that are included in the file
- Color map entry size (1 byte): number of bits per pixel
In case that not the entire color map is actually used by the image, a non-zero first entry index allows to store only a required part of the color map in the file.
Image specification (field 5)
has six subfields:
- X-origin (2 bytes): absolute coordinate of lower-left corner for displays where origin is at the lower left
- Y-origin (2 bytes): as for X-origin
- Image width (2 bytes): width in pixels
- Image height (2 bytes): height in pixels
- Pixel depth (1 byte): bits per pixel
- Image descriptor (1 byte): bits 3-0 give the alpha channel depth, bits 5-4 give direction
Image and color map data [ edit ]
Field no. | Length | Field | Description |
---|---|---|---|
6 | From image ID length field | Image ID | Optional field containing identifying information |
7 | From color map specification field | Color map data | Look-up table containing color map data |
8 | From image specification field | Image data | Stored according to the image descriptor |
Developer area (optional) [ edit ]
Version 1.0 of the TGA specification was very basic, and many developers had a need to store more information, and so opted to add on extra sections to their files, specific to their application only.
In Version 2.0 of the specification, these application-specific enhancements/extras are supported by the developer area. Only the offset and size of the developer area are relevant to the spec, and developers are free to add whatever they want in the area.
If a TGA decoder cannot interpret the information in the developer area, it will generally ignore it, since it is assumed to have been created by a different application. It is recommended that developers build logic into their applications to determine whether the data in the developer area is compatible with the application; one step towards this is to check the software ID in the file footer.
Extension area (optional) [ edit ]
Field no. | Length | Field | Description |
---|---|---|---|
10 | 2 bytes | Extension size | Size in bytes of the extension area, always 495 |
11 | 41 bytes | Author name | Name of the author. If not used, bytes should be set to NULL ( ) or spaces |
12 | 324 bytes | Author comment | A comment, organized as four lines, each consisting of 80 characters plus a NULL |
13 | 12 bytes | Date/time stamp | Date and time at which the image was created |
14 | 41 bytes | Job ID | |
15 | 6 bytes | Job time | Hours, minutes and seconds spent creating the file (for billing, etc.) |
16 | 41 bytes | Software ID | The application that created the file. |
17 | 3 bytes | Software version | |
18 | 4 bytes | Key color | |
19 | 4 bytes | Pixel aspect ratio | |
20 | 4 bytes | Gamma value | |
21 | 4 bytes | Color correction offset | Number of bytes from the beginning of the file to the color correction table if present |
22 | 4 bytes | Postage stamp offset | Number of bytes from the beginning of the file to the postage stamp image if present |
23 | 4 bytes | Scan line offset | Number of bytes from the beginning of the file to the scan lines table if present |
24 | 1 byte | Attributes type | Specifies the alpha channel |
File footer (optional) [ edit ]
If a TGA file contains a footer, it is likely to be a TGA version 2 file. The footer is the final 26 bytes of the file, of which the last 18 are constant.
Field no. | Length | Field | Description |
---|---|---|---|
28 | 4 bytes | Extension offset | Offset in bytes from the beginning of the file |
29 | 4 bytes | Developer area offset | Offset in bytes from the beginning of the file |
30 | 16 bytes | Signature | Contains «TRUEVISION-XFILE» |
31 | 1 byte | Contains «.» | |
32 | 1 byte | Contains NULL |
Specification discrepancies [ edit ]
The older version of the TGA file format specification taken from the Appendix C of the Truevision Technical Guide states that run-length encoded (RLE) packets may cross scan lines: «For the run length packet, the header is followed by a single color value, which is assumed to be repeated the number of times specified in the header. The packet may cross scan lines (begin on one line and end on the next)».
However, page 24 of the TGA v2.0 specification states the exact opposite: «Run-length Packets should never encode pixels from more than one scan line. Even if the end of one scan line and the beginning of the next contain pixels of the same value, the two should be encoded as separate packets. In other words, Run-length Packets should not wrap from one line to another».
Consequently TGA readers need to be able to handle RLE data packets that cross scan lines since this was part of the original specification. However, when saving (creating) TGA files it will be necessary to limit RLE data packets to scanline boundaries in order to be compliant with the newer v2.0 TGA specification.
Конвертировать файл jpg в tga. Открываем изображения в формате TGA. Добавьте JPEG файлы в Фотоконвертер
В архиве можно найти последнюю версию VTFEdit (не требует установки) и консольную программу VTFCmd.
VTFEdit — полноценная программа для конвертации форматов в VTF и обатно.
VTFCmd — консольная прога для конвертации форматов через cmd строку Windows. Очень удобна, если надо без лишних телодвижений конвертировать целую папку в VTF.
Папка х64 — для 64 битных систем Windows
Папка x86 — для 32 битных систем Windows
Работа с программой VTFEdit
Основное окно программы.
Для импорта выше указанных форматов:
Жмём File — Import и выбираем нужное изображение
Окно параметров импорта изображения.
General:
Normal Format — формат, в который будет сжиматься текстура
Alpha Format — формат альфа канала tga (png ?)
Texture type:
Animated Texture — анимированная текстура, если вы выбрали более 1 изображения
Environment Texture — текстура-env_map, создание текстуры кастомного отражения.
Volume Texture — обычная текстура
Resize:
Различные варианты способов, по которым будет масштабироваться текстура, если она не кратна 2м. Т.е. 64х128х256х512 итд
Clamp:
Обрезка. Здесь устанавливаются максимальные размеры выходной текстуры. Предположим у вас есть текстура 9999х9999, при импорте она может быть автоматически урезана например до 2048х2048.
Generate MipMaps:
Не советую отключать. MipMaps это мини версии текстуры, которые появляются, когда игрок отдаляется от неё. Что снижает нагрузку и исключает эффект мельтешения.
Дополнительные параметры импорта.
Version:
Версия VTF формата. Советую использовать 7.3. Из большинства движков уже выпилили поддержку версий 7.1 и 7.2. Версии 7.4 и 7.5 встречаются в играх вроде Portal 2 и Left 4 Dead 2.
Выбрав нужные параметры жмём ОК.
В зависимости от жирности входного формата программа может повиснуть на неопределённое время, идёт конвертация в VTF.
После конвертации видим примерно следующее.
Для отображения прозрачности нажмите View — Mask или Ctrl+M (вкл/выкл)
Сжатие DXT и ABGR8888
DXT1-5 сжатие
DXT1-5 сжатие подходит для большинства текстур, которые не требуют максимального качества. Текстура с таким сжатием весит намного меньше чем ABGR8888, но такая текстура имеет низкое качество, особенно это заметно на градиентах или мелких элементах.
ABGR8888 сжатие
ABGR8888 текстура получается практически без сжатия, имеет максимальный вес, даже больше оригинала, т.к. ещё учитываются MipMaps. Желательно использовать для текстур например волос, где требуется максимальное качество альфа канала и прозрачности.
Текстуры где используются градиенты, мелкие детали на normal / bump картах и.т.п.
Пример внешнего вида модели с сжатием и без. В данном случае, используется в качестве примера $bumpmap текстура.
Демонстрация сжатия на различны[ изображенияx.
Работа с программой VTFCmd
Если на прямую запустить программу, вы увидите все параметры которые она понимает и несколько примеров, как их использовать для конвертации.
Если просто перетащить файл на VTFCmd.exe то программа сконвертирует в VTF со стандартными параметрами. А это DXT1 / 5 и автоматическое растягивание до 2 к 2м.
Основные команды программы.
dp0/vtfcmd.exe» -file «%1» -format «dxt1»
dp0 — авто генерация пути до vtfcmd.exe, во избежании ошибок запуска.
%1 — авто генерация пути и имени файла, который «кидают» на этот батник
Пока всё. Возможно позже добавлю больше информации.
Файлы в формате TGA (Truevision Graphics Adapter) — это разновидность изображений. Изначально этот формат создавался для графических адаптеров Truevision, но со временем стал использоваться и в других сферах, например, для хранения текстур компьютерных игр или создания файлов GIF.
Учитывая распространённость формата TGA, часто возникают вопросы о том, как его открыть.
Большинство программ для просмотра и/или редактирования изображений работают и с таким форматом, рассмотрим подробно наиболее оптимальные решения.
Способ 1: FastStone Image Viewer
Этот просмотрщик стал популярен за последние годы. Пользователям FastStone Image Viewer полюбился благодаря поддержке разнообразных форматов, наличию встроенного файлового менеджера и возможности быстро обработать любую фотографию. Правда, управляемость программы поначалу вызывает сложности, но это дело привычки.
Способ 2: XnView
Следующий интересный вариант для просмотра TGA – программа XnView. Этот с виду незамысловатый просмотрщик фотографий имеет широкий функционал, применимый к файлам с заданным расширением. Существенные недостатки у XnView отсутствуют.
Изображение будет открыто в режиме просмотра.
До нужного файла можно добраться и через встроенный обозреватель XnView. Просто отыщите папку, где хранится TGA, щёлкните по нужному файлу и нажмите кнопку-иконку «Открыть» .
Но и это ещё не всё, т.к. есть ещё один способ открыть TGA через XnView. Можно просто перетащить этот файл из Проводника в область предпросмотра программы.
При этом картинка сразу откроется в полноэкранном режиме.
Способ 3: IrfanView
Ещё одна простая во всех отношениях программа для просмотра изображений IrfanView тоже способна открыть TGA. Она содержит минимальный набор функций, поэтому разобраться в её работе не составит труда и новичку, даже несмотря на такой недостаток, как отсутствие русского языка.
Через мгновенье картинка появится в окне программы.
Если перетащить изображение в окно IrfanView, оно тоже откроется.
Способ 4: GIMP
А эта программа является уже полноценным графическим редактором, хотя просто для просмотра TGA-изображений она также подходит. GIMP распространяется на бесплатной основе и по функционалу практически не уступает аналогам. С некоторыми его инструментами разобраться сложновато, но открытия нужных файлов это не касается.
Указанная картинка будет открыта в рабочем окне GIMP, где можно применить к ней все доступные инструменты редактора.
Альтернативой вышеописанному способу является обычное перетаскивание TGA-файла из Проводника в окно GIMP.
Способ 5: Adobe Photoshop
Было бы странно, если самый популярный графический редактор не поддерживал формат TGA. Несомненным плюсом Photoshop являются его практически безграничные возможности в плане работы с изображениями и настраиваемость интерфейса, чтобы всё было под рукой. Но эта программа платная, т.к. она считается профессиональным инструментом.
Теперь можно выполнять любые действия с изображением TGA.
Так же, как и в большинстве других случаев, картинку можно просто перенести из Проводника.
На заметку: в каждой из программ Вы можете пересохранить картинку в любом другом расширении.
Способ 6: Paint.NET
По функционалу данный редактор, конечно, уступает предыдущим вариантам, но файлы TGA он открывает без проблем. Главное преимущество Paint.NET – его простота, поэтому это один из лучших вариантов для новичков. Если же Вы настроены производить профессиональную обработку TGA-изображения, то, возможно, этому редактору не всё будет по силам.
Теперь можно просмотреть изображение и провести его базовую обработку.
Можно ли файл просто перетащить в окно Paint.NET? Да, тут всё так же, как и в случае с другими редакторами.
Как видите, способов открыть файлы в формате TGA предостаточно. При выборе подходящего нужно руководствоваться тем, с какой целью Вы открываете изображение: просто посмотреть или редактировать.
В широко популярном формате JPEG применяется алгоритм сжатия данных с потерями. Механизм сжатия JPEG используют во множестве форматов файлов для хранения данных изображений. JPEG/Exif стал наиболее распространенным форматом, что приняли на вооружение цифровые камеры и другие устройства фотосъемки. Файлы этого формата наиболее распространенный способ хранения и передачи данных изображений в Интернете.
TGA хорошо известен как Truevision Graphics Adapter или Truevision TGA или TARGA — это файл, содержащий растровое изображение и связанный с платами TARGA и VISTA. TGA файлы могут быть использованы под DOS, в средах Mac OS X и Windows для хранения и передачи высокоразрядных изображений. Они поддерживают цветовой диапазон до 24 бит и 8 бит разряда для альфа-канала. TGA файлы связаны с графическими адаптерами, которые могут захватывать NTSC и/или PAL видеосигналы, они особенно популярны в области видеомонтажа.
Как конвертировать JPEG в TGA?
Самый простой способ — это скачать хорошую программу конвертации, например Фотоконвертер. Он работает быстро и эффективно, позволяя конвертировать любое количество JPEG файлов за раз. Вы сможете довольно быстро оценить, что Фотоконвертер способен сэкономить массу времени которое вы будете тратить при работе вручную.
Скачайте и установите Фотоконвертер
Фотоконвертер легко скачать, установить и использовать — не нужно быть специалистом в компьютерах, чтобы понять как он работает.
Добавьте JPEG файлы в Фотоконвертер
Запустите Фотоконвертер и загрузите.jpeg файлы, которые вы хотите конвертировать в.tga
Вы можете выбрать JPEG файлы через меню Файлы → Добавить файлы либо просто перекинуть их в окно Фотоконвертера.
Выберите место, куда сохранить полученные TGA файлы
Выберите TGA в качестве формата для сохранения
Для выбора TGA в качестве формата сохранения, нажмите на иконку TGA в нижней части экрана, либо кнопку + чтобы добавить возможность записи в этот формат.
Теперь просто нажмите кнопку Старт и конвертация начнется мгновенно, а TGA файлы сохранятся в указанное место с нужными параметрами и эффектами.
Видео инструкция
На этой странице объясняется, как Вы можете с легкостью конвертировать a .tga файл в PDF файл с помощью бесплатного и простого в использовании PDF24 Creator. Описанный способ конвертации является бесплатным и простым. PDF24 Creator устанавливает PDF принтер, и Вы можете распечатать Ваш.tga файл на данном принтере, чтобы конвертировать файл в PDF.
Что необходимо для конвертации TGA файла в PDF файл или как можно создать PDF версию Вашего TGA файла
Файлы типа TGA или файлы с расширением.tga можно легко конвертировать в PDF с помощью PDF принтера.
PDF принтер представляет собой виртуальный принтер, который можно использовать так же, как любой другой принтер. Отличием от обычного принтера является то, что PDF принтер создает PDF файлы. Вы не печатаете на физическом листе бумаги. Принтер PDF печатает содержимое исходного файла в PDF файл.
Таким образом, Вы можете создать PDF версию любого файла, который можно распечатать. Просто откройте файл с помощью ридера, нажмите кнопку печати, выберите виртуальный PDF принтер и нажмите кнопку «Печать». Если у Вас есть устройство для чтения файла TGA и если ридер может распечатать файл, то Вы можете преобразовать файл в формат PDF.
Бесплатный и простой в использовании PDF принтер от PDF24 можно загрузить с этой страницы. Просто нажмите на кнопку загрузки справа от этой статьи, чтобы загрузить PDF24 Creator. Установите это программное обеспечение. После установки Вы будете иметь новое печатающее устройство, зарегистрированное в Windows, которое можно использовать для создания PDF файлов из Вашего.tga файла или конвертации любого другого файла с возможностью печати в формат PDF.
Вот как это работает:
- Установите PDF24 Creator
- Откройте.tga файл с помощью ридера, который может открыть файл.
- Распечатайте файл на виртуальном PDF24 PDF принтере.
- Помощник PDF24 открывает окно, в котором Вы можете сохранять новый файл как PDF, отправлять по его email, факсу или редактировать.
Альтернативный способ того, как преобразовать TGA файл в PDF файл
PDF24 предоставляет несколько онлайн инструментов, которые могут быть использованы для создания PDF файлов. Поддерживаемые типы файлов добавляются по мере поступления и, возможно, формат файла TGA также уже поддерживается. Служба конвертации имеет различные интерфейсы. Два из них являются следующими:
Онлайн PDF Конвертер от PDF24 поддерживает множество файлов, которые могут быть преобразованы в PDF. Просто выберите файл TGA, из которого Вы хотели бы получить PDF версию, нажмите кнопку «конвертировать», и Вы получите PDF версию файла.
Существует также E-Mail PDF Конвертер от PDF24, который также может быть использован для преобразования файлов в формат PDF. Просто отправьте по электронной почте сообщение в службу E-Mail PDF Конвертера, прикрепите TGA файл к этому письму, и через несколько секунд Вы получите PDF файл обратно.
Играем в Source SDK, как создавать текстуры
Следуя предшествующим статьям цикла, вы наверняка освоили процесс создания незаурядной карты с уникальными триггерами и различными видами освещения. Но для воплощения самых смелых идей в жизнь чего-то не хватает, верно? Стандартный контент полету фантазии не помощник, поэтому в данном уроке вы научитесь создавать собственные текстуры для своих карт на движке Source. Подобным образом вы сможете создавать текстуры и для моделей, спреев и вообще всего, что работает с изображениями в играх на Source.
Создание текстур не интуитивный процесс, но и не чрезмерно сложная задача. В отличие от большинства современных движков здесь нет «просто перетаскиваешь и всё работает»: большую часть работы придётся делать самостоятельно.
VTF и VMT
Текстуры делятся на два файла: VTF (Valve Texture Format), файл, в котором хранится изображение, сами пиксели вашей текстуры, и VMT (Valve Material Type), файл, содержащий метаданные и информацию о шейдерах. Для отображения текстуры в игре используются оба файла.
Файлы VTF (.vtf) хранят всю информацию о пикселях, альфа-картах и MIP-картах, которую может использовать текстура.
Они создаются конвертированием исходного изображения в специальной программе. Данные располагаются таким образом, чтобы рендеринг был наиболее эффективным, поэтому обычные .jpg/.png-файлы без конвертации не используются. Самое главное – размеры изображения должны представлять из себя двойку в степени (то есть 64×64, 128×128, 256×256, 1024×1024 и т.д.).
Подробный технический анализ файлов VTF можно найти на Valve Developer Wiki.
Файлы VMT (.vmf) – это простые текстовые файлы с метаданными текстуры.
Среди них есть такая информация, как:
- Является ли текстура полупрозрачной?
- Анимирована ли она?
- Использует ли она рельефное текстурирование?
- Какой звук она воспроизводит при столкновениях?
Для одного VTF-изображения можно сделать несколько VMT-файлов с разными свойствами, и Hammer будет принимать их за разные текстуры. В следующих уроках мы рассмотрим продвинутые особенности VMT, добавляющие текстуре реалистичности.
Подробный технический анализ файлов VMT можно найти на Valve Developer Wiki.
Создание текстур
Что ж, приступим. Я буду использовать для создания текстуры логотип ProGamer.
Логотип окружён прозрачным фоном, но с этим мы разберёмся потом. Размер 1418×1418 я поменял на 1024×1024. На практике вы будете использовать наименьший возможный размер, а такие большие текстуры будут применяться только для самых важных вещей. Хорошим базисом для большинства текстур будет 512×512.
Нам нужно сконвертировать исходный файл в формат VTF. Valve прилагает к своим играм программу VTEX, это простой инструмент командной строки, способный создавать VTF-файлы только из TARGA (.tga). Есть альтернатива получше – VTFEdit, которая работает с большинством форматов, имеет собственный интерфейс и обилие функций.
Типы файлов
VTFEdit открывает файлы .bmp, .jpg, .gif, .png и .tga.
Если вы не знакомы с их особенностями, то вот всё, что вам действительно нужно знать:
- PNG, GIF и TGA поддерживают прозрачность.
- GIF поддерживает анимацию (но перед импортированием нужно разбивать на кадры).
- Для всего остального рекомендуется JPG.
- С BMP не связывайтесь.
PNG-8 против PNG-24
24-битные PNG-файлы поддерживают переменную прозрачность, но плохо импортируются в VTFEdit, так что для переменной прозрачности нужно использовать .tga.
TARGA (.tga)
TARGA – это старый причудливый формат изображений со своими приятными особенностями, но во многих областях он вытесняется форматами PSD или PNG. Главная проблема состоит в поиске программ, способных создавать/редактировать такие файлы. Как вы могли догадаться, лучшим инструментом для этого является Photoshop. VTFEdit/VTEX хорошо дружат с TARGA, так что если возникают проблемы с импортированием, конвертируйте изображение в этот формат.
Импортирование в VTFEdit
Полагаю, к этому моменту вы уже приготовили желаемое изображение. Выбираем пункт меню File>Import. Для начала познакомьтесь с этим окном:
Здесь много всего, но я разобью по пунктам:
- Normal Format: Какая компрессия используется для стандартных (непрозрачных) изображений.
- Alpha Format: Компрессия, используемая в изображениях с прозрачностью.
- Texture Type: Применяется, только когда вы импортируете больше одного изображения, и определяет, что они должны из себя представлять. В 99% случаев здесь выбирается Animated Texture.
- Resize/Clamp: Тут можно изменить размер в последний момент, но я советую делать это заранее.
- Generate Mipmaps: MIP-карты – это уменьшенные версии текстуры, которые игра будет накладывать при отдалении. Здесь лучше всё оставить по умолчанию.
- Normal Map: Карты нормалей используются для придания текстуре мнимой глубины. Опять же, этим лучше заниматься самостоятельно, но вы можете дать VTFEdit шанс и проверить результат её работы.
Хорошее руководство по выбору компрессии есть на Valve Developer Wiki. Если возникают сомнения, оставляйте всё по умолчанию.
Вкладку Advanced мы пока не трогаем (здесь настраивается VTF-файл – оставляйте 7.2, если только не знаете точно, что делаете).
После нажатия ОК вы должны увидеть вот это:
Теперь, если не хотите поиграть с продвинутыми настройками, можете нажимать File>Save и получите готовый VTF-файл.
Создание VMT
Мы создадим голый скелет файла VMT для работы вместе с VTF. В той же папке, где вы сохранили свою progamer.vtf, создаём новый текстовый файл и называем его progamer.vmt, затем открываем в блокноте или другом текстовом редакторе и вводим эти строки:
- LightmappedGeneric – это тип шейдеров, который будет использовать текстура, это важно, когда вам нужны необычные эффекты или вы делаете текстуру для файла модели.
- Basetexture – это созданный вами файл VMT: заметьте, что у него нет расширения и он находится в папке progamer, которую мы пока не создали (но вскоре создадим).
- Surfaceprop определяет некоторые физические свойства текстуры.
В VMT-файл можно много чего добавить, расширенный список можно найти на Valve Developer Wiki.
Просмотр и применение текстур
Теперь у нас есть оба необходимых файла, давайте пустим их в дело.
Сначала их нужно поместить в нужную папку, она зависит от игры, для которой вы сделали текстуру и от настроек Hammer. Примеры:
- Half-Life 2: Episode 2: SteamsteamappscommonHalf-Life 2ep2materials
- Team Fortress 2: SteamsteamappscommoncommonTeam Fortress 2tfmaterials
- CS:GO: SteamsteamappscommonCounter-Strike Global Offensivecsgomaterials
Обычно все файлы материалов помещаются в отдельную подпапку, чтобы в базовой папке не скапливались потенциально конфликтующие материалы. Не забывайте прописывать название папки в VMT-файлах.
Предполагается, что текстуру вы делали для своей карты, так что открывайте Hammer и ищите новую текстуру в списке материалов. Если всё прошло нормально, она там будет. Если ничего нет, возможно, вы не туда поместили файлы. Если текстура есть, но она пустая/фиолетовая/неправильная, то проблема может быть в кодировке текстуры или настройках VMT.
И вот, ваша текстура в игре.
Создание текстур с прозрачностью
- Убедитесь, что изображение содержит прозрачность/альфа-канал (для этого лучше подходит формат TGA).
- Выбирайте компрессию с поддержкой альфа-информации (дефолтная DXT5 подойдёт).
- Добавьте в VMT: «$translucent» 1.
- Этого должно быть достаточно.
Создание анимированных текстур
При создании анимированных текстур большая часть работы производится перед импортированием, так как кадры анимации должны храниться в отдельных файлах. С этим могут возникнуть сложности, но гугл вас выручит.
Названия готовых файлов должны нумероваться по типу: imagename_0000.tga, imagename_0001.tga, imagename_0002.tga.
При импортировании выделяйте сразу все файлы, остальное сделает VTFEdit.
Если всё сработало, в информации об изображении должно быть указано более одного кадра.
VMT-файл для анимированной текстуры содержит чуть побольше данных:
Результат:
Центральная текстура анимирована, правая текстура статичная, но использует кое-какую магию в файле VMT для движения. Это мы рассмотрим в следующих уроках.
Запаковка текстур в карту
Здесь немного проявляются особенности разных игр. Если вы хотите распространять свою карту с пользовательскими текстурами через интернет, то наилучшим решением будет запаковать текстуры в файл BSP.
Для аддонов Garry’s Mod этого делать необязательно, так как структура .gma сохраняет файловую иерархию. Однако, если вы хотите, чтобы люди запускали карту на своих серверах и не доставали вас отзывами «карта отстой, текстурок нету», то лучше их всё же запаковать. Такое случается, потому что люди декомпилируют ваш файл GMA для хранения серверных файлов в FastDL, а не в Workshop.
И как же паковать текстуры в карту? С помощью Pakrat.
Pakrat позволяет открывать файлы BSP и изменять их содержимое. BSP-файлы представляют из себя контейнеры (как .zip, к примеру), где хранятся различные данные – обычно это файлы самой карты, файлы освещения, кубические текстуры и любой дополнительный контент, который вы решили поместить в свою карту.
Дальше всё довольно просто: открываем скомпилированную карту, нажимаем Add и добавляем свои текстуры.
Обращайте внимание на столбец Path: там должно быть что-то вроде “materials/ваша-подпапка/“.
Сохраняем карту и всё готово. Для тестирования удалите свои текстуры из папки игры, чтобы убедиться, что они работают из .bsp, а лучше вообще проверяйте карту на другом компьютере.
Файлы с расширением .HEX –чем и как их можно открыть
Формат файла hex, сокращённо от «шестнадцатеричный» или «base-16», является структурой необработанных данных, которой следуют все файлы, хранящиеся на вашем компьютере. Хотя буквально каждый документ хранится в этом формате, найти его на ПК практически невозможно. Хотя далеко не все знают, что возможность напрямую изменять необработанные биты и байты на ПК иногда может быть очень полезна.
Что обозначает расширение HEX
Система счисления, которую люди используют для подсчёта, называется десятичной (числа от 0 до 9), и была изобретена персами около 6000 лет назад. В 1950-х или 1960-х годах IBM формализовала шестнадцатеричную систему счисления, которая является коротким способом представления двоичных данных. Вместо использования цифр 0-9, шестнадцатеричное число использует цифры от 0 до F. Достигнув конца числовых «цифр», вы просто увеличиваете число влево на единицу, точно так же, как вы делаете это с системой счёта десятичных чисел.
Файлы с расширением HEX имеют те же свойства, что и двоичные. Все байты размещаются один за другим. Информация об адресе или контрольные суммы не добавляются. Единственная разница с двоичным форматом такова, что каждый байт преобразуется в 2 символа ASCII в диапазоне 0-9 и A-F, представляющие 2 шестнадцатеричные цифры. Эти символы сгруппированы по строкам. Номер пары в строке обычно может варьироваться от 1 до 255, где наиболее общей длиной являются 16 или 32 пары. Каждая строка заканчивается парой CR (ASCII-значение $ 0D) или CRLF (ASCII). Для работы с такими документами требуется специальная программа-редактор хекс-файлов. Она в удобном виде выведет всю информацию и позволит достаточно комфортно её воспринимать и изменять.
Как открыть файл HEX
Далеко не все являются программистами, и иногда открыть файл с расширением HEX может понадобиться обычному человеку, чтобы посмотреть в нём некую информацию. На самом деле для такой простой задачи вполне достаточно обычного Блокнота – стандартного приложения, которое имеется в любой системе Windows. Ведь этот файл, по сути, является текстовым, просто в нём записана специфическая информация, но обычными символами.
Для этого достаточно кликнуть на файле правой кнопкой мыши, выбрать в меню пункт «Открыть» или «Открыть с помощью», затем «Выбрать из списка установленных программ», а далее просто выбрать стандартный Блокнот. Снимите галочку с пункта «Использовать выбранную программу для всех файлов этого типа» — вдруг вы его потом будете открывать другой программой. Можно просто открыть Блокнот, а файл в него перетащить, и он откроется.
Гораздо удобнее для открытия таких файлов подходит другая версия Блокнота – Notepad++. Скачать можно по этой ссылке. Эта программа также есть у многих, так как более удобна. Но она может к тому же распознавать многие языки программирования и файлы HEX в ней выглядят гораздо удобнее, так как есть выделение цветом. Notepad++ представляет собой как бы примитивный HEX-редактор, и этим можно пользоваться совершенно свободно.
Так выглядит HEX-файл, открытый в Notepad++. В стандартном Блокноте так же, но без цвета.
А теперь рассмотрим более подробно, для чего может понадобиться открывать, а тем более изменять файлы с шестнадцатеричным содержимым. Кстати, если вы собираетесь делать это часто, то лучше скачайте и установите специальный HEX-редактор – их в Интернете довольно много. Некоторые из них подробнее рассматриваются далее.
Взлом игр и файлов
Популярная причина, по которой вы можете использовать шестнадацтеричный редактор, – взлом игр. Вы можете загрузить документ сохранения игры и изменить сумму денег, например, от 1000 до 1000000 долларов. В более поздних играх всё сделано намного сложнее. Многие современные игры используют либо сжатие, либо шифрование, что во много раз затрудняет декомпиляцию состояния сохранения или игры. Тем не менее, некоторые игры по-прежнему позволяют редактировать определённые переменные, например, Sonic Spinball. В дополнение к просмотру файлов игры, из сохранённого файла иногда можно извлечь другую важную информацию, к которой у вас иначе не было бы доступа. Это сильно зависит от типа файла и того, какую информацию вы ищете, но использование шестнадцатеричного редактора полезно для определения того, что именно находится в документе.
Отладка и редактирование
Наконец, еще одна популярная причина, по которой вы можете использовать шестнадцатеричный редактор, – это если вы программист, и вам нужно отладить код. Вместо того, чтобы возвращаться к перекомпиляции кода, для проверки шаблона может потребоваться простое шестнадцатеричное редактирование. Но для начала обязательно убедитесь, что у вас есть резервная копия, прежде чем изменять какие-либо файлы с помощью шестнадцатеричного редактора.
Какие hex-редакторы использовать
Шестнадцатеричный редактор представляет собой софт, используемый для просмотра и редактирования бинарных файлов. Двоичный документ представляет собой документ, который содержит данные в машиночитаемой форме. HEX-редакторы позволяют изменять содержимое необработанных данных файла. Поскольку шестнадцатеричный редактор используется для редактирования двоичных файлов, их иногда называют двоичным редактором или редактором двоичных файлов. Если открыть документ с помощью шестнадцатеричного редактора, появится сообщение о том, что документ редактируется в шестнадцатеричном формате, а процесс использования шестнадцатеричного редактора называется шестнадцатеричным редактированием. Шестнадцатеричные редакторы отличаются от обычных текстовых рядом функций. Основой шестнадцатеричного редактора является то, что они отображают необработанное содержимое файла. Нет кодирования или перевода в текст – только необработанный машинный код. Во-вторых, номера строк вместо того являются адресом смещения от начала файла. Мы подобрали несколько лучших бесплатных программ для просмотра и редактирования документов HEX.
HxD – это бесплатный шестнадцатеричный редактор, который может открывать и изменять компьютерный код. Это очень мощная утилита в правильных руках, которая может проверять, сравнивать и диагностировать файлы, диски, образы дисков, память и журналы, а также исправлять ошибки и восстанавливать структуру диска.
- Действительно большие данные – последняя версия HxD обрабатывает большие наборы данных. Если он помещается на диск, HxD сможет его открыть.
- Стандартные параметры – HxD содержит множество полезных дополнений, таких как генератор контрольных сумм, поддержка нескольких наборов символов, редактор ОЗУ, уничтожитель файлов, разбиение и объединение, неограниченное количество отмен и портативная версия.
- Экспорт данных – программа экспортирует данные в исходный код (C, C#, Java, Pascal и VB.NET) или в шестнадцатеричные форматы.
- Не для неопытного пользователя, но это не недостаток. Программа ориентирована на продвинутых пользователей.
DeltaHex Editor
Один из лучших hex-редакторов на основе библиотеки deltahex. Используйте действие «Открыть как шестнадцатеричный» в главном меню «Файл» или в контекстном меню файлов проекта.
- Отображение данных в виде шестнадцатеричного кода, предварительный просмотр текста.
- «Вставить» и «Перезаписать» режимы редактирования.
- Поддержка выбора и буфера обмена.
- Отмена/повтор.
- Выбор кодировки.
- Отображение непечатных символов.
- Коды также могут быть двоичными, восьмеричными или десятичными.
- Поиск текстового/шестнадцатеричного кода с соответствующей подсветкой.
- Дельта-режим – изменения сохраняются только в памяти до сохранения.
- Поддержка огромных файлов.
Free Hex Editor Neo
Free Hex Editor Neo – это самый быстрый бесплатный редактор двоичных файлов для платформы Windows. Алгоритмы обработки данных Neo Hex Editor чрезвычайно оптимизированы и тщательно настроены для обработки операций с большими файлами.
- Неограниченное Undo/Redo.
- Редактировать, Копировать, Вырезать, Вставить, Удалить, Заполнить, Импорт/Экспорт, Вставить шаблон/файл, Изменить размер файла, Смещение к началу, Изменить биты.
- Поиск и замена шаблонов.
- Подсветка.
- Байты, слова, двойные слова, группировка четырёх слов.
- Шестнадцатеричное, Десятичное, Восьмеричное, Двоичное и т.д. представление данных.
- Изменение атрибутов файла.
- Анализ данных буфера обмена.
- Создание бинарных патчей, поиск/замена регулярных выражений.
- Многоязычный интерфейс.
Функции и возможности утилиты:
- Статистика и шестнадцатеричный анализатор – модуль анализа двоичных данных позволяет анализировать распределение байтов, символов и строк по шестнадцатеричным дампам и текстовым данным. Анализатор двоичных файлов Neo поддерживает шаблоны следующих типов: шаблоны символов и строк ASCII/Unicode, шаблоны данных Hex, Decimal, Octal, Binary, Float, Double и RegEx (Regular Expression).
- Графическое представление проанализированных данных в пользовательском интерфейсе Neo – софт поддерживает тепловую карту и визуализацию данных гистограммы. Вы также можете анализировать двоичный документ в форме описательной статистики: среднее значение, дисперсия выборки, стандартное отклонение, стандартная ошибка, эксцесс, асимметрия, медиана, диапазон, минимальное, максимальное, сумма и т.д.
- Сравнение файлов – Neo представляет собой расширенный инструмент сравнения в шестнадцатеричном формате. Встроенный редактор hex позволяет сравнивать 2 шестнадцатеричных файла, используя два разных алгоритма сравнения: простой (от байта к байту) и алгоритм разности (сопоставление блоков).
- Редактор ОЗУ – модификатор процесса позволяют редактировать память и обрабатывать данные, загруженные в ОЗУ ПК операционной системой. RAM Explorer предоставляет возможность легко просматривать загруженные процессы и переходить к определённым смещениям. Затем вы можете напрямую обращаться к этим блокам данных и редактировать их в окне шестнадцатеричного редактора. Таким образом, Hex Editor Neo предоставляет возможность просматривать и редактировать данные бинарных программ прямо в оперативной памяти.
- Дизассемблер – программа также позволяет разбирать исполняемые файлы x86, x64 и .NET. Neo Assembler View поддерживает следующие наборы инструкций: x86, x86-64, MMX, SSE, SSE2, 3DNow!, MSIL. Вы можете загружать файлы символов как для 32-битных, так и для 64-битных исполняемых файлов. Neo – просто идеальный редактор dll/exe!
- Двоичные шаблоны/редактор структуры – программа поддерживает синтаксический анализ внутренней структуры следующих файлов: exe, dll, sys, ocx, bmp, png, avi, rar, icc, vhd, zip, tiff, wav, tga, psd, pic, pcx, pal, emf EPS.
- Модуль Structure View – позволяет настраивать двоичные шаблоны. Вы можете написать своё собственное определение структуры файла, используя внутренний язык, подобный C/C++, почти для любого двоичного документа. Например, если вы хотите редактировать файлы данных, вам нужно сначала описать файловую структуру, а затем привязать её к конкретному файлу, используя специальное окно редактора.
- Анализатор структуры файла делает двоичную корректировку намного проще, чем просто редактирование необработанных шестнадцатеричных байтов. Открывайте, просматривайте и редактируйте файлы hex/bin с небывалой лёгкостью!
Hex Editor Neo предоставляет базовые, расширенные и даже инновационные функции. Шестнадцатеричное редактирование теперь доступно каждому начинающему пользователю!
PSPad
Любимый шестнадцатеричный редактор большинства программистов. PSPad, помимо того, что он является отличным редактором текста и кода, предлагает опцию «Открыть в HEX Editor…», которая запускает специальный режим редактирования. Когда вы находитесь в этом режиме, вы можете увидеть местоположение и шестнадцатеричные значения каждого бита файла. У вас есть два варианта корректировки – вы можете редактировать шестнадцатеричные значения по местоположению, или справа у вас есть буквенно-цифровое представление этого значения, которое вы также можете редактировать.
XVI32
XVI32 также очень способный шестнадцатеричный редактор. Как и в PSPad, вы можете редактировать шестнадцатеричные значения напрямую или через отображение символов. В нём также есть несколько расширенных инструментов редактирования шестнадцатеричных кодов, таких как калькулятор адресов для проверки смещений и других специфичных для шестнадцатеричных данных параметров, которые могут помочь вам обойти шестнадцатеричный документ. Если вы, конечно, знаете, что делаете.
Знание того, как работает ваш ПК, становится всё более и более важным, поскольку техника становится всё проще и проще в использовании. Если у вас остались вопросы относительно редактирования шестнадцатеричных файлов, оставьте комментарий под этой статьёй.
Описание формата TGA.
Здесь будет описан 24-х и 32-х битный формат файла TGA с компрессией RLE и без неё.
ЗАГОЛОВОК:
КОЛ-ВО БАЙТ | ТИП ПЕРЕМЕННОЙ | НАЗВАНИЕ | ОПИСАНИЕ |
1 | char | IdLeight | Длина текстовой информации после первого 18-ти байтового блока. Может быть использована для описания файла |
1 | char | ColorMap | Идентификатор наличия цветовой карты, здесь не описан — устарел |
1 | char | DataType | Тип данных — запакованный или нет |
5 | char[5] | ColorMapInfo | Информация о цветовой карте — нужно пропустить эти 5 байт |
2 | int | X_Origin | Начало изображения по оси X |
2 | int | Y_Origin | Начало изображения по оси Y |
2 | int | Width | Ширина изображения |
2 | int | Height | Высота изображения |
1 | char | BitPerPel | Кол-во бит на пиксель — здесь только 24 или 32 |
1 | char | Description | Описание — пропускайте |
size = IdLeight | unknown | unknown | Пропустите IdLeight байт и все (IdLeight — самое первое поле) |
1. Неупакованные данные — DataType должен быть равен 2
При неупакованных данных информация о пикселях будет содержаться поочередно. Это значит вам нужно будет прочитать столько информации сколько пикселей в изображении умноженное на кол-во бит на пиксель
2.Упакованные данные — DataType должен быть равен 10
При таком расположении информации (данных), эта самая информация может быть либо запакована, либо нет. После чтения ЗАГОЛОВКА вам нужно прочитать ровно один байт, чтобы узнать как хранятся данные:
КОЛ-ВО БАЙТ | ТИП ПЕРЕМЕННОЙ | НАЗВАНИЕ | ОПИСАНИЕ |
1 | unsigned char | BlockInfo | Описание формата хранящихся данных |
Заметьте, что здесь мы используем именно беззнаковую переменную — это важно, т.к. значение, хранящееся в BlockInfo может быть больше чем 128 — максимальное значение для переменной типа CHAR.
Для того, чтобы узнать что за информация лежит здесь, вам нужно проверить состояние первого бита в переменной BlockInfo
Почему именно 128? Посмотрим на ее двоичный код
Как видите, в начале стоит единица, а при операции «И» любой ноль перекрывает единицу, а единица с единицей даст единицу,
так что если состояние BlockInfo было к примеру
То после операции И в переменно WhatItIs будет вот что
То есть, видно, что мы получим состояние первого бита
А если BlockInfo было равно
То после операции И в переменной WhatItIs было бы
То есть, в первом бите уже не 1 а 0 :))
Так вот, продолжим.
После того, как проверим что за состояние у нас имеет первый бит, мы сможем узнать информацию о том, какие данные нам даны:
Если состояние первого бита равно единице- то это запакованные данные
Если состояние первого бита равно нулю — то это незапакованные данные
ПРИМЕР:
В первом блоке скобок запакованные данные, во втором блоке скобок незапакованные.
Пока мы разобрались лишь с первым битом, а в одной байте их 8, но т.к. один уже использован, то нам остаются только 7. Что же с ними делать? И для чего они нужны и как узнать их состояние всех сразу?
В оставшихся 7 битах хранится кол-во пикселей-1 которые идут после чтения нашей однобайтовой переменной. Далее все объясню.
Для того чтобы узнать какое число хранится в этих 7 битах мы проделаем все то, что делали в начале, только вместо
В десятичной системе это число равно 127-ми. Таким образом, чтобы узнать количество пикселей, нужно сделать следующие действия:
NumPixels = BlockInfo & 127
Теперь мы знаем как хранятся наши данные и сколько их нужно обработать, посмотрим что получилось:
Итак, начнем обсуждать ЗАПАКОВАННЫЕ данные и НЕ запакованные.
1. Запакованные
После того, как мы узнали как хранится информация и сколько ее (кол-во пикселей) мы будет читать эту информацию. При запакованных данных она хранится таким образом:
После того первого байта идет информация о единственно пикселе и тут нужно знать сколько бит идет на пиксель
Если у нас на пиксель идет 24 бита, то нам нужно прочитать 3 байта(24 / 8 = 3), а если 32 бита то 4 байта
После того, как мы прочитаем эти 24 или 32 бита нужно просто-напросто вложить в наш массив пикселей столько одинаковых пикселей, сколько их записано в переменной NumPixels
Вы можете спросить, почему мы прибавили единицу к переменной — это сделано потому, что при изымании кол-ва пикселей, значение которое мы получим всегда меньше на единицу, это сделано из-за того, что у нас осталось только 7 бит, было бы 8 мы бы ничего не прибавляли.
2. Незапакованные данные
При незапакованных данных информация хранится о каждом пикселе последовательно, то есть, если в переменной NumPixels было бы значение 20, то нам нужно было бы прочитать 20 пикселей. То есть, просто читаете информацию о пикселях и все.