Лишь о 3D мечтая… часть I

Начинающие при выборе комплектующих сталкиваются с проблемой "купи то, не знаю что", т.е. много комплектующих на рынке хороших и разных, дешевых и не очень, а чему отдать предпочтение, не ясно. Ситуация, понятно, не из приятных. Пытаясь найти баланс скорости, качества и цены, в мучениях совершают они свой выбор, и довольно часто выбор не лучший. В наших силах подарить таким мученикам немного своего тепла, помочь сделать если не лучший, то более правильный выбор. Руководствуясь такой вот мыслью, посетившей меня уже достаточно давно, я решил написать самый полный обзор, посвященный видеокартам, начиная с устройств класса дешевле некуда и заканчивая самыми-самыми. Связавшись с редактором и получив добро, я принялся за работу.

Первоначально данная статья задумывалась как просто очень широкомасштабное тестирование видеокарт. Однако по многочисленным просьбам трудящихся (в лице моих знакомых геймеров и увлеченных компьютерщиков), которые стали поступать еще до написания статьи, я решил уделить внимание и базовым знаниям, которые будут необходимы для понимания того, о чем мы будем говорить в дальнейшем. Итак, сегодня нам предстоит разобраться с терминологией.

Терминов очень много, и вполне может быть, что здесь вы не найдете ответа на все свои вопросы, тогда пишите мне, и, быть может, мы найдем ответ на ваш вопрос.

