Тесселяция, или далее о полигоне, Геометрическая обработка - Компьютерная графика и ее аппаратная реализация (обзор видеокарт)

Каждый этап конвейера обозначается какой-то буквой. Официально первый этап конвейера называется тесселяция и обозначается буквой "T". Однако программисты предпочитают называть его триангуляцией. В процессе пыток цельный трехмерный мир разрывается на составляющие, разбирается на мелкие винтики. Говоря сухим и научным языком, в процессе тесселяции поверхности объектов разбиваются на полигоны, а полигоны -- на треугольники (хотя в некоторых случаях эта стадия опускается). Даже в таком относительно простом процессе есть несколько условностей и сложностей. Не все акселераторы одинаково воспринимают результат тесселяции. Некоторым подавай только треугольники с горизонтальной верхней или нижней гранью, а то и с описаниями уравнений ребер. Вопреки всеобщему мнению, что акселератор силен и могуч, тесселяцию он ускорить при всем желании не сможет, операция эта производится программно.

Геометрическая обработка

Стадия "G" называется геометрической обработкой. Раньше этот этап конвейера выполнялся полностью программно, но с появлением геометрических процессоров (GPU) часть геометрических преобразований сняли с плеч центрального процессора. Геометрическая обработка -- общее название для ряда операций, благодаря которым мы видим на экране проецированное реалистичное изображение. Первая из них -- трансформация (transformation). Во время трансформации преобразуются координаты объектов. По-научному, к ним применяются матрицы преобразований. А если по-русски, каждый объект посылают, куда ему надо, поворачивают как надо и масштабируют. До и после преобразования координат выполняется отсечение (clipping). После отсечения выполняется освещение. В процессе освещения решается уравнение освещенности, результатом которого становится определение цвета каждой вершины полигона с учетом всех источников света и свойств материала. К сожалению, еще далек тот день, когда освещение будет полностью рассчитываться силами акселератора. Современные акселераторы умеют это делать, но очень медленно. Разработчикам проще использовать старые добрые карты освещенности (lightmap). Для всех источников света заранее создаются текстуры освещенности, которые накладываются на основные текстуры. Карты освещенности разработчики либо рендерят на рабочих станциях с помощью технологии трассировки лучей (ray tracing), либо рисуют от руки. При таком подходе нечего и говорить о динамичных источниках света, все статично. После освещения координаты сцены преобразуются в координаты экрана. Для убыстрения рендера координаты вершин переводятся из плавающей точки в фиксированную точку (не создавать же отдельный графический сопроцессор).

Похожие статьи




Тесселяция, или далее о полигоне, Геометрическая обработка - Компьютерная графика и ее аппаратная реализация (обзор видеокарт)

Предыдущая | Следующая