|
|
From: Antony Kotov <Antony.Kotov@p5.f1293.n5030.z2.fidonet.org>
Date: Sun, 11 Mar 2001 22:37:00 +0300
Subj: FAQ по *.video.*, или то что Вы хотели узнать, но боялись спросить...
I. Основы технологии синтеза 3D изображений.
1. HSR
а. отбрасывание невидимых граней
б. z-сортировка
в. z-буферизация
2. Mip-mapping
3. Фильтрация
а. линейная
б. билинейная
в. трилинейная
г. анизотропная
4. Мультитекстурирование
5. Моделирование рельефа наложением текстур
а. метод вдавливания
б. использование карт окружающей среды
в. использование программно-изменяемых рельефных карт
6. Управление прозрачностью и цветовой насыщенностью
а. альфа смешение
б. затуманивание
в. морфинг уровней детализации
г. использование маски прозрачности
д. зеркальные блики
7. Способы хранения текстур
а. режим с палитрой
б. S3TC
8. Антиалиасинг
а. краевой
б. полный
9. Интерполяция недостающих цветов
------------------------------------------------------------------------------
1. HSR (Hidden Surface Removal) (это не про VooDooo!!!)
Удаление скрытых поверхностей (из дальнейшей обработки)
а. отбрасывание невидимых граней (culling)
Суть состоит в определении ориентации грани в пространстве и исключении из
дальнейшей обработки граней обращенных в противоположную сторону от наблюдателя
(по углу наклона нормали). При прорисовке нескольких видимых граней попадающих
в один участок экрана используют анализ координаты z:
б. z-сортировка
Наиболее простой метод, нерационально загружает проц. Рисуются все элементы в
порядке убывания координаты z. Последним рисуется самый близкий обьект. Метод
приводит к неправильному отображению пересекающихся обьектов.
в. z-буферизация
При z-буферезации выполняется анализ всех z-координат элементов обьекта. Из
всех точек с одинаковыми координатами (x,y) проецироваться будет только точка с
минимальной координатой z. Для этого и нужен собственно z-буфер. Важный
параметр - разрядность z-буфера (16, 24, 32), определяющий количество градаций
глубины. Также играет роль форма представления чисел. При использовании целых
чисел говорят об "узком" (narrow) z-буфере, при использовании чисел с плавающей
точкой говорят о "широком" (wide) z-буфере.
2. Mip-mapping
Метод использования набора нескольких вариантов текстуры (с разными
разрешениями), поскольку масштабирование растровых текстур вызывает эффект
пикселизации, а постоянное хранение в памяти текстур высокого разрешения не
рационально. Набор текстур с различным уровнем детализации (LOD-Level Of
Detalization) называется MIP-каскадом. Иногда программа содержит только один
вариант текстуры с максимальным разрешением в этом случае акселератор может сам
выполнить масштабирование (Auto MIP-mapping), эта операция выполняется один раз
в самом начале, дальше используется полученый мип-каскад.
Мип-текстурирование приводит к разного рода деффектам, для их устранения
применяют фильтрацию.
3. Фильтрация
Суть фильтрации состоит в масштабировании с сиспользованием различных методов
интерполяции.
а. линейная
Для интерполяции тексела используется тексел текстуры ближайшего уровня (LOD)
б. билинейная
При интерполяции используется 4 ближайших текселя текстуры, однако при его
применении остаются полосы MIP-текстурирования и изображение немного
размывается.
в. трилинейная
Каждый тексель вычисляется как усредненный результат билинейной фильтрации по
двум соседним уровням. Наиболее совершенный метод, требует двух блоков по
обработке текстур. При наличии только одного блока, может быть выполнена
программная эмуляция.
г. анизотрапная
Используется при прорисовке сильно наклоненных к наблюдателю граней, когда
тексель перестают быть квадратным и описывается элипсом. Такая фильтрация
значительно сложнее трилинейной.
4. Мультитекстурирование
В большинстве случаев значение пиксела кадрового буфера становится известным
только после наложения на него нескольких текстур. Для аппаратной реализации
необходимо два блока обработки текстур.
5. Моделирование рельефа наложением текстур
Взгляните на таскбар.
а. метод вдавливания
Наиболее простой метод. Применяется рельефная карта, или карта высот, которая
вследствии расчета заменяется картой градиентов.
Недостатки:
- только монохромный источник света
- качество сильно зависит от величины сдвига, вычисляемого по карте высот
- метод не позволяет реализовать множество реальных эффектов
б. использование карт окружающей среды
Пионерами в разработке данного метода являются Matrox (G200, G400) и 3Dlabs
(Permedia3). Исползуется две карты:
- карта уклонов, рассчитывается на основе карт высот
- карта окружающей среды
Позволяет реализовать например - окалину на выгнутом стальном листе, освещонном
близко рассположенным источником света (неравномерная освещенность).
По сравнению с "а." просто день и ночь.
в. использование программно-изменяемых рельефных карт
Позволяет отображать:
- отражение от водной поверхности, имитация волн
- эффект "кривого зеркала"
- дрожание горячего воздуха над землей
Это ваще супер...
6. Управление прозрачностью и цветовой насыщенностью
а. альфа смешение
(alpha pixel blending) - смешение цветов пикселов с учетом коэффициента `а`,
учитывающим степень прозрачности (Object Transparency).
Цвета пикселов,участвующих в смешении определяются не тремя, а четырьмя
компонентами - R,G,B,a. Значение `a`[1..0], с уменьшением прозрачности.
Исрользуется для создания затуманивания, полупрозрачности, наложении текстур...
В Hi Color используется RGBa палитра - 5:5:5:1 (16 бит), что естественно может
реализовать только простые эффекты прозрачности.
б. затуманивание
(Fogging) что тут можно сказать? - бывает двух видов табличный и полигонный.
Для создания полигонного тумана используют одно значения альфа для всей грани
затуманивания. Табличный использует таблицу с альфами для каждого пикселя,
более качественный и соответственно более сложный.
в. морфинг уровней детализации
Используется для плавного появления обьектов "из ниоткуда".
г. использование маски прозрачности
На сколько я понял - это почти тоже самое, только названо по другому, за счет
использования не альфа буфера, а маски прозрачности (Chroma Keying).
д. зеркальные блики
В процессе наложения текстур цвета их элементов изменяются таким образом, что
создается эффект зеркала (аппаратная поддержка обзывается - Specular
Highlights).
7. Способы хранения текстур
Самый простой способ - хранить как в кадровом буфере, в формате RGB. Что
далеко не экономно поскольку в режиме High Color хранение цвета _одного_
пикселя занимает 16бит(5:6:5), а в режиме True Color уже 32бита.
а. режим с палитрой
Для снижения требований к памяти разработчики аппаратных средств предложили
использовать не всю палитру, а только часть используемую в данной текстуре. Так
например можно использовать 2-, 4- ,16- цветные текстуры, для более
качественных можно использовать 256 цветов. Цвет каждого тексела определяется
по таблице - CLUT (Color Look-Up Table - таблице поиска цветов). Таблицы для
2-, 4-, 16-, 256- цветных текстур называются CLUT-1, -2, -4 и -8
соответственно. Эти таблицы задают соответствие между условным номером цвета
текселаи фактическим RGB. Такой режим косвенного задания цвета называется
режимом с палитрой (pallrtized), а текстуры - палетизированными или
оптимизированными.
б. S3TC
Технология сжатия по методу S3TC основана на свойстве человеческого зрения:
мелкие детали на изображении различаются только по градации яркости.
Субьективно разрешающая способность изображения оценивается по числу мелких
деталей. Иными словами - качество изображения определяется в большей степени
разрешением сигнала яркости, чем цветности. Таким образом, поскольку идет
плавное изменение цвета, цвета соседних текселов отличаются не сильно
(исключение - цветовая граница), то в пределах небольшого участка изображения
можно опредеить один базовый цвет, а для каждого текселя задать лишь отличия.
Исходная текстура разбивается на блоки 4х4 текселя. Для хранения цветов этих 16
текселей выделяется 64 бита (в HiColor). Первые 32 бита отводятся для хранения
матрицы цветов: 16бит основной цвет + 3 поправки на дополнительные цвета (16
бит). Один из этих дополнительных цветов используется для простого
моделирования эффекта прозрачности. Далее каждому текселю матрицы(4х4 если кто
забыл) присваивается один из этих 4 цветов (2бита), что займет 4х4х2=32бита.
Итак, вместо 16х16=256 байт цвета RGB, необходимо 64 байта для S3TC, т.е. в 4
раза меньше. А при использовании 32битного цвета сжатие достигнет 8раз!
Общепризнано, что S3TC обеспечивает наилучшее качество изображения при
достаточно высокой степени сжатия. Помимо этого есть еще одно важное
преимущество - очень простой механизм декомпрессии.
8. Антиалиасинг
Алиасинг - зазубренность наклонных линий, инородный рисунок(муар). Для
устранения этого эффекта используют антиалиасинг (anti-aliasing).
а. краевой
Краевой АА заключается в усреднении цвета пикселов на краях грани (ребрах) на
основе взвешенного суммирования цветов прилегающих граней.Считается, что каждая
точка на краю грани имеет фиксированною ненулевую площадь. В зависимости от
того, какую часть этой площади перекрывают прилегающие грани, определяются
весовые коэффициенты, которые прибавляются к цвету краевого пиксела.
Реализация относительно проста, но в результате применения между смежными
гранями появляется небольшой просвет и внутренние ребра окрашиваются в цвет
фона. Этот деффект называется "bleeding" - "кровотечение".
б. полный
Full-Screen Anti-Aliasing (FSAA). Также называют - субпиксельным. Идея состоит
в том, что каждому пикселу ставится в соответствие совокупность виртуальных
субпикселов, при этом виртуальное разрешение становится выше. Антиалиасингу
подвергаются виртуальные пикселы, после чего методом интерполяции обьединяются
в пикселы реального изображения
Разбиение на субпикселы двумя путями:
- на стадии рендеринга, путем растрирования изображения с заведомо более
высоким, виртуальным разрешением, чем требуется. По окончании рендеринга
выполняется интерполяция.
- по окончании рендеринга, путем разбиения исходного пиксела на части.
Реализация FSAA требует значительных вычислительных затрат, кроме того,
типового размера кадрового буфера недостаточно для выполнения рендеринга всего
обьекта с виртуальным разрешением. Поэтому изменяют архитектуру локальной
памяти, используют тайловую архитектуру, в соответствии с которой не весь
обьект конструируется в кадровом буфере, а последовательно прорисовываются его
фрагменты - тайлы (tile).
9. Интерполяция недостающих цветов
Если текущий режим работы видеоадаптера не позволяет отобразить требуемое
количество цветов (памяти мало), используется метод интерполяции цветов
(Color Dithering), заключающийся в получении недостающих цветов за счет
смешения имеющихся. Суть метода подобна идее, положенной в основу работу
цветной ЭЛТ. Очевидно, что при этом немного ухудшается разрешение изображения.
------------------------------------------------------------------------------
Уфф!! неужели все? Вот как человеки без сканера мучаются.
В общем как обычно - "Данный документ...."
+ обладает правами копилевт.
© faqs.org.ru