S3TC: различия между версиями
[непроверенная версия] | [отпатрулированная версия] |
DeNULL (обсуждение | вклад) |
Спасено источников — 4, отмечено мёртвыми — 0. Сообщить об ошибке. См. FAQ.) #IABot (v2.0.8.7 |
||
(не показано 6 промежуточных версий 4 участников) | |||
Строка 1: | Строка 1: | ||
'''S3TC''' ('''S3 Texture Compression''')<ref> |
'''S3TC''' ('''S3 Texture Compression''')<ref>{{Cite web |url=http://msk.edu.ua/ivk/OKM/Z17/Komputernaya_Graphika.pdf |title=Божко А. Н. Жук Д. М. Маничев В. Б. Компьютерная графика. МГТУ им. Баумана-2007, 418стр. |access-date=2015-06-25 |archive-date=2015-06-26 |archive-url=https://web.archive.org/web/20150626114552/http://msk.edu.ua/ivk/OKM/Z17/Komputernaya_Graphika.pdf |deadlink=no }}</ref> (также называется '''DXTn''' или DirectX Texture Compression — '''[[DXTC]]''') — метод [[Сжатие текстур|сжатия текстур]], первоначально разработанный Iourcha и др. из [[S3 Graphics]]<ref>{{US Patent|5956431|Fixed-rate block-based image compression with inferred pixel values}}</ref> для использования в компьютерном графическом ускорителе [[Savage 3D]]. |
||
Метод сжатия поразительно похож на ранее опубликованный [[Color Cell Compression]]<ref>{{cite web|url=http://ieeexplore.ieee.org/iel5/498/3989/00152671.pdf |title=1990 IEEE Color Cell Compression Paper |publisher=Ieeexplore.ieee.org |date= |accessdate=2012-01-25}}</ref>. '''DXTC''' — это формат сжатия текстур с потерями, с фиксированным размером выходных данных. Благодаря алгоритму сжатия, формат S3TC стал широко использованным форматом сжатия текстур для трехмерной компьютерной графики с аппаратным ускорением. После интеграции S3TC в состав Microsoft [[DirectX]] 6.0 и [[OpenGL]] 1.3 этот формат сжатия получил исключительно широкое распространение. Существует не менее 5 разновидностей формата S3TC (от DXT1 до DXT5 включительно).<ref>{{Cite web |url=https://software.intel.com/ru-ru/android/articles/android-texture-compression/ |title=Сжатие Текстур |access-date=2015-06-23 |archive-date=2015-06-23 |archive-url=https://web.archive.org/web/20150623183711/https://software.intel.com/ru-ru/android/articles/android-texture-compression/ |deadlink=no }}</ref> |
|||
== Кодеки == |
== Кодеки == |
||
Строка 17: | Строка 19: | ||
== Сравнение форматов S3TC == |
== Сравнение форматов S3TC == |
||
Таблица кодеков.<ref> |
Таблица кодеков.<ref>{{Cite web |url=http://www.ijera.com/papers/Vol3_issue2/HS3213811385.pdf |title=ISSN:2248-9622 Vol.3,Issue 2,April 2013,pp.1381-1385 3D Graphic Texture Compression And Its Recent Trends. |access-date=2015-06-25 |archive-date=2015-09-24 |archive-url=https://web.archive.org/web/20150924033453/http://www.ijera.com/papers/Vol3_issue2/HS3213811385.pdf |deadlink=no }}</ref><ref>{{Cite web |url=https://msdn.microsoft.com/en-us/library/windows/desktop/hh308955%28v=vs.85%29.aspx |title=MSDN. Block Compression Formats Supported in Direct3D 11. |access-date=2015-06-25 |archive-date=2015-07-01 |archive-url=https://web.archive.org/web/20150701021202/https://msdn.microsoft.com/en-us/library/windows/desktop/hh308955%28v=vs.85%29.aspx |deadlink=no }}</ref> |
||
{| class="wikitable" |
{| class="wikitable" |
||
|- style="text-align:center;" |
|- style="text-align:center;" |
||
! Идентификатор кодека FOURCC |
! Идентификатор кодека FOURCC |
||
! Сжатие блоков |
|||
! Block Compression |
|||
! Описание |
! Описание |
||
! Premultiplied Alpha |
|||
! Поддержка альфа канала |
|||
! Степень сжатия |
! Степень сжатия |
||
! Поддерживаемые текстуры |
|||
! Texture Type |
|||
|- style="text-align:center;" |
|- style="text-align:center;" |
||
| DXT1 || BC1 || 1-bit Alpha / Opaque || N/A || 6:1(for 24 bit source image) || Simple non-alpha |
| DXT1 || BC1 || 1-bit Alpha / Opaque || N/A || 6:1(for 24 bit source image) || Simple non-alpha |
||
Строка 38: | Строка 40: | ||
| DXT5 || BC3 || Interpolated alpha || No || 4:1 || Gradient alpha |
| DXT5 || BC3 || Interpolated alpha || No || 4:1 || Gradient alpha |
||
|} |
|} |
||
Преимущества: |
Преимущества: |
||
* Размер файлов существенно меньше по сравнению с PNG. |
* Размер файлов существенно меньше по сравнению с PNG. |
||
Строка 43: | Строка 46: | ||
* Высокая скорость компрессии/декомпрессии изображений. |
* Высокая скорость компрессии/декомпрессии изображений. |
||
* Аппаратное ускорение обработки графическими процессорами реализовано в огромном количестве видеоадаптеров. Аппаратная поддержка применяется практически повсеместно на настольных ПК и постепенно охватывает устройства на базе Android. |
* Аппаратное ускорение обработки графическими процессорами реализовано в огромном количестве видеоадаптеров. Аппаратная поддержка применяется практически повсеместно на настольных ПК и постепенно охватывает устройства на базе Android. |
||
Недостатки: |
Недостатки: |
||
* Качество ниже, чем при использовании PNG (поскольку формат S3TC предусматривает сжатие с потерями). |
* Качество ниже, чем при использовании PNG (поскольку формат S3TC предусматривает сжатие с потерями). |
||
* Поддерживается не всеми устройствами на базе Android. |
|||
== Программные средства для сжатия == |
|||
DirectX Texture Tool from DirectX (included in the DX SDK)<ref>http://www.microsoft.com/en-us/download/details.aspx?id=6812 DirectX Software Development Kit</ref> |
|||
=== Доступ к данным текстур === |
|||
В большинстве форматов сжатия текстур существует заголовок, который находится в файле перед данными. В заголовке обычно содержатся сведения о формате сжатия текстур, высота, ширина и глубина текстуры, размер данных, внутренний формат и прочие свойства файла. |
|||
== См. также == |
== См. также == |
||
Строка 58: | Строка 54: | ||
* [[Текстурный атлас]] |
* [[Текстурный атлас]] |
||
* [[Альфа-канал]] |
* [[Альфа-канал]] |
||
* |
* {{iw|3Dc}} |
||
* |
* {{iw|FXT1}} |
||
* [[DirectDraw Surface]] |
* [[DirectDraw Surface]] |
||
* [[PVRTC]] |
* [[PVRTC]] |
||
* |
* {{iw|Adaptive Scalable Texture Compression|ASTC|en|Adaptive Scalable Texture Compression}} |
||
* |
* {{iw|Ericsson Texture Compression|ETC1|en|Ericsson Texture Compression}} |
||
== |
== Примечания == |
||
{{примечания |
{{примечания}} |
||
== Литература == |
== Литература == |
||
* [http://msdn.microsoft.com/en-us/library/bb694531(v=vs.85).aspx Microsoft Developer Network article on Block Compression in Direct3D 10] |
* [http://msdn.microsoft.com/en-us/library/bb694531(v=vs.85).aspx Microsoft Developer Network article on Block Compression in Direct3D 10] |
||
* [http://developer.nvidia.com/object/nv_texture_tools.html NVIDIA Texture Tools] |
|||
* [http://developer.amd.com/gpu/Pages/default.aspx AMD GPU Tools] |
|||
* [http://code.google.com/p/libsquish/ squish], an [[MIT license|MIT-licensed]] S3TC compressor. The site also contains [http://www.sjbrown.co.uk/?article=dxt an article] giving an introduction to compression algorithms. |
|||
* [http://people.freedesktop.org/~cbrill/libtxc_dxtn/ libtxc_dxtn], a BSD licensed module for Mesa |
|||
* [http://www.digit-life.com/articles/reviews3tcfxt1/ Comparison between S3TC and FXT1 texture compression] |
* [http://www.digit-life.com/articles/reviews3tcfxt1/ Comparison between S3TC and FXT1 texture compression] |
||
* [http://web.archive.org/web/20030618083605/www.hardwarecentral.com/hardwarecentral/reports/140/1/ The Truth about S3TC] Note: This article used an early S3TC compression engine, not nVidia’s or ATI’s updated codecs. |
|||
* [http://www.colecovision.eu/graphics/texture_compression.pdf Texture compression] survey |
|||
* [http://www.3dnews.ru/173342/ О технологии компрессии текстур S3TC] |
* [http://www.3dnews.ru/173342/ О технологии компрессии текстур S3TC] |
||
* [http://code.google.com/p/crunch/ crunch], a [[ZLIB license|ZLIB-licensed]] DXT1/5/N command line tool and compression library with a highly compressed intermediate format. |
|||
* [http://software.intel.com/en-us/articles/fast-cpu-dxt-compression/ A fast, SSE2-enabled DXT1/5 compressor by Intel] |
* [http://software.intel.com/en-us/articles/fast-cpu-dxt-compression/ A fast, SSE2-enabled DXT1/5 compressor by Intel] |
||
Текущая версия от 02:47, 18 мая 2022
S3TC (S3 Texture Compression)[1] (также называется DXTn или DirectX Texture Compression — DXTC) — метод сжатия текстур, первоначально разработанный Iourcha и др. из S3 Graphics[2] для использования в компьютерном графическом ускорителе Savage 3D.
Метод сжатия поразительно похож на ранее опубликованный Color Cell Compression[3]. DXTC — это формат сжатия текстур с потерями, с фиксированным размером выходных данных. Благодаря алгоритму сжатия, формат S3TC стал широко использованным форматом сжатия текстур для трехмерной компьютерной графики с аппаратным ускорением. После интеграции S3TC в состав Microsoft DirectX 6.0 и OpenGL 1.3 этот формат сжатия получил исключительно широкое распространение. Существует не менее 5 разновидностей формата S3TC (от DXT1 до DXT5 включительно).[4]
Кодеки
[править | править код]DXT1
[править | править код]Формат DXT1 из всех разновидностей S3TC обеспечивает самое сильное сжатие: каждый блок из 16 пикселей преобразуется в 64 бита. Также используются два различных 16-битных значения цветов RGB (5:6:5) и 2-битная таблица подстановок 4х4. DXT1 не поддерживает альфа-каналы.
DXT3
[править | править код]При использовании формата DXT3 каждый блок из 16 пикселей преобразуется в 128 бит: 64 бита данных альфа-канала и 64 бита данных цвета. Формат DXT3 подходит для изображений и текстур с резким изменением альфа-канала, то есть прозрачности.
DXT5
[править | править код]При использовании формата DXT5 каждый блок из 16 пикселей преобразуется в 128 бит: 64 бита данных альфа-канала и 64 бита данных цвета. Формат DXT5 подходит для изображений и текстур с плавным, постепенным изменением альфа-канала.
Если , то шесть других альфа значения вычисляются таким образом, что , , , , , и .
В противном случае, если , четыре альфа значения рассчитываются таким образом, что , , , и где и .
Сравнение форматов S3TC
[править | править код]Идентификатор кодека FOURCC | Сжатие блоков | Описание | Premultiplied Alpha | Степень сжатия | Поддерживаемые текстуры |
---|---|---|---|---|---|
DXT1 | BC1 | 1-bit Alpha / Opaque | N/A | 6:1(for 24 bit source image) | Simple non-alpha |
DXT2 | BC2 | Explicit alpha | Yes | 4:1 | Sharp alpha |
DXT3 | BC2 | Explicit alpha | No | 4:1 | Sharp alpha |
DXT4 | BC3 | Interpolated alpha | Yes | 4:1 | Gradient alpha |
DXT5 | BC3 | Interpolated alpha | No | 4:1 | Gradient alpha |
Преимущества:
- Размер файлов существенно меньше по сравнению с PNG.
- Неплохое качество, мало наложений (артефакты не слишком заметны).
- Высокая скорость компрессии/декомпрессии изображений.
- Аппаратное ускорение обработки графическими процессорами реализовано в огромном количестве видеоадаптеров. Аппаратная поддержка применяется практически повсеместно на настольных ПК и постепенно охватывает устройства на базе Android.
Недостатки:
- Качество ниже, чем при использовании PNG (поскольку формат S3TC предусматривает сжатие с потерями).
См. также
[править | править код]- Сжатие текстур
- Текстурный атлас
- Альфа-канал
- 3Dc[англ.]
- FXT1[англ.]
- DirectDraw Surface
- PVRTC
- ASTC[англ.]
- ETC1[англ.]
Примечания
[править | править код]- ↑ Божко А. Н. Жук Д. М. Маничев В. Б. Компьютерная графика. МГТУ им. Баумана-2007, 418стр. Дата обращения: 25 июня 2015. Архивировано 26 июня 2015 года.
- ↑ Fixed-rate block-based image compression with inferred pixel values
- ↑ 1990 IEEE Color Cell Compression Paper . Ieeexplore.ieee.org. Дата обращения: 25 января 2012.
- ↑ Сжатие Текстур . Дата обращения: 23 июня 2015. Архивировано 23 июня 2015 года.
- ↑ ISSN:2248-9622 Vol.3,Issue 2,April 2013,pp.1381-1385 3D Graphic Texture Compression And Its Recent Trends. Дата обращения: 25 июня 2015. Архивировано 24 сентября 2015 года.
- ↑ MSDN. Block Compression Formats Supported in Direct3D 11. Дата обращения: 25 июня 2015. Архивировано 1 июля 2015 года.