Ru/Valve Texture Format: Difference between revisions

From Valve Developer Community
< Ru
Jump to navigation Jump to search
(Continuing)
m (obsolete language category)
 
(21 intermediate revisions by 9 users not shown)
Line 1: Line 1:
{{otherlang2
{{lang|Valve Texture Format}}
|en = Valve Texture Format
}}


{{finishtranslation:ru}}
{{finishtranslation}}
{{toc-right}}
{{toc-right}}


'''Valve Texture Format''' ('''VTF''') - это проприетарный формат [[texture|текстур]] использующийся движком [[Source]]. VTF файлы обычно используются через [[Material:ru|VMT]] файлы вместо использования напрямую, что предоставляет возможность их повторного использования.  
'''Valve Texture Format''' ('''VTF''') - это проприетарный формат {{L|texture|текстур}} использующийся движком {{L|Source}}. VTF файлы обычно задействуются через {{L|Material|VMT}} файлы вместо использования напрямую, что предоставляет возможность их повторного использования.  


VTF файлы могут быть созданы из изображений в формате [[TGA]] с помощью Source SDK Tool [[VTEX]] или из большинства основных форматов изображений с помощью [[Valve_Texture_Format:ru#.D0.98.D0.BD.D1.81.D1.82.D1.80.D1.83.D0.BC.D0.B5.D0.BD.D1.82.D1.8B| сторонних инструментов]]. И текстуры и материалы хранятся в подпапках <code>game_dir/materials/</code>.
VTF файлы могут быть созданы из изображений в формате {{L|TGA}} с помощью Source SDK Tool {{L|Vtex (Source 1)|VTEX}} или из большинства основных форматов изображений с помощью {{L|Valve_Texture_Format#.D0.98.D0.BD.D1.81.D1.82.D1.80.D1.83.D0.BC.D0.B5.D0.BD.D1.82.D1.8B|сторонних инструментов}}. И текстуры и материалы хранятся в подпапках <code>game_dir/materials/</code>.


{{note:ru|VTF файлы должны быть в размерности [[Wikipedia:Powers of two#The first 96 powers of two|степени двойки]], например: 64x64, 128x128, 256x256, 512x512 и т.д.}}
{{Note|VTF файлы должны быть в размерности [[Wikipedia:Powers of two#The first 96 powers of two|степени двойки]], например: 64x64, 128x128, 256x256, 512x512 и т.д.}}
{{Note|Хотя технически это ограничение можно обойти с помощью альтернативных программ для конвертации текстур, например SprayMaker 5000}}


== Возможности ==
== Возможности ==


Формат VTF может хранить, либо двумерную текстуру, либо [[$envmap|карту окружения]], либо объемную текстуру. Каждая из этих текстур может иметь несколько кадров.  
Формат VTF может хранить двумерную текстуру, либо {{L|$envmap|карту окружения}}, либо объемную текстуру. Каждая из этих текстур может иметь несколько кадров.  


* An environment map is a six-faced [[Wikipedia:cube map|cube map]]
* Карта окружения (environment map) - это шестигранная [[Wikipedia:cube map|кубическая карта]].
* A volumetric texture is a texture with depth, where each frame is a "layer" which are layered in the third dimension. So a 16x16x16 volumetric texture has 16 separate 16x16 textures stacked to give depth. This format is used internally by Source, and you shouldn't have any need to actually create one yourself.
* Объемная текстура (volumetric texture) - это текстура с глубиной, у которой каждый кадр это слой в третьем измерении. То есть объемная текстура 16x16x16 имеет 16 текстур размером 16x16 сложенных друг на друге (как стопка блинчиков). Этот формат используется внутренне движком Source и у вас не должно быть никакой потребности в создании такой текстуры самому.
* For each frame and face, the VTF file contains both the basic original source-image data (pixel map) and a series of [[mipmap]]s used for rendering the texture over varying distances. Because each successive mipmap is exactly 1/2 the dimension (height and width) of the previous one, the source-image dimensions must be powers of 2. Although the source-image may be rectangular, square mipmaps are stored more efficiently in the VTF.  
* Для каждого кадра и грани, файл VTF содержит и оригинальное изображение и серию {{L|mipmap}}'ов, использующихся для рендера текстуры на различных расстояниях. Так как каждый последующий mipmap имеет 1/2 размера (ширины и высоты) предыдущего, оригинальное изображение должно быть в размерности степени двойки. Не смотря на то, что оригинальное изображение может быть прямоугольным, квадратные mipmap'ы хранятся более эффективно в VTF.
* Start frame (for animations)
* Начальный кадр (для анимаций)
* [[$bumpmap|Bump map]] scale
* Размер {{L|$bumpmap|бамп мапы}}
* A [[$reflectivity|Reflectivity]] value for use by [[VRAD]]
* Значение {{L|$reflectivity|коэффициента отражения}} для {{L|VRAD}}
* A very low resolution copy of the VTF for color sampling by the engine.
* Копия VTF небольшого разрешения для сэмплирования цвета движком.


=== Ресурсы ===
=== Ресурсы ===


VTF 7.3 added an extensible "resource data" system. Anything can be added, but Source will recognise only the following:
В VTF версии 7.3 появилась расширяемая система ресурсов. Вы можете хранить что угодно, но движок Source распознает только следующие данные:


* A [[Wikipedia:Cyclic redundancy check|CRC]] value, for detecting data corruption.
* Значение [[Wikipedia:Cyclic redundancy check|CRC]] для обнаружения "битых" данных.
* An [[Wikipedia:UV mapping|U/V]] LOD control. This is the highest mipmap which should be loaded when game's Texture Detail setting is "High" (<code>mat_picmip 0</code>). An U LOD Control value of 11 selects the mipmap which is 2048 pixels (2<sup>11</sup>) across. {{note|Since users are currently only presented with one texture detail setting above High, there is little point setting this value to anything except 50% or 100% of your texture's size.}}
* An [[Wikipedia:UV mapping|U/V]] LOD control. This is the highest mipmap which should be loaded when game's Texture Detail setting is "High" (<code>mat_picmip 0</code>). An U LOD Control value of 11 selects the mipmap which is 2048 pixels (2<sup>11</sup>) across. {{note|Since users are currently only presented with one texture detail setting above High, there is little point setting this value to anything except 50% or 100% of your texture's size.}}
* [[Animated Particles|Animated particle sheet]] data.
* Данные {{L|Animated Particles|animated particle sheet}}.
* Expanded texture settings. This is a collection of 32 flags, none of which are in use by Valve. Unlike the built-in VTF flags these can be defined on a game-by-game basis.
* Расширенные настройки текстуры. Это коллекция из 32 флагов, ни один из которых не используется в Valve. В отличие от встроенных флагов VTF, эти могут быть определены специально для определенной игры.


== Форматы данных изображения ==
== Форматы данных изображения ==
Формат VTF может хранить в себе данные в различных форматах. Некоторые форматы предназначены для движка, некоторые только как промежуточные форматы для преобразований. Несжатые форматы не теряют данных, а сжатые (DXT) - теряют.
VTF может хранить в себе данные в различных форматах. Некоторые форматы предназначены для движка, некоторые только как промежуточные форматы для преобразований. Несжатые форматы не теряют данных, а сжатые (DXT) - теряют.


=== Таблица форматов данных изображений ===
=== Таблица форматов данных изображений ===
{| class=standard-table style="text-align:center;"
{| class=standard-table style="text-align:center;"
! Format || Red Bits || Green Bits || Blue Bits || Alpha Bits || Total Bits || Compressed || Supported || Comments
! Формат || Red Bits || Green Bits || Blue Bits || Alpha Bits || Total Bits || Сжатие || Поддерживается || Комментарий
|-
|-
| A8 || 0 || 0 || 0 || 8 || 8 || False || True ||
| A8 || 0 || 0 || 0 || 8 || 8 || False || True ||
|-
|-
| ABGR8888 || 8 || 8 || 8 || 8 || 32 || False || True || Uncompressed texture with alpha
| ABGR8888 || 8 || 8 || 8 || 8 || 32 || False || True || Несжатая текстура с альфа-каналом
|-
|-
| ARGB8888 || 8 || 8 || 8 || 8 || 32 || False || True ||
| ARGB8888 || 8 || 8 || 8 || 8 || 32 || False || True ||
|-
|-
| BGR565 || 5 || 6 || 5 || 0 || 16 || False || True || Uncompressed texture, limited color depth
| BGR565 || 5 || 6 || 5 || 0 || 16 || False || True || Несжатая текстура, ограниченная глубина цвета
|-
|-
| BGR888 || 8 || 8 || 8 || 0 || 24 || False || True || Uncompressed texture
| BGR888 || 8 || 8 || 8 || 0 || 24 || False || True || Несжатая текстура
|-
|-
| BGR888_BLUESCREEN || 8 || 8 || 8 || 0 || 24 || False || True ||
| BGR888_BLUESCREEN || 8 || 8 || 8 || 0 || 24 || False || True ||
|-
|-
| BGRA4444 || 4 || 4 || 4 || 4 || 16 || False || True || Uncompressed texture with alpha, half color depth
| BGRA4444 || 4 || 4 || 4 || 4 || 16 || False || True || Несжатая текстура с альфа-каналом, половина глубины цвета
|-
|-
| BGRA5551 || 5 || 5 || 5 || 1 || 16 || False || True ||
| BGRA5551 || 5 || 5 || 5 || 1 || 16 || False || True ||
|-
|-
| BGRA8888 || 8 || 8 || 8 || 8 || 32 || ''Either'' || True || Also used for compressed HDR
| BGRA8888 || 8 || 8 || 8 || 8 || 32 || ''Either'' || True || Также используется для сжатых HDR
|-
|-
| BGRX5551 || 5 || 5 || 5 || 1 || 16 || False || True ||
| BGRX5551 || 5 || 5 || 5 || 1 || 16 || False || True ||
Line 62: Line 61:
| BGRX8888 || 8 || 8 || 8 || 8 || 32 || False || True ||
| BGRX8888 || 8 || 8 || 8 || 8 || 32 || False || True ||
|-
|-
| DXT1 || N/A || N/A || N/A || 0 || 4 || '''True''' || True || Standard compression, no alpha
| DXT1 || N/A || N/A || N/A || 0 || 4 || '''True''' || True || Стандартное сжатие, без альфа-канала
|-
|-
| DXT1_ONEBITALPHA || N/A || N/A || N/A || 1 || 4 || '''True''' || True || Standard compression, one bit alpha
| DXT1_ONEBITALPHA || N/A || N/A || N/A || 1 || 4 || '''True''' || True || Стандартное сжатие, однобитный альфа-канал
|-
|-
| DXT3 || N/A || N/A || N/A || 4 || 8 || '''True''' || True || Uninterpolated Alpha
| DXT3 || N/A || N/A || N/A || 4 || 8 || '''True''' || True || Uninterpolated Alpha
Line 88: Line 87:
| RGBA8888 || 8 || 8 || 8 || 8 || 32 || False || True ||
| RGBA8888 || 8 || 8 || 8 || 8 || 32 || False || True ||
|-
|-
| UV88 || N/A || N/A || N/A || N/A || 16 || False || True || Uncompressed du/dv Format
| UV88 || N/A || N/A || N/A || N/A || 16 || False || True || Несжатый формат du/dv
|-
|-
| UVLX8888 || N/A || N/A || N/A || N/A || 32 || False || True ||
| UVLX8888 || N/A || N/A || N/A || N/A || 32 || False || True ||
Line 95: Line 94:
|}
|}


[[Image:Dxtn_comparison.jpg|right|100px|thumb|Comparison of how DXTn compression affects different types of images]]
[[File:Dxtn_comparison.jpg|right|100px|thumb|Сравнение влияния DXT сжатия на различные типы изображений]]


==== Сжатие HDR ====
==== Сжатие HDR ====
HDR textures can be stored in compressed form using the BGRA8888 format.
HDR текстуры могут храниться в сжатой форме используя формат BGRA8888.
 
The formula to convert these colors back to integer HDR is:


Эта формула показывает как преобразовать эти цвета в целочисленный HDR (integer):
<code>RGB = RGB * (A * 16)</code>
<code>RGB = RGB * (A * 16)</code>


and for floating point HDR:
и в HDR с плавающей запятой (floating point):


<code>RGB = (RGB * (A * 16)) / 262144</code>
<code>RGB = (RGB * (A * 16)) / 262144</code>


=== Выбор формата изображений ===
=== Выбор формата изображений ===
Though the VTF image format provides support for a wide range of image data formats, there are only a handful of image data formats you are likely to use. These formats and their criteria are described below:
Не смотря на то, что VTF предоставляет поддержку широкого ряда форматов изображений, есть только несколько форматов, которые вы, скорее всего, будете использовать. Эти форматы и критерии выбора описаны ниже.


* '''BGR888:''' use this format for textures with no alpha channel and very fine gradients (i.e. normal maps or light halos).
* '''BGR888:''' используйте для текстур без альфа-канала и с качественным градиентом (например, карт нормалей и световых ореолов (light halo)).
* '''BGRA8888:''' use this format for textures with an alpha channel and very fine gradients (i.e. normal maps or light halos). It can also be used to produce Very High quality textures.
* '''BGRA8888:''' используйте для текстур с альфа-каналом и с качественным градиентом (например, карт нормалей и световых ореолов). Он также может быть использован, чтобы получать высококачественные текстуры.  
* '''DXT1:''' use this format for typical textures with no alpha channel.
* '''DXT1:''' используйте этот формат для обычных текстур без альфа-канала.
* '''DXT3:''' use this format for typical textures with an alpha channel with sharp gradients.
* '''DXT3:''' используйте этот формат для обычных текстур с альфа-каналом и резкими градиентами.  
* '''DXT5:''' use this format for typical textures with an alpha channel with smooth gradients.
* '''DXT5:''' используйте этот формат для обычных текстур с альфа-каналом и плавными градиентами.
* '''I8:''' use this format for black and white textures with no alpha channel and very fine gradients (i.e. light halos).
* '''I8:''' используйте этот формат для черно-белых текстур без альфа-канала и с качественным градиентом (например, световые ореолы).
* '''IA88:''' use this format for black and white textures with an alpha channel and very fine gradients (i.e. smoke or light halos).
* '''IA88:''' используйте этот формат для черно-белых текстур с альфа каналом и качественным градиентом (например, дым или световые ореолы).  
* '''RGBA16161616F:''' use this format for HDR textures.
* '''RGBA16161616F:''' используйте этот формат для HDR текстур.
* '''UV88:''' use this format for DuDv maps.
* '''UV88:''' используйте этот формат для DuDv карт.


[http://www.fsdeveloper.com/wiki/index.php?title=DXT_compression_explained Find technical details on the various DXT compression formats here.]
[http://www.fsdeveloper.com/wiki/index.php?title=DXT_compression_explained Технические детали о различных форматах сжатия DXT.]


== Флаги изображений ==
== Флаги изображений ==


{{tip|Most shader settings are configured as [[:Category:List of Shader Parameters|material parameters]], not texture flags.}}
{{tip|Большинство настроек шейдера конфигурируются с помощью {{LCategory|List of Shader Parameters|параметров материала}}, не с помощью текстурных флагов.}}


A VTF file can contain the following flags (version 7.5):
VTF может содержать следующие флаги (версия 7.5):


{| class=standard-table
{| class=standard-table
| '''Flag''' || '''Value''' || '''Comment'''
| '''Флаг''' || '''Значение''' || '''Комментарий'''
|-
|-
| Point Sampling || 0x0001 || Low quality, "pixel art" texture filtering.
| Point Sampling || 0x0001 || Низкое качество, фильтрация текстур "пиксельная графика".
|-
|-
| Trilinear Sampling || 0x0002 || Medium quality texture filtering.
| Trilinear Sampling || 0x0002 || Фильтрация текстур среднего качества.
|-
|-
| Clamp S || 0x0004 || Clamp S coordinates.
| Clamp S || 0x0004 || Координаты зажима S.
|-
|-
| Clamp T || 0x0008 || Clamp T coordinates.
| Clamp T || 0x0008 || Координаты зажима T.
|-
|-
| Anisotropic Sampling || 0x0010 || High quality texture filtering.
| Anisotropic Sampling || 0x0010 || Качественная фильтрация текстур.
|-
|-
| Hint DXT5 || 0x0020 || Used in [[skybox]]es. Makes sure edges are seamless.
| Hint DXT5 || 0x0020 || Используется в {{L|skybox}}es. Убедитесь, что края бесшовные.
|-
|-
| PWL Corrected || 0x0040 || Purpose unknown.
| PWL Corrected || 0x0040 || Цель неизвестна.
|-
|-
| SRGB || n/a || Uses space RGB. Useful for High Gamuts. Deprecated in 7.5.
| SRGB || n/a || Использует пространство RGB. Полезно для высоких гамм. Не рекомендуется в версии 7.5.
|-
|-
| No Compress || 0x0040 || No DXT compression used. Deprecated
| No Compress || 0x0040 || Сжатие DXT не используется. Устаревшее
|-
|-
| Normal Map || 0x0080 || Texture is a normal map.
| Normal Map || 0x0080 || Текстура - это карта нормалей.
|-
|-
| No Mipmaps || 0x0100 || Render largest mipmap only. (Does not delete existing mipmaps, just disables them.)
| No Mipmaps || 0x0100 || Отрисовывать только самые большие MIP-карты. (Не удаляет существующие MIP-карты, а просто отключает их.)
|-
|-
| No Level Of Detail || 0x0200  || Not affected by texture resolution settings.
| No Level Of Detail || 0x0200  || Не зависит от настроек разрешения текстуры.
|-
|-
| No Minimum Mipmap || 0x0400 || If set, load mipmaps below 32x32 pixels.
| No Minimum Mipmap || 0x0400 || Если установлено, загружайте MIP-карты размером менее 32x32 пикселей.
|-
|-
| Procedural || 0x0800 || Texture is an procedural texture (code can modify it).
| Procedural || 0x0800 || Текстура - это процедурная текстура (код может ее изменять).
|-
|-
| One Bit Alpha || 0x1000 || One bit alpha channel used.
| One Bit Alpha || 0x1000 || Используется однобитовый альфа-канал.
|-
|-
| Eight Bit Alpha || 0x2000 || Eight bit alpha channel used.
| Eight Bit Alpha || 0x2000 || Используется восьмибитный альфа-канал.
|-
|-
| Environment Map || 0x4000 || Texture is an environment map.
| Environment Map || 0x4000 || Текстура - это карта окружения.
|-
|-
| Render Target || 0x8000 || Texture is a render target.
| Render Target || 0x8000 || Текстура - это цель рендеринга.
|-
|-
| Depth Render Target || 0x10000 || Texture is a depth render target.
| Depth Render Target || 0x10000 || Текстура - это цель рендеринга глубины.
|-
|-
| No Debug Override  || 0x20000 ||
| No Debug Override  || 0x20000 ||
Line 174: Line 172:
| Single Copy || 0x40000 ||
| Single Copy || 0x40000 ||
|-
|-
| Pre SRGB  || 0x80000 || SRGB correction has already been applied
| Pre SRGB  || 0x80000 || Исправление SRGB уже применено
|-
|-
| One Over Mipmap Level In Alpha  || 0x80000 || Fill the alpha channel with 1/Mipmap Level. Deprecated (Internal to VTEX?)
| One Over Mipmap Level In Alpha  || 0x80000 || Заполните альфа-канал значением 1 / Mipmap Level. Устарело (для внутреннего использования VTEX?)
|-
|-
| Premultiply Color By One Over Mipmap Level  || 0x100000 || (Internal to VTEX?)
| Premultiply Color By One Over Mipmap Level  || 0x100000 || (Для внутреннего использования VTEX?)
|-
|-
| Normal To DuDv  || 0x200000 || Texture is a DuDv map. (Internal to VTEX?)
| Normal To DuDv  || 0x200000 || Текстура - это карта DuDv. (Для внутреннего использования VTEX?)
|-
|-
| Alpha Test Mipmap Generation  || 0x400000 || (Internal to VTEX?)
| Alpha Test Mipmap Generation  || 0x400000 || (Для внутреннего использования VTEX?)
|-
|-
| No Depth Buffer  || 0x800000 || Do not [http://en.wikipedia.org/wiki/Z-buffer buffer] for Video Processing, generally render distance.
| No Depth Buffer  || 0x800000 || Не [https://ru.wikipedia.org/wiki/Z-%D0%B1%D1%83%D1%84%D0%B5%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F Z-буферизация] для обработки видео обычно расстояние визуализации.


|-
|-
| Nice Filtered  || 0x1000000 || Use [[NICE filtering]] to generate mipmaps. (Internal to VTEX?)
| Nice Filtered  || 0x1000000 || использование {{L|NICE filtering|NICE фильтрация}} для создания MIP-карт. (Для внутреннего использования VTEX?)
|-
|-
| Clamp U || 0x2000000 || Clamp U coordinates (for volumetric textures).
| Clamp U || 0x2000000 || Координаты зажима U (для объемных текстур).
|-
|-
| Vertex Texture || 0x4000000 || Usable as a vertex texture
| Vertex Texture || 0x4000000 || Может использоваться как вершинная текстура
|-
|-
| SSBump  ||0x8000000 || Texture is a [[$ssbump|SSBump]]. (''SSB'')
| SSBump  ||0x8000000 ||Текстура - это {{L|$ssbump|SSBump}}. (''SSB'')
|-
|-
| Border  ||0x20000000 || Clamp to border colour on all texture coordinates
| Border  ||0x20000000 || Привязка к цвету границы по всем координатам текстуры
|}
|}


Line 208: Line 206:
|-
|-
| style="vertical-align:top;" |
| style="vertical-align:top;" |
# VTF Header
# VTF заголовок
# VTF Low Resolution Image Data
# VTF Данные изображения с низким разрешением
# For Each Mipmap (Smallest to Largest)
# Для каждого Mipmap (от наименьшего к наибольшему)
#* For Each Frame (First to Last)
#* Для каждого кадра (от первого до последнего)
#** For Each Face (First to Last)
#** Для каждого лица (от первого до последнего)
#*** For Each Z Slice (Min to Max; Varies with Mipmap)
#*** Для каждого Z-среза (от минимального до максимального; зависит от Mipmap)
#**** VTF High Resolution Image Data
#**** VTF Данные изображения высокого разрешения
| style="vertical-align:top;" |
| style="vertical-align:top;" |
# VTF Header
# VTF заголовок
# Resource entries
# Записи ресурсов
#* VTF Low Resolution Image Data
#* VTF Данные изображения с низким разрешением
#* [[#Resources|Other resource data]]
#* {{L|Valve_Texture_Format|Другие данные о ресурсах}}
#* For Each Mipmap (Smallest to Largest)
#* Для каждого Mipmap (от наименьшего к наибольшему)
#** For Each Frame (First to Last)
#** Для каждого кадра (от первого до последнего)
#*** For Each Face (First to Last)
#*** Для каждого лица (от первого до последнего)
#**** For Each Z Slice (Min to Max; Varies with Mipmap)
#**** Для каждого Z-среза (от минимального до максимального; зависит от Mipmap)
#***** VTF High Resolution Image Data
#***** VTF Данные изображения высокого разрешения
|}
|}


Line 344: Line 342:
</source>
</source>


=== VTF lo-res image data ===
=== VTF данные изображения в низком разрешении ===
Tightly packed low resolution image data in the format described in the header. The low resolution image data is always stored in the DXT1 compressed image format. Its dimensions are that of the largest mipmap with a width or height that does not exceed 16 pixels. i.e. for a 256x256 pixel VTF: 16x16, for a 256x64 pixel VTF: 16x4, for a 1x32 pixel VTF: 1x16, for a 4x4 pixel VTF: 4x4.
Плотно упакованные данные изображения с низким разрешением в формате, описанном в заголовке. Данные изображения с низким разрешением всегда хранятся в формате сжатого изображения DXT1. Его размеры соответствуют размерам самого большого MIP-карты с шириной или высотой, не превышающей 16 пикселей. то есть для VTF 256x256 пикселей: 16x16, для VTF 256x64 пикселей: 16x4, для VTF 1x32 пикселей: 1x16, для VTF 4x4 пикселей: 4x4.


=== VTF hi-res image data ===
=== VTF данные изображения в высоком разрешении ===
Tightly packed interleaved high resolution image data in the format described in the header. Common image formats include DXT1, DXT5, BGR888, BGRA8888 and UV88. All dimensions must be a [http://en.wikipedia.org/wiki/Power_of_two power of two].
Tхорошо упакованные перемежающиеся данные изображения высокого разрешения в формате, описанном в заголовке. Распространенные форматы изображений включают DXT1, DXT5, BGR888, BGRA8888 и UV88. Все размеры должны быть [http://en.wikipedia.org/wiki/Power_of_two power of two].


=== История версий ===
=== История версий ===
'''v7.5'''
'''v7.5'''
* Released July 19th, 2010 as part of [[Alien Swarm]]
* Выпущено 19 июля 2010 г. как часть {{L|Alien Swarm}}
* Bitwise equivalent to v7.4.
* Побитовый эквивалент v7.4.
* Redefines and revises two texture flags.
* Переопределяет и изменяет два флага текстуры.
* Spheremaps now officially redundant.
* Сферы теперь официально избыточны.
* Most changes internal to the VTF creation process with VTEX, e.g. MipMap fading, Alpha decay and XBox360 formats.
* Большинство изменений внутри процесса создания VTF с помощью VTEX, например Форматы MipMap fading, Alpha decay и XBox360.


'''v7.4'''
'''v7.4'''
* Released October 10th, 2007 as part of [[Wikipedia:The Orange Box|The Orange Box]].
* Выпущена 10 октября 2007 г. как часть [[wikipedia:The_Orange_Box|The Orange Box]].
* Bitwise equivalent to v7.3.
* Побитовый эквивалент версии 7.3.
* Addresses issues related to how gamma-correction is performed on textures for TV-output on XBOX 360 combined with hunting down OS Paged Pool Memory.
* Решает проблемы, связанные с тем, как выполняется гамма-коррекция текстур для ТВ-вывода на XBOX 360 в сочетании с поиском памяти выгружаемого пула ОС.


'''v7.3'''
'''v7.3'''
* Added an extensible resource orientated structure.
* Добавлена ​​расширяемая структура, ориентированная на ресурсы.
* Added CRC, Texture LOD Control and Sheet resources, along with backwards compatible Image and Low Resolution Image resources.
* Добавлены ресурсы CRC, управления уровнем детализации текстуры и листа, а также ресурсы изображений с обратной совместимостью и изображений с низким разрешением.
* Added several vendor specific depth-stencil formats (for internal engine use), along with normal map formats and linear uncompressed formats.
* Добавлено несколько форматов трафаретов глубины, зависящих от поставщика (для внутреннего использования в движке), а также форматы карт нормалей и линейные несжатые форматы.
* Released September 18th, 2007 as part of the [[Team Fortress 2]] beta.
* Выпущена 18 сентября 2007 г. как часть {{L|Team Fortress 2}} бета.


'''v7.2'''
'''v7.2'''
* Added volumetric texture support.
* Добавлена ​​поддержка объемных текстур.
* Released September 23rd, 2005 as a [[Steam]] engine update.
* Выпущен 23 сентября 2005 г. как {{L|Steam}} обновление двигателя.


'''v7.1'''
'''v7.1'''
* Added spheremap support to environment maps. (This was intended for DirectX 6 support which was later cut.)
* Добавлена ​​поддержка карты сфер для карт среды. (Это было предназначено для поддержки DirectX 6, которая позже была сокращена.)


'''v7.0'''
'''v7.0'''
* Initial release. (Internal release only, however, some v7.0 textures made it to the published title.)
* Изначальный выпуск. (Только для внутреннего выпуска, однако некоторые текстуры v7.0 попали в опубликованный заголовок.)


=== Implementation ===
=== Реализация ===
An example Steam independent implementation of the VTF image file format can be found in the LGPL C/C++ library [[VTFLib]].
Пример независимой от Steam реализации формата файла изображения VTF можно найти в библиотеке LGPL C / C ++. {{L|VTFLib}}.


== Инструменты ==
== Инструменты ==


; Просмотр  
; Просмотр  
: [[VTF Shell Extensions|Windows thumbnail handler]] (Windows XP+)
: {{L|VTF Shell Extensions|Windows thumbnail handler}} (Windows XP+)
: [[VTF Explorer]] (Windows; can explore inside GCFs)
: {{L|VTF Explorer}} (Windows; можно исследовать внутри GCFs)
: [http://forre.st/vtf gdk-pixbuf-vtf] (Gnome\Nautilus\Eog)
: [https://forre.st/vtf gdk-pixbuf-vtf] (Gnome\Nautilus\Eog)
: [http://www.irfanview.com/plugins.htm IrfanView plugin]
: [https://www.irfanview.com/plugins.htm IrfanView plugin]
: [http://www.filedropper.com/imageviewer002 Leadworks Image Viewer(supports VTF)] {{Dead_link}}
: [https://www.filedropper.com/imageviewer002 Программа просмотра изображений Leadworks (supports VTF)] {{Dead_link}}
; Редактирование
; Редактирование
: [[VTFEdit]] (GUI) and [[VTFCmd]] ([[command line]])
: {{L|VTFEdit}} (GUI) и {{L|VTFCmd}} ({{L|command line}})
: [[Photoshop VTF Plugin|Photoshop Plug-in]] (6 and up)
: {{L|Photoshop VTF Plugin|Photoshop Plug-in}} (6 и вверх)
: [http://code.google.com/p/gimp-vtf/ GIMP Plug-in]
: [https://code.google.com/p/gimp-vtf/ GIMP Plug-in]
: [http://nemesis.thewavelength.net/index.php?p=50 Paint.NET Plug-in]
: [https://nemesis.thewavelength.net/index.php?p=50 Paint.NET Plug-in]
: [[3DSMax VTF plugin|3DSMax plugin]] (versions 6 to 2009)
: {{L|3DSMax VTF plugin|3DSMax plugin}} (версии с 6 по 2009)
: [http://www.riintouge.com/VIDE/ VIDE]
: [http://www.riintouge.com/VIDE/ VIDE]
; Преобразование между версиями  
; Преобразование между версиями  
: [https://github.com/geotavros/vtf75tovtf74/releases 7.5 to 7.4 Batch Converter]
: [https://github.com/geotavros/vtf75tovtf74/releases 7.5 to 7.4 Batch Converter]


[[Category:Glossary:ru]]
{{ACategory|Glossary}}
[[Category:Material System:ru]]
{{ACategory|Material System}}
[[Category:File formats]]
{{ACategory|File formats}}
[[Category:Russian]]


== См. также ==
== См. также ==


* [[Creating a Material:ru|Создание материала]]
* {{L|Creating a Material|Создание материала}}
* [[Material:ru|Valve Material Type]]
* {{L|Material|Valve Material Type}}

Latest revision as of 04:08, 22 August 2024

English (en)Français (fr)Русский (ru)Translate (Translate)
Info content.png
This page has not been fully translated.
You can help by finishing the translation.
If this page cannot be translated for some reason, or is left untranslated for an extended period of time after this notice is posted, the page should be requested to be deleted.
Also, please make sure the article complies with the alternate languages guide.(en)

Valve Texture Format (VTF) - это проприетарный формат текстур(en) использующийся движком Source(en). VTF файлы обычно задействуются через VMT(en) файлы вместо использования напрямую, что предоставляет возможность их повторного использования.

VTF файлы могут быть созданы из изображений в формате TGA(en) с помощью Source SDK Tool VTEX(en) или из большинства основных форматов изображений с помощью сторонних инструментов(en). И текстуры и материалы хранятся в подпапках game_dir/materials/.

Note.pngПримечание:VTF файлы должны быть в размерности степени двойки, например: 64x64, 128x128, 256x256, 512x512 и т.д.
Note.pngПримечание:Хотя технически это ограничение можно обойти с помощью альтернативных программ для конвертации текстур, например SprayMaker 5000

Возможности

Формат VTF может хранить двумерную текстуру, либо карту окружения(en), либо объемную текстуру. Каждая из этих текстур может иметь несколько кадров.

  • Карта окружения (environment map) - это шестигранная кубическая карта.
  • Объемная текстура (volumetric texture) - это текстура с глубиной, у которой каждый кадр это слой в третьем измерении. То есть объемная текстура 16x16x16 имеет 16 текстур размером 16x16 сложенных друг на друге (как стопка блинчиков). Этот формат используется внутренне движком Source и у вас не должно быть никакой потребности в создании такой текстуры самому.
  • Для каждого кадра и грани, файл VTF содержит и оригинальное изображение и серию mipmap(en)'ов, использующихся для рендера текстуры на различных расстояниях. Так как каждый последующий mipmap имеет 1/2 размера (ширины и высоты) предыдущего, оригинальное изображение должно быть в размерности степени двойки. Не смотря на то, что оригинальное изображение может быть прямоугольным, квадратные mipmap'ы хранятся более эффективно в VTF.
  • Начальный кадр (для анимаций)
  • Размер бамп мапы(en)
  • Значение коэффициента отражения(en) для VRAD(en)
  • Копия VTF небольшого разрешения для сэмплирования цвета движком.

Ресурсы

В VTF версии 7.3 появилась расширяемая система ресурсов. Вы можете хранить что угодно, но движок Source распознает только следующие данные:

  • Значение CRC для обнаружения "битых" данных.
  • An U/V LOD control. This is the highest mipmap which should be loaded when game's Texture Detail setting is "High" (mat_picmip 0). An U LOD Control value of 11 selects the mipmap which is 2048 pixels (211) across.
    Note.pngПримечание:Since users are currently only presented with one texture detail setting above High, there is little point setting this value to anything except 50% or 100% of your texture's size.
  • Данные animated particle sheet(en).
  • Расширенные настройки текстуры. Это коллекция из 32 флагов, ни один из которых не используется в Valve. В отличие от встроенных флагов VTF, эти могут быть определены специально для определенной игры.

Форматы данных изображения

VTF может хранить в себе данные в различных форматах. Некоторые форматы предназначены для движка, некоторые только как промежуточные форматы для преобразований. Несжатые форматы не теряют данных, а сжатые (DXT) - теряют.

Таблица форматов данных изображений

Формат Red Bits Green Bits Blue Bits Alpha Bits Total Bits Сжатие Поддерживается Комментарий
A8 0 0 0 8 8 False True
ABGR8888 8 8 8 8 32 False True Несжатая текстура с альфа-каналом
ARGB8888 8 8 8 8 32 False True
BGR565 5 6 5 0 16 False True Несжатая текстура, ограниченная глубина цвета
BGR888 8 8 8 0 24 False True Несжатая текстура
BGR888_BLUESCREEN 8 8 8 0 24 False True
BGRA4444 4 4 4 4 16 False True Несжатая текстура с альфа-каналом, половина глубины цвета
BGRA5551 5 5 5 1 16 False True
BGRA8888 8 8 8 8 32 Either True Также используется для сжатых HDR
BGRX5551 5 5 5 1 16 False True
BGRX8888 8 8 8 8 32 False True
DXT1 N/A N/A N/A 0 4 True True Стандартное сжатие, без альфа-канала
DXT1_ONEBITALPHA N/A N/A N/A 1 4 True True Стандартное сжатие, однобитный альфа-канал
DXT3 N/A N/A N/A 4 8 True True Uninterpolated Alpha
DXT5 N/A N/A N/A 4 8 True True Interpolated Alpha (recommended)
I8 N/A N/A N/A N/A 8 False True Luminance (Grayscale)
IA88 N/A N/A N/A 8 16 False True Luminance (Grayscale)
P8 N/A N/A N/A N/A 8 False False Paletted
RGB565 5 6 5 0 16 False True
RGB888 8 8 8 0 24 False True
RGB888_BLUESCREEN 8 8 8 0 24 False True
RGBA16161616 16 16 16 16 64 False True Integer HDR Format
RGBA16161616F 16 16 16 16 64 False True Floating Point HDR Format
RGBA8888 8 8 8 8 32 False True
UV88 N/A N/A N/A N/A 16 False True Несжатый формат du/dv
UVLX8888 N/A N/A N/A N/A 32 False True
UVWQ8888 N/A N/A N/A N/A 32 False True
Сравнение влияния DXT сжатия на различные типы изображений

Сжатие HDR

HDR текстуры могут храниться в сжатой форме используя формат BGRA8888.

Эта формула показывает как преобразовать эти цвета в целочисленный HDR (integer): RGB = RGB * (A * 16)

и в HDR с плавающей запятой (floating point):

RGB = (RGB * (A * 16)) / 262144

Выбор формата изображений

Не смотря на то, что VTF предоставляет поддержку широкого ряда форматов изображений, есть только несколько форматов, которые вы, скорее всего, будете использовать. Эти форматы и критерии выбора описаны ниже.

  • BGR888: используйте для текстур без альфа-канала и с качественным градиентом (например, карт нормалей и световых ореолов (light halo)).
  • BGRA8888: используйте для текстур с альфа-каналом и с качественным градиентом (например, карт нормалей и световых ореолов). Он также может быть использован, чтобы получать высококачественные текстуры.
  • DXT1: используйте этот формат для обычных текстур без альфа-канала.
  • DXT3: используйте этот формат для обычных текстур с альфа-каналом и резкими градиентами.
  • DXT5: используйте этот формат для обычных текстур с альфа-каналом и плавными градиентами.
  • I8: используйте этот формат для черно-белых текстур без альфа-канала и с качественным градиентом (например, световые ореолы).
  • IA88: используйте этот формат для черно-белых текстур с альфа каналом и качественным градиентом (например, дым или световые ореолы).
  • RGBA16161616F: используйте этот формат для HDR текстур.
  • UV88: используйте этот формат для DuDv карт.

Технические детали о различных форматах сжатия DXT.

Флаги изображений

Tip.pngСовет:Большинство настроек шейдера конфигурируются с помощью параметров материала(en), не с помощью текстурных флагов.

VTF может содержать следующие флаги (версия 7.5):

Флаг Значение Комментарий
Point Sampling 0x0001 Низкое качество, фильтрация текстур "пиксельная графика".
Trilinear Sampling 0x0002 Фильтрация текстур среднего качества.
Clamp S 0x0004 Координаты зажима S.
Clamp T 0x0008 Координаты зажима T.
Anisotropic Sampling 0x0010 Качественная фильтрация текстур.
Hint DXT5 0x0020 Используется в skybox(en)es. Убедитесь, что края бесшовные.
PWL Corrected 0x0040 Цель неизвестна.
SRGB n/a Использует пространство RGB. Полезно для высоких гамм. Не рекомендуется в версии 7.5.
No Compress 0x0040 Сжатие DXT не используется. Устаревшее
Normal Map 0x0080 Текстура - это карта нормалей.
No Mipmaps 0x0100 Отрисовывать только самые большие MIP-карты. (Не удаляет существующие MIP-карты, а просто отключает их.)
No Level Of Detail 0x0200 Не зависит от настроек разрешения текстуры.
No Minimum Mipmap 0x0400 Если установлено, загружайте MIP-карты размером менее 32x32 пикселей.
Procedural 0x0800 Текстура - это процедурная текстура (код может ее изменять).
One Bit Alpha 0x1000 Используется однобитовый альфа-канал.
Eight Bit Alpha 0x2000 Используется восьмибитный альфа-канал.
Environment Map 0x4000 Текстура - это карта окружения.
Render Target 0x8000 Текстура - это цель рендеринга.
Depth Render Target 0x10000 Текстура - это цель рендеринга глубины.
No Debug Override 0x20000
Single Copy 0x40000
Pre SRGB 0x80000 Исправление SRGB уже применено
One Over Mipmap Level In Alpha 0x80000 Заполните альфа-канал значением 1 / Mipmap Level. Устарело (для внутреннего использования VTEX?)
Premultiply Color By One Over Mipmap Level 0x100000 (Для внутреннего использования VTEX?)
Normal To DuDv 0x200000 Текстура - это карта DuDv. (Для внутреннего использования VTEX?)
Alpha Test Mipmap Generation 0x400000 (Для внутреннего использования VTEX?)
No Depth Buffer 0x800000 Не Z-буферизация для обработки видео обычно расстояние визуализации.
Nice Filtered 0x1000000 использование NICE фильтрация(en) для создания MIP-карт. (Для внутреннего использования VTEX?)
Clamp U 0x2000000 Координаты зажима U (для объемных текстур).
Vertex Texture 0x4000000 Может использоваться как вершинная текстура
SSBump 0x8000000 Текстура - это SSBump(en). (SSB)
Border 0x20000000 Привязка к цвету границы по всем координатам текстуры

Формат файла

Описание формата VTF.

Структура формата

7.2 7.3 +
  1. VTF заголовок
  2. VTF Данные изображения с низким разрешением
  3. Для каждого Mipmap (от наименьшего к наибольшему)
    • Для каждого кадра (от первого до последнего)
      • Для каждого лица (от первого до последнего)
        • Для каждого Z-среза (от минимального до максимального; зависит от Mipmap)
          • VTF Данные изображения высокого разрешения
  1. VTF заголовок
  2. Записи ресурсов
    • VTF Данные изображения с низким разрешением
    • Другие данные о ресурсах(en)
    • Для каждого Mipmap (от наименьшего к наибольшему)
      • Для каждого кадра (от первого до последнего)
        • Для каждого лица (от первого до последнего)
          • Для каждого Z-среза (от минимального до максимального; зависит от Mipmap)
            • VTF Данные изображения высокого разрешения

Перечисления

enum
{
	IMAGE_FORMAT_NONE = -1,
	IMAGE_FORMAT_RGBA8888 = 0,
	IMAGE_FORMAT_ABGR8888,
	IMAGE_FORMAT_RGB888,
	IMAGE_FORMAT_BGR888,
	IMAGE_FORMAT_RGB565,
	IMAGE_FORMAT_I8,
	IMAGE_FORMAT_IA88,
	IMAGE_FORMAT_P8,
	IMAGE_FORMAT_A8,
	IMAGE_FORMAT_RGB888_BLUESCREEN,
	IMAGE_FORMAT_BGR888_BLUESCREEN,
	IMAGE_FORMAT_ARGB8888,
	IMAGE_FORMAT_BGRA8888,
	IMAGE_FORMAT_DXT1,
	IMAGE_FORMAT_DXT3,
	IMAGE_FORMAT_DXT5,
	IMAGE_FORMAT_BGRX8888,
	IMAGE_FORMAT_BGR565,
	IMAGE_FORMAT_BGRX5551,
	IMAGE_FORMAT_BGRA4444,
	IMAGE_FORMAT_DXT1_ONEBITALPHA,
	IMAGE_FORMAT_BGRA5551,
	IMAGE_FORMAT_UV88,
	IMAGE_FORMAT_UVWQ8888,
	IMAGE_FORMAT_RGBA16161616F,
	IMAGE_FORMAT_RGBA16161616,
	IMAGE_FORMAT_UVLX8888
};
enum
{
	// Flags from the *.txt config file
	TEXTUREFLAGS_POINTSAMPLE = 0x00000001,
	TEXTUREFLAGS_TRILINEAR = 0x00000002,
	TEXTUREFLAGS_CLAMPS = 0x00000004,
	TEXTUREFLAGS_CLAMPT = 0x00000008,
	TEXTUREFLAGS_ANISOTROPIC = 0x00000010,
	TEXTUREFLAGS_HINT_DXT5 = 0x00000020,
	TEXTUREFLAGS_PWL_CORRECTED = 0x00000040,
	TEXTUREFLAGS_NORMAL = 0x00000080,
	TEXTUREFLAGS_NOMIP = 0x00000100,
	TEXTUREFLAGS_NOLOD = 0x00000200,
	TEXTUREFLAGS_ALL_MIPS = 0x00000400,
	TEXTUREFLAGS_PROCEDURAL = 0x00000800,

	// These are automatically generated by vtex from the texture data.
	TEXTUREFLAGS_ONEBITALPHA = 0x00001000,
	TEXTUREFLAGS_EIGHTBITALPHA = 0x00002000,

	// Newer flags from the *.txt config file
	TEXTUREFLAGS_ENVMAP = 0x00004000,
	TEXTUREFLAGS_RENDERTARGET = 0x00008000,
	TEXTUREFLAGS_DEPTHRENDERTARGET = 0x00010000,
	TEXTUREFLAGS_NODEBUGOVERRIDE = 0x00020000,
	TEXTUREFLAGS_SINGLECOPY	= 0x00040000,
	TEXTUREFLAGS_PRE_SRGB = 0x00080000,
        
        TEXTUREFLAGS_UNUSED_00100000 = 0x00100000,
	TEXTUREFLAGS_UNUSED_00200000 = 0x00200000,
	TEXTUREFLAGS_UNUSED_00400000 = 0x00400000,

	TEXTUREFLAGS_NODEPTHBUFFER = 0x00800000,

	TEXTUREFLAGS_UNUSED_01000000 = 0x01000000,

	TEXTUREFLAGS_CLAMPU = 0x02000000,
	TEXTUREFLAGS_VERTEXTEXTURE = 0x04000000,
	TEXTUREFLAGS_SSBUMP = 0x08000000,			

	TEXTUREFLAGS_UNUSED_10000000 = 0x10000000,

	TEXTUREFLAGS_BORDER = 0x20000000,

	TEXTUREFLAGS_UNUSED_40000000 = 0x40000000,
	TEXTUREFLAGS_UNUSED_80000000 = 0x80000000,
};

Заголовок формата

typedef struct tagVTFHEADER
{
	char		signature[4];		// File signature ("VTF\0"). (or as little-endian integer, 0x00465456)
	unsigned int	version[2];		// version[0].version[1] (currently 7.2).
	unsigned int	headerSize;		// Size of the header struct  (16 byte aligned; currently 80 bytes) + size of the resources dictionary (7.3+).
	unsigned short	width;			// Width of the largest mipmap in pixels. Must be a power of 2.
	unsigned short	height;			// Height of the largest mipmap in pixels. Must be a power of 2.
	unsigned int	flags;			// VTF flags.
	unsigned short	frames;			// Number of frames, if animated (1 for no animation).
	unsigned short	firstFrame;		// First frame in animation (0 based).
	unsigned char	padding0[4];		// reflectivity padding (16 byte alignment).
	float		reflectivity[3];	// reflectivity vector.
	unsigned char	padding1[4];		// reflectivity padding (8 byte packing).
	float		bumpmapScale;		// Bumpmap scale.
	unsigned int	highResImageFormat;	// High resolution image format.
	unsigned char	mipmapCount;		// Number of mipmaps.
	unsigned int	lowResImageFormat;	// Low resolution image format (always DXT1).
	unsigned char	lowResImageWidth;	// Low resolution image width.
	unsigned char	lowResImageHeight;	// Low resolution image height.

	// 7.2+
	unsigned short	depth;			// Depth of the largest mipmap in pixels.
						// Must be a power of 2. Can be 0 or 1 for a 2D texture (v7.2 only).

	// 7.3+
	unsigned char	padding2[3];		// depth padding (4 byte alignment).
	unsigned int	numResources;		// Number of resources this vtf has
} VTFHEADER;

VTF данные изображения в низком разрешении

Плотно упакованные данные изображения с низким разрешением в формате, описанном в заголовке. Данные изображения с низким разрешением всегда хранятся в формате сжатого изображения DXT1. Его размеры соответствуют размерам самого большого MIP-карты с шириной или высотой, не превышающей 16 пикселей. то есть для VTF 256x256 пикселей: 16x16, для VTF 256x64 пикселей: 16x4, для VTF 1x32 пикселей: 1x16, для VTF 4x4 пикселей: 4x4.

VTF данные изображения в высоком разрешении

Tхорошо упакованные перемежающиеся данные изображения высокого разрешения в формате, описанном в заголовке. Распространенные форматы изображений включают DXT1, DXT5, BGR888, BGRA8888 и UV88. Все размеры должны быть power of two.

История версий

v7.5

  • Выпущено 19 июля 2010 г. как часть Alien Swarm(en)
  • Побитовый эквивалент v7.4.
  • Переопределяет и изменяет два флага текстуры.
  • Сферы теперь официально избыточны.
  • Большинство изменений внутри процесса создания VTF с помощью VTEX, например Форматы MipMap fading, Alpha decay и XBox360.

v7.4

  • Выпущена 10 октября 2007 г. как часть The Orange Box.
  • Побитовый эквивалент версии 7.3.
  • Решает проблемы, связанные с тем, как выполняется гамма-коррекция текстур для ТВ-вывода на XBOX 360 в сочетании с поиском памяти выгружаемого пула ОС.

v7.3

  • Добавлена ​​расширяемая структура, ориентированная на ресурсы.
  • Добавлены ресурсы CRC, управления уровнем детализации текстуры и листа, а также ресурсы изображений с обратной совместимостью и изображений с низким разрешением.
  • Добавлено несколько форматов трафаретов глубины, зависящих от поставщика (для внутреннего использования в движке), а также форматы карт нормалей и линейные несжатые форматы.
  • Выпущена 18 сентября 2007 г. как часть Team Fortress 2(en) бета.

v7.2

  • Добавлена ​​поддержка объемных текстур.
  • Выпущен 23 сентября 2005 г. как Steam(en) обновление двигателя.

v7.1

  • Добавлена ​​поддержка карты сфер для карт среды. (Это было предназначено для поддержки DirectX 6, которая позже была сокращена.)

v7.0

  • Изначальный выпуск. (Только для внутреннего выпуска, однако некоторые текстуры v7.0 попали в опубликованный заголовок.)

Реализация

Пример независимой от Steam реализации формата файла изображения VTF можно найти в библиотеке LGPL C / C ++. VTFLib(en).

Инструменты

Просмотр
Windows thumbnail handler(en) (Windows XP+)
VTF Explorer(en) (Windows; можно исследовать внутри GCFs)
gdk-pixbuf-vtf (Gnome\Nautilus\Eog)
IrfanView plugin
Программа просмотра изображений Leadworks (supports VTF) [мёртвая ссылка]
Редактирование
VTFEdit(en) (GUI) и VTFCmd(en) (command line(en))
Photoshop Plug-in(en) (6 и вверх)
GIMP Plug-in
Paint.NET Plug-in
3DSMax plugin(en) (версии с 6 по 2009)
VIDE
Преобразование между версиями
7.5 to 7.4 Batch Converter

См. также