Толкования терминов разыскивались по всему Интернету. Основным источником являлся словарь 3D терминов на iXBT Hardware ( http://ixbt.stack.net/video/3dterms.html ), как наиболее полный. Однако далеко не все, о чем вы здесь прочтете, взято оттуда. Многих терминов не было и там. Здесь помог "технический бред" на Формозе ( http://www.formoza.ru/tech_bred/dictionary/3D_graphics/content_3d.html ). Много полезного было найдено на 3D News ( http://www.3dnews.ru/hardware/glossary.htm ). Список посещенных мною сайтов по этой теме велик, и перечислить всех нет возможности, но основные источники указаны.

Кстати, очень многие посещенные мною сайты дублируют друг друга, и установить, кому на что какие права принадлежат, невозможно. Поэтому просто изучим то, что есть.

2D Graphics
(двумерная графика) - графика, действие в которой происходит в одной плоскости. Например, пользовательский интерфейс.

2D-Resolution
(2D-разрешение) - это то разрешение, которое установлено, к примеру, для того же пользовательского интерфейса (см. выше). А пример такого интерфейса - рабочий стол Windows.

3D Graphics
(трехмерная графика) - визуальное отображение трехмерной сцены или объекта.

3D-Resolution
(3D-разрешение). Для представления трехмерной графики на двумерном устройстве (дисплей) применяют рендеринг. 3D-разрешение - это то разрешение, в котором 3D-ускоритель может выполнять рендеринг трехмерной сцены.

3D API
позволяет разработчику использовать все возможности 3D-ускорителей. 3D API делятся на стандартные и собственные. Наиболее известные стандартные 3D API - OpenGL и Direct3D, специализированные 3D API - Glide (3Dfx), MeTaL (S3), RRedline (от Rendition), PowerSGL (от Videologic). Использование 3D API предполагает использование драйверов для этого API.

3D Pipeline
(3D-конвейер). Процесс построения 3D-изображения можно разделить на три последовательных этапа. На первом этапе объект преобразуется в мозаичную модель, т.е. происходит его разделение на множество многоугольников (полигонов). Следующий этап включает в себя геометрические преобразования и установки освещения. Наконец, заключительный этап, так называемый рендеринг, который является наиболее важным для качества 3D-изображения, создает двумерное изображение из полученных на предыдущих этапах многоугольников.

Alpha -
коэффициент прозрачности. В описание цвета RGB может входить специальный канал, называемый альфа-каналом, который отвечает за прозрачность данного цвета. Таким образом, цвет описывается как ARGB. Канал прозрачности упрощает моделирование прозрачных поверхностей и позволяет в целом повысить качество изображения.

Alpha blending
(альфа-смешение). Реальный мир состоит из прозрачных, полупрозрачных и непрозрачных объектов. Alpha blending - способ передачи информации о прозрачности полупрозрачным объектам. В зависимосте от величины коэффициента Alpha разные части объекта приобретают различную степень прозрачности. Как правило, смешивание цветов перекрываемого объекта и полупрозрачного объекта (с альфа-прозрачностью) происходит по следующей формуле: (alpha) * (значение цвета объекта с прозрачностью) + (alpha-1) * (значение цвета покрываемого объекта) при 0<=alpha<=1. В результате цвет точки является комбинацией цветов переднего и заднего плана.

Alpha Buffer
(альфа-буфер). Дополнительный буфер, в котором содержится информация о прозрачности; таким образом, пиксел имеет четырехзначное представление (RGBA), и в 32-разрядном буфере содержится 24 бита информации о цвете, т.е. 8 бит на каждый из цветов (красный, зеленый и синий) и 8 бит на значение alpha.

Ambient
- световой источник, который светит одинаково во всех направлениях. Все объекты освещаются с равной интенсивностью.

Anisotropic filtering
(анизотропная фильтрация). Самый совершенный тип фильтрации, когда фильтрация отличается по различным направления. Анизотропная фильтрация работает с пикселами как с эллипсами и для получения одного пиксела обрабатывает большое количество текселов (до 32). Анизотропная фильтрация является более сложным фильтром, чем трилинейная фильтрация.

Anti-aliasing
(антиалиасинг, сглаживание). Способ устранения пиксилизации изображения. Алгоритм заключается в усреднении цветов соседних пикселей готового изображения, однако принципы работы могут отличаться (например, выполнение рендеринга в высоком разрешении с последующим его понижением). Наиболее часто используемая техника, для создания плавного перехода от цвета линии или края к цвету фона. В некоторых случаях результатом является смазывание (blurring) краев.

Atmospheric Effect.
Специальные эффекты, например туман, позволяющие улучшить рендеринг изображений реального мира.

Back buffer
(вторичный буфер). Область памяти, в которой рассчитываются объекты трехмерной сцены. Вывод изображения на экран осуществляется через Front Buffer (первичный буфер). Обычно процесс копирования содержимого вторичного буфера синхронизируется с обратным ходом луча ЭЛТ монитора. Таким образом достигается плавная смена кадров.

Bitmap.
Способ кодирования изображения пиксел за пикселом.

Bilinear Filtering
(билинейная фильтрация). Метод устранения искажений изображения (устранение "блочности" текстур при их увеличении). Для определения конечного цвета пиксела используются усредненные значения цветов соседних текселей - цвета текселей интерполируются (как правило, используются значения 4 ближних текселей).

BitBLT = Bit Block Transfer
(БитБлет). Наиболее важная функция для ускорения графики в средах, использующих оконный интерфейс GUI (Graphic User Interface). BitBLT фактически означает просто перемещение блока данных из одного места в другое, которое производится с учетом требований графической памяти. Например, эта функция используется при каждом перемещении окна; таким образом, BitBLT - просто передача блока пикселов. Более сложное использование этой функции связано с ситуациями, требующими некоторого преобразования исходных данных, например, когда каждый "одноцветный" бит исходных данных расширяется до "цветного" с использованием цветовых палитр переднего или заднего плана перед тем, как он будет выведен на экран.

Blending
(блендинг). Комбинирование двух или более объектов с использованием некоторого базиса пикселов.

Buffer
(буфер). Область временного хранения данных, часто используется для компенсации разницы в скорости работы различных компонентов системы. Часто в качестве буфера используется дополнительная память, зарезервированная для временного хранения данных, которые передаются между центральным процессором системы и периферией. Особенно полезен буфер для компенсации разницы в уровнях интенсивности потоков данных, для обеспечения места размещения данных, когда процессы асинхронны (например, данные, переданные в контроллер видеоплаты, должны дождаться, когда графический процессор закончит выполнение текущей операции и считает новую порцию информации), и для сохранения данных в неизменном виде (как буфер для видеокадра). Некоторые буферы являются частью адресуемой памяти центрального процессора системы, другие буферы памяти являются частью периферийных устройств.

Bump Texture Mapping.
Продвинутая методика моделирования рельефных поверхностей. В отличие от texture mapping технология bump mapping подразумевает использование как минимум еще одной (обычно в оттенках серого) текстуры, которая служит в качестве карты для рельефа, что должен проявиться при визуализации. Эта технология разработана для придания дополнительной детализации и объемности объектам без изменения их геометрических размеров. В случае, если bump map будет не статичной, а анимированной, то можно достичь эффектов визуального изменения геометрии объекта во времени.

Chroma Keying
(текстурная прозрачность). Возможность определять основной цвет в карте текстур и делать его прозрачным в процессе текстурирования изображения. В связи с тем, что не все объекты легко моделируются с использованием многоугольников, сhroma keying используется при включении в сцену сложных объектов в виде карт текстур.

Color
(цвет). Это индивидуальные компоненты белого света, по-разному воспринимаемые человеческим глазом. Цветные мониторы используют три основных компонента цвета, на которые реагирует человеческий глаз: красный, зеленый и голубой. Цвет, который в итоге отображается на экране, образуется в результате смешения этих трех основных цветов.

Colored lighting
(цветовое освещение). Освещение источниками разного цвета, при этом происходит смешение цвета.

Computer graphics
(компьютерная графика). Общее направление, описывающее создание или манипуляцию графическими изображениями и изобразительными данными с помощью компьютера.

Depth Cueing.
Уменьшение интенсивности освещения текстур при удалении объекта от точки наблюдения.

Display lists
(дисплейные списки). От обычного потока команд отличаются так же, как компилятор от интерпретатора. В идеальном случае драйвер видеокарты должен уметь преобразовывать команды интерфейса в родной для графического чипа вид, а храниться эта программа должна в локальной памяти карты. Оттуда микрокод может быть быстро выполнен графическим процессором.

Directional.
Световой источник, который освещает одинаково все объекты сцены, как бы из бесконечности в определенном направлении. Обычно используется для создания удаленных световых источников (таких как Солнце).

Dithering
(дизеринг). Способ получения изображения 24-битного качества с использованием 8- или 16-битных буферов. Два цвета используются для моделирования третьего, и обеспечиваются плавные переходы между элементами изображения.

Double Buffering
(двойная буферизация). Метод использования двух буферов для получения изображения: один - для отображения картинки, другой - для рендеринга. В то время как отображается содержимое одного буфера, в другом происходит рендеринг. Когда очередной кадр обработан, буфера переключаются (меняются местами). Таким образом наблюдатель все время видит отличную картинку. Возможность использования двойной буферизации зависит от выбранного видеорежима и объема свободной памяти.

Environment Map-Bump Mapping.
Технология, которая является дальнейшим развитием Bump Mapping. В этом случае, помимо базовой текстуры объекта, применяется еще две текстуры:

1. Текстура, являющаяся отрендеренным вариантом трехмерной сцены вокруг объекта (environment map)

2. Текстура - карта рельефа (bump map). Самостоятельно и совместно с Procedural Texturing данная технология позволяет получить такие натуральные эффекты, как отражение, отражение в кривом зеркале, дрожание поверхностей, искажение изображения, вызываемое водой и теплым воздухом, трансформация искажений по шумовым алгоритмам, имитация туч на небе и др.

Edge anti-aliasing
(краевой антиалиасинг). Механизм борьбы с лестничным эффектом. Краевой антиалиасинг сглаживает края полигонов.

Face cutting -
удаление задних/передних граней. Можно существенно повысить скорость, исключив из расчетов задние части поверхности. Так можно поступить, если объект непрозрачный и его заднюю часть все равно не видно.

Flat Shading
(Flat). Метод затенения, называемый также постоянным затенением. Поверхность объекта, построенного с использованием этого метода, получается наиболее низкого качества, и изображение выглядит как бы поделенным на блоки. Flat Shading дает худший результат, чем, допустим, метод Гуро, в то же время и работает значительно быстрее. Все выглядит граненым.

Fog.
Вид blending для объекта с фиксированными цветом и пикселами, удаляющимися от точки наблюдения.

Fogging
(затуманивание). Образуется за счет комбинирования смешанных компьютерных цветовых пикселов с цветом тумана (fog) под управлением функции, определяющей глубину затуманивания.

FPS, frames per second
(частота смены кадров). Чтобы оценить быстродействие системы трехмерной визуализации, достаточно запустить приложение, динамически создающее трехмерные сцены, и подсчитать число кадров в секунду, которое система способна отобразить. Однако единого, достаточно авторитетного теста такого рода еще не создано. Большинство имеющихся тестов основаны на фрагментах трехмерных игр и проверяют поведение графической карты на весьма ограниченном наборе функций. Например, известная фирма Ziff Davis выпустила тестовый пакет 3D Winbench'9x.

Frame buffer
(буфер кадра). Специально отведенная область памяти компьютера или отдельной платы для временного хранения данных о пикселах, требуемых для отображения одного кадра (полного изображения) на экране монитора. Емкость буфера кадра определяется количеством битов, задействованных для определения каждого пиксела, который должен отображать изменяемую область или количество цветов и их интенсивность на экране.

Front buffer
(первичный буфер). Область памяти, из которой происходит вывод кадра на экран (расчет производится в back buffer).

Gamma
(гамма). Характеристики дисплеев, использующих фосфор, нелинейны. Небольшое изменение напряжения, когда общий уровень напряжения низок, приводит к изменению уровня яркости, однако такое же небольшое изменение напряжения не приведет к такому же заметному изменению яркости в случае, если общее напряжение велико. Этот эффект или, точнее, разница между тем, что должно быть, и тем, что реально измерено, называется гаммой.

Gamma Correction.
Перед выводом на дисплей линейные данные RGB должны быть обработаны (скорректированы) для компенсации гаммы (нелинейной составляющей) дисплея.

Gouraud Shading
(Smooth shading, затенение методом Гуро, плавное затенение), один из наиболее популярных алгоритмов затенения, который обеспечивает прорисовку плавных теней вокруг изображаемого обекта, что позволяет изображать трехмерные объекты на плоском экране. Метод назван по имени его разработчика, француза Генри Гуро. Этот метод уменьшает "блочность" изображения (смотри Flat Shading) и используется для отображения металлических и пластиковых поверхностей.

В результате действия этого алгоритма должен создаваться эффект, заставляющий глаза зрителя экстраполировать информацию о глубине и кривизне поверхности изображаемого объекта. Блики выглядят нереалистично.

Hidden Surface Removal (удаление скрытых поверхностей). Метод определения видимых для наблюдателя поверхностей. Позволяет не отображать невидимые из данной точки поверхности объекта.
Продолжение следует
Подготовил Антон Клыга


Компьютерная газета. Статья была опубликована в номере 21 за 2000 год в рубрике hard :: video

©1997-2024 Компьютерная газета