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

Предоплата всего

Подписываем
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Предоплата всего
Подписываем
Шлем виртуальной реальности устройство, позволяющее частично погрузиться в мир виртуальной реальности, создающее зрительный и акустический эффект присутствия в заданном управляющим устройством (компьютером) пространстве. Представляет собой устройство, надевающееся на голову, снабженное видеоэкраном и стерео- или квадрофонической акустической системой. Название «шлем» достаточно условное: современные модели гораздо больше похожи на очки, чем на шлем.
Шлем создаёт объёмное изображение, подавая две разные картинки каждому глазу. Кроме того, шлем может содержать гироскопический или инфракрасный датчик положения головы.
На данный момент шлемы виртуальной реальности сильно дешевеют и в скором времени возможно превратятся в такой же необходимый атрибут компьютерных игр, как джойстик или мышь. На рынке уже представлено несколько доступных моделей видеоочков по цене, не превышающей стоимость хорошего руля для гоночных компьютерных игр. В основных недостатках бюджетных моделей отсутствие встроенного трекера для отслеживания позиции головы, небольшое разрешение видеоэкранов. Некоторые видеоочки имеют только один видеоэкран и не способны создавать трехмерное изображение.
Перчатки для «виртуальной реальности», оснащенные целым набором сенсоров, широко применяются для получения информации о движении рук пользователя. Эти данные используются или могут использоваться для самых различных целей, начиная с передовых компьютерных игр и экспериментов с самой виртуальной реальностью, до медицинских исследований.
Сами по себе перчатки для виртуальной реальности отлично бы подошли для замены традиционным компьютерным устройствам управления: клавиатуры и мыши. Однако большинство из них явно не по карману массовому покупателю.
В последнем случае сторонним разработчикам, или даже самим пользователям, знакомым с программированием, предлагается самостоятельно адаптировать систему для работы с приложениями. Это включает в себя обработку данных о жестах, настроить точность работы перчаток в зависимости от конкретных нужд и пр. В общей сложности программное обеспечение может запоминать до сотни жестов вполне достаточно практически для любого случая.
Конструкция перчаток включает в себя пять акселерометров, размещенных соответственно на пяти пальцах. Данные с датчиков передаются на плату управления, которая в свою очередь соединяется посредством интерфейса USB с персональным компьютером. В качестве опции предлагается дополнительный набор датчиков, которые предлагается нацепить на локоть и плечо пользователя в этом случае компьютером можно управлять, перемещая руку в пространстве.
Говоря об областях применения, на ум в первую очередь приходит область развлечений. Однако перчатки можно использовать и для более серьезных целей. Например, управления роботами разработка велась при непосредственной поддержке Министерства обороны США. Среди других областей применения: спортивные тренажеры и медицина.
Цветовая модель - это способ представления цвета, посредствам разложения на простые составляющие.
Цветовые модели могут быть аппаратно-зависимыми (их пока большинство, RGB и CMYK в их числе) и аппаратнонезависимыми (модель Lab). В большинстве «современных» визуализационных пакетов (например, в Photoshop) можно преобразовывать изображение из одной цветовой модели в другую.
В цветовой модели (пространстве) каждому цвету можно поставить в соответствие строго определенную точку. В этом случае цветовая модель это просто упрощенное геометрическое представление, основанное на системе координатных осей и принятого масштаба.
По принципу действия перечисленные цветовые модели можно условно разить на три класса:
- аддитивные
- субтрактивные
- перцепционные (психологические)
Аддитивная модель описывает излучаемый свет. Аддитивный цвет получается путем соединения лучей света разных цветов. В основе этого явления лежит тот факт, что большинство цветов видимого спектра могут быть получены путем смешивания в различных пропорциях трех основных цветовых компонент. Этими компонентами, которые в теории цвета иногда называются первичными цветами, являются красный (Red), зеленый (Green) и синий (Вlue) цвета. При попарном смешивании первичных цветов образуются вторичные цвета: голубой (Сyan), пурпурный (Magenta) и желтый (Yellow). Следует отметить, что первичные и вторичные цвета относятся к базовым цветам.
Базовыми цветами называют цвета, с помощью которых можно получить практически весь спектр видимых цветов.
Изменяя интенсивность свечения цветных точек, можно создать большое многообразие оттенков. Таким образом, цвет получается путем сложения первичных цветов.
Цветовая модель RGB
Это одна из наиболее распространенных и часто используемых моделей. Она применяется в приборах, излучающих свет, таких, например, как мониторы, прожекторы, фильтры и другие подобные устройства.
Данная цветовая модель базируется на трех основных цветах: Red красном, Green зеленом и Blue синем. Каждая из вышеперечисленных составляющих может варьироваться в пределах от 0 до 255, образовывая разные цвета и обеспечивая, таким образом, доступ ко всем 16 миллионам. При работе с графическим редактором можно выбирать цвет, полагаясь не только на тот, что мы видим, но при необходимости указывать и цифровое значение, тем самым иногда, особенно при цветокоррекции, контролируя процесс работы.
Поскольку в модели используются три независимых значения, ее можно представить в виде трехмерной системе координат. Каждая координата отражает вклад соответствующей в конкретный цвет в диапазоне от нуля до максимального значения. В результате получается некий куб, внутри которого и находится все цвета, образуя цветовое пространство модели RGB.
Данная цветовая модель считается аддитивной, то есть при увеличении яркости отдельных составляющих будет увеличиваться и яркость результирующего цвета: если смешать все три цвета с максимальной интенсивностью, то результатом будет белый цвет; напротив, при отсутствии всех цветов получается черный. При наложении отдельных каналов результат получается не совсем такой, как если бы смешивались краски, поэтому для того, чтобы внести ясность, остановимся на каждом из сочетаний подробнее. При смешении красного и зеленого результатом будет желтый. Зеленого и синего голубой, что ближе результату, получаемому на палитре. Синего и красного фиолетовый, причем при изменении пропорций смешиваемых цветов можно получать как розовые, так и пурпурные оттенки.
Несомненными достоинствами данного режима является то, что он позволяет работать со всеми 16 миллионами цветов, а недостаток состоит в том, что при выводе изображения на печать часть из этих цветов теряется, в основном самые яркие и насыщенные, также возникает проблема с синими цветами.
Данный вид модели описывает отражаемые цвета. Цвета образуются путем вычитания из белого цветов основных аддитивных цветов модели RGB.
Цвета, использующие белый свет, вычитая из него определенные участки спектра называются субтрактивными. Основные цвета этой модели: голубой (белый минус красный), фуксин (в некоторых книгах его называют пурпурным) (белый минус зеленый) и желтый (белый минус синий). Эти цвета являются полиграфической триадой и могут быть легко воспроизведены полиграфическими машинами. При смешение двух субтрактивных цветов результат затемняется (в модели RGB было наоборот). При нулевом значении всех компонент образуется белый цвет (белая бумага). Эта модель представляет отраженный цвет, и ее называют моделью субтрактивных основных цветов. Данная модель является основной для полиграфии и также является аппаратнозависимой.
Цветовая модель CMYK
Это еще одна из наиболее часто используемых цветовых моделей, нашедших широкое применение. Она, в отличие от аддитивной RGB, является субтрактивной моделью.
Модель CMYK (Cyan Magenta Yellow Key, причем Key означает черный цвет) является дальнейшим улучшением модели CMY и уже четырехканальной. Поскольку реальные типографские краски имеют примеси, их цвет не совпадает в точности с теоретически рассчитанным голубым, желтым и пурпурным. Особенно трудно получить из этих красок черный цвет. Поэтому в модели CMYK к триаде добавляют черный цвет. Почемуто в названии цветовой модели черный цвет зашифрован как K (от слова Key ключ). Модель CMYK является «эмпирической», в отличие от теоретических моделей CMY и RGB. Модель является аппаратнозависимой.
Основные цвета в субтрактивной модели отличаются от цветов аддитивной. Cyan голубой, Magenta пурпурный, Yellow желтый. Так как при смешении всех вышеперечисленных цветов идеального черного не получится, то вводится еще один дополнительный цвет черный, который позволяет добиваться большей глубины и используется при печати прочих черных (как, например, обычный текст) объектов.
Цвета в рассматриваемой цветовой модели были выбраны такими не случайно, а изза того, что голубой поглощает лишь красный, пурпурный зеленый, желтый синий.
В отличие от аддитивной модели, где отсутствие цветовых составляющих образует черный цвет, в субтрактивной все наоборот: если нет отдельных компонентов, то цвет белый, если они все присутствуют, то образуется грязнокоричневый, который делается более темным при добавлении черной краски, которая используется для затемнения и других получаемых цветов. При смешивании отдельных цветовых составляющих можно получить следующие результаты:
Голубой + Пурпурный = Синий с оттенком фиолетового, который можно усилить, изменив пропорции смешиваемых цветов.
Пурпурный + Желтый = Красный. В зависимости от соотношения входящих в него составляющих он может быть преобразован в оранжевый или розовый.
Желтый + Голубой = Зеленый, который может быть преобразован при использовании тех же первичных цветов как в салатовый, так и в изумрудный.
Следует помнить, что если вы готовите изображение к печати, то следует всетаки работать с CMYK, потому что в противном случае то, что вы увидите на мониторе, и то, что получите на бумаге, будет отличаться настолько сильно, что вся работа может пойти насмарку.
Модель CMYK это субтрактивная цветовая модель, которая описывает реальные красители, используемые в полиграфическом производстве.
Для устранения аппаратной зависимости был разработан ряд перцепционных моделей. В их основу заложено раздельное определение яркости и цветности. Такой подход обеспечивает ряд преимуществ:
− позволяет обращаться с цветом на интуитивно понятном уровне;
− значительно упрощает проблему согласования цветов, поскольку после установки значения яркости можно заняться настройкой цвета.
Прототипом всех цветовых моделей, использующих концепцию разделения яркости и цветности, является НSVмодель. К другим подобным системам относятся НSI, НSB, НSL и YUV. Общим для них является то, что цвет задается не в виде смеси трех основных цветов красного, синего и зеленого, а определяется путем указания двух компонентов: цветности (цветового тона и насыщенности) и яркости.
HSV/ HSB
HSV цветовая модель, содержащая компоненты тона (цвет, как синий или красный), насыщенности (интенсивность цвета) и яркости.
Модель RGB очень подходит для компьютерных экранов, но она не позволяет описать всё, что мы видим: светло-зелёный, бледно-розовый, ярко-красный и т.д. Модель HSV принимает это во внимание. Обе модели не полностью независимы друг от друга. Вы можете это заметить в инструменте «Выбор цвета»; когда вы изменяете цвет в одной модели, значение цвета в другой модели также меняется.
LAB
Модель Lab является аппаратно-независимой моделью. Эта модель аппаратно независима, поскольку описывает цвета так, как они воспринимаются человеком, точнее "стандартным наблюдателем ". Ее приняли за стандарт. Цветовая модель Lab, использующаяся в компьютерной графике, является производной от цветовой модели XYZ. Название она получила от своих базовых компонентов L, a и b. Компонент L несет информацию о яркостях изображения, а компоненты а и b - о его цветах (т. е. a и b - хроматические компоненты). Компонент а изменяется от зеленого до красного, а b - от синего до желтого. Яркость в этой модели отделена от цвета, что удобно для регулирования контраста, резкости и т.д. Однако, будучи абстрактной и сильно математизированной.
Поскольку все цветовые модели являются математическими, они легко конвертируются одна в другую по простым формулам. Такие конверторы встроены во все "приличные" графические программы.
Система координат комплекс определений, реализующий метод координат, то есть способ определять положение точки или тела с помощью чисел или других символов. Совокупность чисел, определяющих положение конкретной точки, называется координатами этой точки.
Положение любой точки P в пространстве (в частности, на плоскости) может быть определено при помощи той или иной системы координат. Числа, определяющие положение точки, называются координатами этой точки.
Наиболее употребительные координатные системы - декартовы прямоугольные.
Кроме прямоугольных систем координат существуют косоугольные системы. Т.к. я не встречал примеров применения косоугольных систем, то я их не рассматриваю. Прямоугольные и косоугольные координатные системы объединяются под названием декартовых систем координат.
Декартовы косоугольные (афинные) координаты
Иногда на плоскости применяют полярные системы координат, а в пространстве - цилиндрические или сферические системы координат.
Обобщением всех перечисленных систем координат являются криволинейные системы координат.
Рис. 1: Классификация систем координат
Декартовы прямоугольные системы координат
Прямоугольная система координат на плоскости образуется двумя взаимно перпендикулярными осями координат X'X и Y'Y. Оси координат пересекаются в точке O, которая называется началом координат, на каждой оси выбрано положительное направление. В правосторонней системе координат положительное направление осей выбирают так, чтобы при направлении оси Y'Y вверх, ось X'X смотрела направо.
Четыре угла (I, II, III, IV), образованные осями координат X'X и Y'Y, называются координатными углами или квадрантами (см. рис. 1).
Положение точки A на плоскости определяется двумя координатами x и y. Координата x равна длине отрезка OB, координата y длине отрезка OC в выбранных единицах измерения. Отрезки OB и OC определяются линиями, проведёнными из точки A параллельно осям Y'Y и X'X соответственно.
Координата x называется абсциссой точки A, координата y ординатой точки A. Записывают так: .
Если точка A лежит в координатном углу I, то точка A имеет положительные абсциссу и ординату. Если точка A лежит в координатном углу II, то точка A имеет отрицательную абсциссу и положительную ординату. Если точка A лежит в координатном углу III, то точка A имеет отрицательные абсциссу и ординату. Если точка A лежит в координатном углу IV, то точка A имеет положительную абсциссу и отрицательную ординату.
Рис. 2: Декартова плоскость
Декартовыми прямоугольными координатами точки P на плоскости называются взятые с определенным знаком расстояния (выраженные в единицах масштаба) этой точки до двух взаимно перпендикулярных прямых - осей координат или, что то же, проекции радиус-вектора r точки P на две взаимно перпендикулярные координатные оси.
Прямоугольная система координат в пространстве образуется тремя взаимно перпендикулярными осями координат OX, OY и OZ. Оси координат пересекаются в точке O, которая называется началом координат, на каждой оси выбрано положительное направление, указанное стрелками, и единица измерения отрезков на осях. Единицы измерения обычно одинаковы для всех осей (что не является обязательным). OX ось абсцисс, OY ось ординат, OZ ось аппликат.
Если большой палец правой руки принять за направление X, указательный за направление Y, а средний за направление Z, то образуется правая система координат.
Аналогичными пальцами левой руки образуется левая система координат.
Иначе говоря, положительное направление осей выбирают так, чтобы при повороте оси OX против часовой стрелки на 90° её положительное направление совпало с положительным направлением оси OY, если этот поворот наблюдать со стороны положительного направления оси OZ. Правую и левую системы координат невозможно совместить так, чтобы совпали соответствующие оси.
Положение точки A в пространстве определяется тремя координатами x, y и z. Координата x равна длине отрезка OB, координата y длине отрезка OC, координата z длине отрезка OD в выбранных единицах измерения. Отрезки OB, OC и OD определяются плоскостями, проведёнными из точки A параллельно плоскостям YOZ, XOZ и XOY соответственно. Координата x называется абсциссой точки A, координата y ординатой точки A, координата z аппликатой точки A. Записывают так: .
В зависимости от взаимного расположения положительных направлений координатных осей возможны левая и правая координатные системы.
Рис. 3а: Левые координатные системы
Рис. 3б: Правые координатные системы
Как правило, пользуются правой координатной системой. Положительные направления выбирают: на оси Ox - на наблюдателя; на оси Oy - вправо; на оси Oz - вверх.
Полярные системы координат
Рис. 4: Полярные
системы координат
Полярная система координат система координат, ставящая в соответствие каждой точке на плоскости пару чисел .
Основными понятиями этой системы являются точка отсчёта (полюс) и луч, начинающийся в этой точке (полярная ось).
Координата ρ определяет расстояние от точки до полюса, координата угол между полярной осью и отрезком, соединяющим полюс и рассматриваемую точку.
Координата берётся со знаком «+», если угол от оси до отрезка вычисляется против часовой стрелки, и со знаком «-» в противоположном случае.
Любая точка в этой системе имеет бесконечное число координат вида (где T-период функции), которым соответствует одна и та же точка при любых целых n.
Для полюса ρ = 0, угол произвольный.
Иногда допускаются отрицательные значения ρ, в этом случае координаты и определяют одну и ту же точку плоскости.
Формулы для перехода от полярных координат к декартовым
x=ρ*cos(φ), y=ρ*sin(φ)
и обратно:
ρ=sqrt(x2)+y2), φ=arctg(y/x)=arcsin(y/ρ)
Цилиндрические системы координат
Рис. 5: Цилиндрические системы координат
Цилиндрической системой координат называют трёхмерную систему координат, являющуюся расширением полярной системы координат путём добавления третьей координаты (обычно обозначаемой z), которая задаёт высоту точки над плоскостью.
Точка P даётся как . В терминах прямоугольной системы координат:
При использовании в физических науках и технике рекомендует использовать обозначения .
Цилиндрические координаты удобны при анализе поверхностей, симметричных относительно какой-либо оси, если ось Z взять в качестве оси симметрии. Например, бесконечно длинный круглый цилиндр в прямоугольных координатах имеет уравнение x2 + y2 = c2, а в цилиндрических очень простое уравнение ρ = c. Отсюда и идёт для данной системы координат имя «цилиндрическая».
Формулы для перехода от цилиндрических координат к декартовым
x=ρ*cos(φ), y=ρ*sin(φ), z=z
и обратно:
ρ=sqrt(x2+y2), φ=arctg(y/x)=arcsin(y/ρ)
ПРОЕКЦИЯ (от лат. projectio, букв. - бросание вперед), изображение пространственных фигур на плоскости (или на какой-либо другой поверхности).
По расположению центра проекции относительно плоскости проекции различаются центральная и параллельные проекции.
При параллельной проекции центр проекции находится на бесконечном расстоянии от плоскости проекции. Проекторы представляют собой пучок параллельных лучей. В этом случае необходимо задавать направление проецирования и расположение плоскости проекции. По взаимному расположению проекторов, плоскости проекции и главных осей координат различаются ортогональные, прямоугольные аксонометрические и косоугольные аксонометрические проекции. При ортогональной проекции проекторы перпендикулярны плоскости проекции, а плоскость проекции перпендикулярна главной оси. Т.е. проекторы параллельны главной оси.
Центральная и параллельная проекции
При аксонометрической проекции имеется одна из двух перпендикулярностей:
- при прямоугольной аксонометрической проекции проекторы перпендикулярны плоскости проекции, которая расположена под углом к главной оси;
- при косоугольной аксонометрической проекции проекторы не перпендикулярны плоскости проекции, но плоскость проекции перпендикулярна к главной оси.
Изображение, полученное при параллельном проецировании, не достаточно реалистично, но передаются точные форма и размеры, хотя и возможно различное укорачивание для различных осей.
При центральной проекции расстояние от центра проекции до плоскости проецирования конечно, поэтому проекторы представляют собой пучок лучей, исходящих из центра проекции. В этом случае надо задавать расположение и центра проекции и плоскости проекции. Изображения на плоскости проекции имеют т.н. перспективные искажения, когда размер видимого изображения зависит от взаимного расположения центра проекции, объекта и плоскости проекции. Из-за перспективных искажений изображения, полученные центральной проекцией, более реалистичны, но нельзя точно передать форму и размеры. Различаются одно, двух и трехточечные центральные проекции в зависимости от того по скольким осям выполняется перспективное искажение. Иллюстрация центральной проекции приведена на рис.4.
На рис.4. приведена классификация описанных выше плоских проекций.
Классификация плоских проекций
Параллельные проекции. Вначале мы рассмотрим ортогональные проекции, используемые в техническом черчении, в регламентированной для него правосторонней системе координат, когда ось Z изображается вертикальной. Затем будут проиллюстрированы аксонометрические проекции также в правосторонней системе координат, но уже более близкой к машинной графике (ось Y вертикальна, ось X направлена горизонтально вправо, а ось Z - от экрана к наблюдателю). Наконец выведем матрицы преобразования в левосторонней системе координат, часто используемой в машинной графике, с вертикальной осью Y, осью X, направленной вправо и осью Z, направленной от наблюдателя.
Использование проекций в техническом черчении регламентируется стандартом ГОСТ 2.317-69. Наиболее широко, особенно, в САПР используются ортогональные проекции (виды). Вид - ортогональная проекция обращенной к наблюдателю видимой части поверхности предмета, расположенного между наблюдателем и плоскостью чертежа.
В техническом черчении за основные плоскости проекций принимают шесть граней куба (рис. 5).
Ортогональные проекции (основные виды) и их расположение на листе чертежа
Очевидно, что при ортогональной проекции не происходит изменения ни углов, ни масштабов.
При аксонометрическом проецировании сохраняется параллельность прямых, а углы изменяются; измерение же расстояний вдоль каждой из координатных осей в общем случае должно выполняться со своим масштабным коэффициентом.
При изометрических проекциях укорачивания вдоль всех координатных осей одинаковы, поэтому можно производить измерения вдоль направлений осей с одним и тем же масштабом (отсюда и название изометрия).
Аксонометрическая прямоугольная изометрия проекция куба со стороной A. При этой проекции плоскость проецирования наклонена ко всем главным координатным осям под одинаковым углом. Стандартом регламентируется коэффициент сжатия, равный 0.82, а также расположение и взаимные углы главных координатных осей, равные 120 как это показано в левом верхнем углу рис. 6. Обычно сжатие не делается.
Аксонометрическая прямоугольная изометрическая проекция куба со стороной A
При диметрической проекции две из трех осей сокращены одинаково, т.е. из трех углов между нормалью к плоскости проекции и главными координатными осями два угла одинаковы.
Аксонометрическая прямоугольная диметрия проекция куба со стороной A. Там же показаны регламентируемые расположение осей и коэффициенты сжатия. Обычно вместо коэффициента сжатия 0.94 используется 1, а вместо 0.47 - 0.5.
Рис.7. Аксонометрическая прямоугольная диметрическая проекция куба со стороной A
В косоугольных проекциях плоскость проекции перпендикулярна главной координатной оси, а проекторы расположены под углом к ней. Таким образом, аксонометрические косоугольные проекции сочетают в себе свойства ортогональных и аксонометрических прямоугольных проекций.
Наиболее употребимы два вида косоугольной проекции - фронтальная (косоугольная) диметрия (проекция Kabinett - кабине) и горизонтальная (косоугольная) изометрия (проекция Kavalier - кавалье) или военная перспектива.
В случае фронтальной (косоугольной) диметрии при использовании правосторонней системы координат экрана плоскость проецирования перпендикулярна оси Z. Ось X направлена горизонтально вправо. Ось Z изображается по углом в 45 относительно горизонтального направления. Допускается угол наклона в 30 и 60. При этом отрезки, перпендикулярные плоскости проекции, при проецирования сокращаются до 1/2 их истинной длины. На рис. приведена (аксонометрическая косоугольная) фронтальная диметрическая проекция куба со стороной A, там же показаны регламентируемые коэффициент сжатия, равный 0.5 и расположение осей.
Рис. 8. Аксонометрическая косоугольная фронтальная диметрическая проекция куба со стороной A
В случае же (аксонометрической косоугольной) горизонтальной изометрии, как следует из названия, плоскость проецирования перпендикулярна оси Y а укорачивания по всем осям одинаковы и равны 1. Угол поворота изображения оси X относительно горизонтального направления составляет 30. Допускается 45 и 60 при сохранении угла 90 между изображениями осей X и Z. Иллюстрация этого приведена на рис.9 .
Рис. 9. Аксонометрическая косоугольная горизонтальная изометрическая проекция куба со стороной A
Центральная проекция
Наиболее реалистично трехмерные объекты выглядят в центральной проекции из-за перспективных искажений сцены. Центральные проекции параллельных прямых, не параллельных плоскости проекции будут сходиться в точке схода. В зависимости от числа точек схода, т.е. от числа координатных осей, которые пересекает плоскость проекции, различаются одно, двух и трехточечные центральные проекции. Иллюстрация одно-, двух- и трехточечной центральных проекций куба приведена на рис. 12.
Рис.12. Одно-, двух- и трехточечная центральные проекции куба
Наиболее широко используется двухточечная центральная проекция.
Растрирование (Screening) - это метод передачи полутонов изображения на неполутоновых устройствах, с помощью специальных, простых геометрических фигур - растровых точек.
Состоит он в следующем. Исходное полутоновое изображение для печати, которое нам необходимо передать на неполутоновом устройстве, анализируется, и выводится на печать набором специальных, геометрически правильных фигур, - растровых точек, характеристики которых определяют цвет нашего изображения и его визуальную (оптическую) плотность. А растровая точка (screen dot, или raster dot) - это элементарная простая геометрическая фигура, формирующая растровый рисунок. Она может быть различной формы, и за время существования полиграфической отрасли их было перепробовано целое множество. О наиболее часто используемых формах растра будет сказано ниже.
Существуют две методики растрирования и соответственно два способа передачи полутонов на неполутоновых устройствах:
Рассмотрим оба метода формирования рисунка подробнее.
В первом случае, фактически, меняется частота появления растровых точек на бумаге, в зависимости от насыщенности изображения. Поэтому этот метод растрирования называется частотно - модулированным (ЧМ - растрирование, англ. FM-screening). Растровые точки, при формировании рисунка этим методом, наносятся хаотично и не упорядочено одна относительно другой (поэтому растры этого типа иногда называют нерегулярными или стохастическими).
У таких растров всего один непосредственный параметр - размер отдельно взятой точки, который определяется настройками драйвера печати и характеристиками устройства вывода - размером микропятна печатающего устройства. Минимальные значения этого параметра ограничены объемом капли, создаваемой печатающей готовкой, который на практике у современных моделей принтеров обычно колеблется от двух до нескольких десятков пиколитров. По сути, устанавливая в диалоговом окне принтера, печатающего этим растром, мы устанавливаем разрешение, или максимальную плотность нанесения точек на единицу длины печати. Эта величина, во многом определяющая качество печати, называется разрешением в точках на дюйм, и обозначается как dpi (dots per inch). Понятно, что чем мельче размер отдельно взятой капли, и чем выше разрешение в dpi, тем меньше будет заметна дискретность готового отпечатанного изображения.
Наиболее типичный и распространенный пример устройства, в котором используется нерегулярный стохастический FM - растр - это струйный принтер. С физической точки зрения сформировать такой растр достаточно просто: печатающая головка принтера просто наносит чернила на запечатываемый материал в виде множества мелких капелек более или менее одинакового размера (повторяемость размера капли определяется уже не настройками печати, а классом точности печатающего узла принтера). Изменяется только интенсивность падения капель красителя на запечатываемый материал, что и определяет относительную плотность запечатываемости каждого участка. Таким образом, сформулируем краткое определение: ЧМ - растрирование (FM - screening) - это метод получения полутонов в печатаемом изображении с использованием растровых точек одинакового размера с переменным их числом на единицу площади запечатываемой поверхности. Ниже на рисунке Вы можете посмотреть увеличенный фрагмент простого изображения, отпечатанный с помощью этой методики растрирования.
Пример нерегулярного ЧМ - растрирования
Простота формирования этого растра во многом может натолкнуть вас на мысль о простоте профессионального применения в печати этого растра. К сожалению, это не так. То, что хорошо и достаточно просто для настольного принтера, не всегда просто и достижимо в "большой" полиграфии. Как правило, использование в ней нерегулярных частотно - модулированных растров сопряжено с целым рядом практических трудностей - требуется использование значительно более высококачественного оборудования, как при печати, так и на допечатной стадии. Большинство изданий, как и журнал, в котором напечатана эта статья, печатается без использования этой технологии растрирования.
Однако полиграфисты не были бы полиграфистами, если бы ими не был уже достаточно давно придуман альтернативный способ растрирования. Этот метод, повсеместно используемый в печати, - это так называемое амплитудно-модулированное растрирование, или АМ - растрирование (AM - screening). Краткое описание этого метода растрирования таково: это метод получения полутонов с использованием растровых точек переменного размера, с неизменным их числом на единицу площади запечатываемой поверхности. В АМ - растрах используется несколько другой подход к формированию рисунка, в отличие от предыдущего рассмотренного нами метода. В зависимости от того, насколько светлым или темным является определенный участок изображения, его печать на бумаге происходит в виде растровых точек разного размера. В светлых участках точки достаточно малы и малозаметны. В полутоновой части они занимают примерно половину запечатываемой площади рисунка и формируют характерную "шахматку" (хотя это за висит от формы растровой точки), а в теневых участках точки становятся настолько велики, что занимают почти всю площадь запечатываемого материала, при этом промежутки между растровыми точками становятся практически не видны. Значение площади, занимаемое растровой точкой в изображении, принято называть растровой плотностью, и выражать в процентах. Например, растровая плотность в 50% подразумевает, что растровая точка занимает половину площади запечатываемого материала. Именно поэтому, например, в известном редакторе растровой графики Adobe Photoshop цветовые значения в RGB задаются как число в пределах от 0 до 255 (в рамках 256 градаций на один канал изображения), а цветовые значения в CMYK - в процентных значениях от 0 до 100. Число градаций и глубина цвета, однако, при этом остаются без изменений - на один канал CMYK - изображения по-прежнему приходится 8 бит информации (в данном случае мы не рассматриваем случаи использования повышенной глубины цвета).
Пример АМ - растрирования
Сначала читателю может показаться, что второй метод формирования изображения достаточно сложен и несколько неуклюж по сравнению с предыдущим. Однако, это только первое впечатление. Не смотря на то, что у амплитудно-модулированных растров имеется огромное число недостатков, среди которых - относительная дискретность изображения, возможность появления муара в печати или при повторном сканировании, и сравнительная трудность в реализации алгоритмов растрирования, по сравнению с FM - растрами на допечатной стадии, в целом, его значительно проще печатать, и он наиболее часто используется в "большой" полиграфии, а также в большинстве моделей "не струйных" принтеров. "Бутылочным горлышком" стохастических растров осталось высокая сложность их практического получения в профессиональной печати, нелинейность градационных показателей растра и обычно достаточно высокие требования к печатному оборудованию для его воспроизведения. Ответом печатной индустрии был отказ от массового применения стохастических методов растрирования, не смотря на все их потенциальные преимущества. "Стохастику" оставили чуть ли не только для "настольных струйных принтеров", а во всех остальных случаях профессиональной печати стали использовать амплитудно-модулированные растры.
Кстати, оговорюсь сразу, полного отказа от этой технологии, конечно же, не произошло, в силу ряда ее преимуществ, однако, большая часть рынка все-таки использует традиционное АМ - растрирование. Мне трудно назвать конкретную цифру в процентах, чтобы четко сравнить растры по частоте их использования, но доля практического применения частотно-модулированных растров по сравнению с амплитудно-модулированными все еще остается достаточно мала.
Некоторые тонкости АМ - растрирования
При использовании AM - растров, актуален не только вопрос о размерах, но и о форме растровой точки, в отличие от предыдущего метода растрирования, где форма точки отсутствовала как таковая. Вместо нее на запечатываемом материале после печати появлялась достаточно малая капелька тонера, краски или чернил принтера, а размер точки, по сути, определялся настройками драйвера принтера (на аппаратном уровне - объемом микрокапли используемого принтера). Дело в том, что от того, каким АМ - растром будет напечатан макет, а также от формы растровой точки, во многом зависит визуальное восприятие изображения наблюдателем. Форма растровой точки (Raster dot shape) строго определена и чаще всего зависит от конкретной модели печатающего устройства, либо от программных настроек драйвера, если он позволяет выбирать форму растра среди нескольких альтернативных вариантов. Без необходимости и точного понимания того, что Вы делаете, и какой результат Вы планируете получить, менят ь форму растровой точки не следует. К наиболее часто используемым формам растровых точек можно отнести эллиптическую, ромбовидную, квадратную и круглую точки.
Различные формы растровых точек
Многие читатели, вероятно, уже знакомы с понятием линиатуры. Этот параметр относится только к регулярным амплитудно-модулированным растрам и обозначает плотность укладки пространственных линий растра на единицу длины (обычно - дюйм). Для обозначения термина "линиатура" используется аббревиатура - lpi, расшифровывающаяся как lines per inch (число линий на дюйм). Чем выше частота укладки линий на единицу длины изображения, тем меньше заметна дискретность изображения, обусловленная его растровой структурой. Наиболее типичные значения линиатуры печати - 60, 85, 100, 120, 133, 150, 175, 200 lpi и так далее. Человек, обладающий среднестатической остротой зрения, как правило, не замечает растра в изображениях, отпечатанных с линиатурой более 133 lpi, при просмотре изображений с расстояния в 25-35 сантиметров.
Линиатура в растровом изображении
Как я уже сказал, повышение линиатуры печати в целом улучшает ощущение зрителя от просматриваемого изображения. Чем выше линиатура, тем большее число деталей изображения можно передать в печати. Однако, для печати высоких линиатур необходимо также использование высокого аппаратного разрешения печати принтера - иначе изображение, имея визуально большую степень детализации, сильно проиграет в числе доступных ему градаций печати. Ниже на приведенном рисунке показаны формы двух растровых точек одной и той же линиатуры и растровой плотности, но при различном разрешении принтера в dpi.
Правильность форм растровых точек при разных разрешениях печати
Из рисунка видно, что "аккуратность" прорисовки формы каждой отдельно взятой растровой точки находится в прямой зависимости от разрешения печати. Таким образом, если разрешение печати будет недостаточно высоко, погрешность прорисовки растровых точек будет высокой. Из-за низкого разрешения печати мы не увидим разницы между двумя растровыми точками с небольшой разницей по их плотности. Например, участки изображения с плотностью в 35 и 37% станут неразличимы. В результате, при печати могут частично пострадают градации изображения, и возникнет так называемый эффект постеризации - явление потери оттенков, что хорошо заметно на участках тонких переходов цветов и на плавных градиентах.
Из теории известно, что при глубине цвета 8 бит на канал, например, в черно-белом изображении мы можем получить до 256 различных оттенков серого. На практике, для качественной печати всех оттенков исходного изображения, мы должны обеспечить как минимум, 16-кратный запас по разрешению печати, в зависимости от текущей линиатуры. Нетрудно подсчитать, что при линиатуре печати 150 lpi (это стандартное значение линиатуры для большинства печатных изданий), для качественной передачи всех возможных оттенков изображения, мы должны обеспечить разрешение печати не менее 2400 dpi. Поскольку далеко не каждый принтер способен печатать с таким разрешением, порядок используемых ними линиатур обычно несколько меньше. В диалоговых окнах драйверов большинства принтеров обычно выбирается разрешение печати принтера в dpi, а в зависимости от него подбирается адекватное значение линиатуры, для более или менее качественных характеристик печати.
Передача многоцветных рисунков с помощью растра
Технологически все достаточно просто, когда при печати используется всего одна краска, как в черно-белых принтерах. Сложнее формируется рисунок, если используется несколько базовых красок или чернил.
Например, струйный принтер, c набором чернил базовых цветов, формирует цветное изображение путем нанесения определенного числа точек чернилами того или иного цвета в разные участки запечатываемого изображения. Для получения цветов, которые отсутствуют среди базовых, используется некоторое их сочетание. Так, например, зеленый цвет получается при нанесении голубых (Cyan) и желтых (Yellow) точек, красный - при нанесении пурпурных (Magenta) и желтых (Yellow). Аналогичным образом получаются все многообразие остальных цветов. Но, как я уже говорил раньше, струйный принтер печатает нерегулярным растром из-за относительной простоты его физического формирования. Амплитудно-модулированные растры несколько сложнее, и схемы получения многоцветных изображений с их использованием используются иные. Дело в том, что для растровых точек разных цветов необходимо использование различного их геометрического положения друг относительно друга. Это оптически позволяет наблюдать нам более чистые цвета в светлых участках изображения, а также избежать появления раздражающих глаз интерференционных картин, возникающих иногда в отрастрированных изображениях (об этом еще будет сказано ниже). Геометрический смысл взаимного смещения растровых точек относительно друг друга состоит в том, чтобы повернуть растровые структуры, а значит и каждую растровую точку в отдельности, на некоторое число градусов. Таким образом, еще один параметр амплитудно-модулированных растров - это угол его наклона. Угол наклона растра (Screening angle) - это величина относительного угла поворота растровых точек друг относительно друга и относительно общей оси изображения. Этот параметр принимает особое значение при цветной печати, так как печать каждой краски осуществляется с использованием разных углов наклона растра для каждой из использованных красок. Ниже на рисунке показан пример растра с углами наклона в 15, 0 и 45 градусов.
Различные углы наклона растра
Значения углов наклона растра стандартизированы, и без особой надобности менять их местами не рекомендуется. Для голубой краски стандартным значением является угол в 15 градусов, для пурпурной - 75, для желтой 0, для черной - 45. Кроме того, используется этот же набор углов наклонов растра, с дополнением угла наклона растра 90 градусами (например, для голубой краски можно использовать угол в 105 градусов вместо 15 и т.д.). Нельзя использовать одни и те значения угла наклона растра для разных красок одновременно - это вызовет сильнейшие искажения изображения, проявляющиеся в изменении цвета и появлении интерференционной периодической структуры, возникшей из-за наложения двух периодических растровых структур. Эти паразитные, периодические структуры называются муаром и в случае их появления, как правило, являются 100%-м браком для отпечатанного изображения. Таким образом, муар (moire) - паразитный, раздражающий глаз эффект, возникающий в неверно отрастриров анном или повторно отрастрированном изображении.
Переназначать углы наклона растра способен далеко не каждый принтер. Обычно, для возможности переназначения углов наклона растра требуется использование PostScript - принтера, или же специализированного программного обеспечения. Использование различных углов наклона растра также влияет на наше восприятие изображения. Кроме того, например, при печати на черно-белом принтере, угол наклона растра единственной используемой черной краски или тонера, как правило, составляет 45 градусов. Выбор этого угла не случаен, так как именно при этом его значении изображение визуально минимально "разбито" дискретностью растровой структуры.
В профессиональной полиграфии используются растры, создающие различные по форме и зрительно-оптическим свойствам растровые розетки. Розетки растра (raster rosette) - это элементарные ячейки изображения, состоящие из набора растровых точек, формирующих это изображение. Это простые, геометрически правильные узоры, образуемые на бумаге целыми группами растровых точек различных цветов. Понятие розетки растра имеет смысл только при рассмотрении цветной печати. Расположение растровых точек в розетке растра не случайно, и выбрано путем долгих экспериментов полиграфистов-теоретиков в тесном содружестве с полиграфистами-практиками.
Растровая розетка при 20% и 50% растровой плотности
Кроме всех упомянутых в статье технологий, существуют еще и некоторые "гибридные" технологии, использующиеся на практике. Это так называемые комбинированные растры. Комбинированные растры - это растры, одновременно обладающие достоинствами АМ и FM - методов растрирования, рассмотренных выше и лишенные некоторых их недостатков. Соответственно, у них может изменяться как число точек на единицу площади запечатываемого материала, так и размер точек. В настольных принтерах они применяются относительно недавно, и ее поддержка в драйвере имеется далеко не во всех моделях. В профессиональной "большой" полиграфии они используются еще реже.
И, в завершение этой небольшой статьи, хотелось бы добавить, что в этом обсуждении мы затронули только наиболее фундаментальные и важные понятия, использующиеся в профессиональной и "настольной" полиграфии, касающиеся формирования полутоновых изображений на бумаге. Далеко не все нюансы технического и технологического процесса формирования изображения были рассмотрены. Но все это уже темы для отдельного, обстоятельного разговора.
Устранение ступенчатости (Antialiasing)
Одна из наиболее впечатляющих аппаратных технологий, все чаще находящая применение в игровых приложениях, - это устранение ступенчатости, или антиалиасинг (antialiasing).
Эта технология предназначена для устранения одной из ключевых проблем качества синтезированных изображений - лестничного эффекта (также часто называют алиасингом, aliasing). Часто этот эффект можно заметить на границах объектов или на линиях, близких к вертикальным или горизонтальным, но не строго вертикальных или, соответственно, горизонтальных. Несомненно, читатель много раз встречался с подобными эффектами, например, в трехмерных играх.
Рисунок 1. Левое изображение получено в стандартном режиме, правое - со включенным устранением ступенчатости. Обратите внимание на передачу мелких деталей и границы объектов (перила на мосту, фонари и т.д.)
Что является причиной лестничного эффекта? Опуская подробности, можно сказать, что главная причина - "сетка" пикселей на компьютерном мониторе. Эта сетка имеет конечное и весьма небольшое разрешение, а пиксели располагаются в строго фиксированных местах.
Ступенчатость возникает, когда точки на линиях пересекают строки или столбцы пикселей под небольшим углом. Часть линии шириной в один пиксель может попасть на один пиксель экрана, а часть - на другой. Таким образом, получается неопределенность: можно рисовать эту часть как один пиксель на одном ряду, один пиксель на другом ряду или закрашивать оба пикселя. К сожалению, все три способа вносят хорошо заметные дефекты в изображение. Если закрашивать только один пиксель, линия может получиться тоньше чем нужно, и будет хорошо заметен разрыв в том месте, где линия переходит с одного ряда пикселей на другой. Если закрашивать оба - ширина линии в этом месте будет два пикселя. Аналогичные артефакты возникают не только при рисовании линий, а практически на всех границах, встречающихся в изображении.
Рисунок 2.
Как же бороться с этим неприятным эффектом? Можно заметить, что размер одной "ступеньки" никогда не бывает больше, чем один пиксель. Поэтому наиболее естественный и простой путь - это увеличение экранного разрешения. То есть, увеличение разрешения уменьшает размер пикселя и, следовательно, заметность артефактов. Однако увеличить разрешение можно не всегда. Например, оно может быть ограничено максимальным разрешением монитора или его может ограничивать приложение.
Другой путь - увеличение так называемого эффективного разрешения, т.е. использование специального алгоритма для получения цвета пикселя таким образом, чтобы эмулировать несколько пикселей. Такие методы и называются методами устранения ступенчатости.
Эти методы вычисляют значение цвета как бы внутри экранного пикселя в нескольких точках. Эти точки называются сэмплами (sample). Сэмплы представляют собой те самые дополнительные пиксели изображения, которые увеличивают эффективное разрешение. Значение сэмплов используются для вычисления конечного цвета пикселя.
Дизеринг
Для иллюстрации работы реальных растровых устройств рассмотрим результаты вывода одной и той же картинки. Поскольку невозможно показать цветные изображения, то в качестве тестового образца выбран черно-белый рисунок, состоящий из текста и простейшей графики.
Изображение, полученное на экране, было сфотографировано и оцифровано. Картинка имеет множество градаций серого цвета, которые здесь, к сожалению, не могут быть точно воспроизведены. Для печати иллюстраций на бумаге (в том числе и для этой книги) используется дизеринг имитация оттенков серого цвета многими близко расположенными черными точками. Поэтому при просмотре с помощью лупы данная картинка "рассыпается" на отдельные мелкие точки. На рис. 1.9 показано увеличенное изображение фрагмента рис. 1.8. Здесь уже отчетливо видна шестиугольная структура растра, характерная для цветного кинескопа.
Дизеринг
Хорошо, когда растровое устройство отображения может прямо воссоздавать тысячи цветов для каждого пиксела. Не так давно это было проблемой даже для компьютерных дисплеев (а точнее для видеоадаптеров). Современные растровые дисплеи достаточно качественно отображают миллионы цветов, благодаря чему без проблем можно отображать цветные фотографии. Но для растровых устройств, которые печатают на бумаге, положение совсем другое. Устройства печати обычно имеют высокую разрешающую способность (dpi), часто на порядок большую, чем дисплеи. Однако нельзя непосредственно воссоздать даже сотню градаций серого для пикселов черно-белых фотографий, не говоря уже о миллионах цветов. В большинстве случаев можно увидеть, что оттенки цветов (для цветных изображений) или полутоновые градации (для черно-белых) имитируются комбинированием, смесью точек. Чем качественнее полиграфическое оборудование, тем меньше отдельные точки и расстояние между ними.
Для устройств печати на бумаге проблема количества красок достаточно важна. В полиграфии для цветных изображений обычно используют три цветных краски и одну черную, что в смеси дает восемь цветов (включая черный и белый цвет бумаги). Встречаются образцы печати большим количеством красок например, карты, напечатанные с использованием восьми красок, однако такая технология печати намного сложнее. Состояние дел с цветной печатью можно оценить также на примере относительно простых офисных принтеров. Недавно появились струйные принтеры с шестью цветными красками вместо трех. В таких принтерах в состав обычных CMYK-красок добавлены бледно-голубая, бледно-пурпурная и бледно-желтая краски (семицветные принтеры). В шестицветных принтерах отсутствует бледно-желтая краска. Увеличение количества красок значительно улучшило качество печати, однако и этого пока явно мало.
Если графическое устройство не способно воссоздавать достаточное количество цветов, тогда используют растрирование независимо от того, растровое это устройство или не растровое. В полиграфии растрирование известно давно. Оно использовалось несколько столетий тому назад для печати гравюр. В гравюрах изображение создается многими штрихами, причем полутоновые градации реализованы или штрихами различной толщины на одинаковом расстоянии, или штрихами одинаковой толщины с переменной густотою расположения. Такие способы используют особенности человеческого зрения и в первую очередь пространственную интеграцию. Если достаточно близко расположить маленькие точки различных цветов, то они будут восприниматься как одна точка с некоторым усредненным цветом. Если на плоскости густо расположить много маленьких разноцветных точек, то будет создана визуальная иллюзия закрашивания плоскости некоторым усредненным цветом. Однако если увеличивать размеры точек и (или) расстояние между ними, то иллюзия сплошного закрашивания исчезает включается другая система человеческого зрения, обеспечивающая нашу способность различать отдельные объекты, подчеркивать контуры.
В компьютерных графических системах часто используют эти методы. Они позволяют увеличить количество оттенков цветов за счет снижения пространственного разрешения растрового изображения. Иначе говоря это обмен разрешающей способности на количество цветов. В литературе по компьютерной графике такие методы растрирования получили название dithering (дрожание, разрежение).
Простейшим вариантом дизеринга можно считать создание оттенка цвета парами соседних пикселов.
Если рассмотреть ячейки из двух пикселов (рис. 1.36), то ячейка номер 1 дает оттенок цвета
С = (С1+С2)/2,
где С1 и С2 цвета, которые графическое устройство способно непосредственно воспроизвести для каждого пиксела. Числовые значения С, С1 и С2 можно рассчитать в полутоновых градациях или в модели RGB отдельно для каждой компоненты.
Пример растра с использованием ячеек из двух пикселов приведен на рис. 1.37.
Как видим, для создания промежуточного оттенка С ячейки образовывают вертикальные линии, которые очень заметны. Для того чтобы человек воспринял это как сплошной оттенок, необходимо, чтобы угловой размер ячеек был меньше одной угловой минуты. Можно изменять положения таких ячеек в растре, располагая их, например, по диагонали. Это несколько лучше, но не намного.
Чаще используют квадратные ячейки больших размеров. Дадим пример ячеек размером 2*2 (рис. 1.38).
Такие ячейки дают 5 градаций, из них три комбинации (1, 2, 3) образуют новые оттенки.
Расчет цвета, соответствующего одной из комбинаций пикселов в ячейке, можно выполнить таким образом. Если пикселы ячейки могут быть только двух цветов (С1 и С2), то необходимо подсчитать часть площади ячейки для пикселов каждого цвета. Цвет ячейки (С) можно оценить соотношением
где S общая площадь ячейки; S1 u S2 части площади, занятых пикселами цветов C1 и С2 соответственно, причем S1 + S2 = S. Проще всего, когда пикселы квадратные, а их размер равен шагу размещения пикселов. Примем площадь одного пиксела за единицу. В этом случае площадь, занимаемая пикселами в ячейке, равна их количеству (рис. 1.41).
Для ячейки 5><5, изображенной на рис. 1.41, дадим расчет цвета С для некоторых цветов С1 и С2. Пусть С1 белый цвет (RGB) = (255, 255, 255), а С2 черный (RGB) = (О, О, 0), тогда мы получили светло-серый цвет
Еще пример. Если С1 желтый (RGB) = (255, 255, 0), а С2 красный (RGB) = (255, 0, 0), то С = (255, 204, 0). Это оттенок оранжевого цвета.
Следовательно, если в ячейке размерами n*n использованы два цвета, то с помощью этой ячейки можно получить п2+1 различных цветовых градаций. Две комбинации пикселов когда все пикселы ячейки имеют цвет С1 или С2 дают цвет ячейки соответственно С1 или С2. Все иные комбинации дают оттенки, промежуточные между С1 и С2.
Можно считать, что ячейки размером п х п образовывают растр с разрешающей способностью в п раз меньшей, чем у исходного растра, а глубина цвета возрастает пропорционально п2. Для характеристики изображений, которые создаются методом дизеринга, используют термин линиатура растра. Линиатура вычисляется как количество линий (ячеек) на единицу длины сантиметр, миллиметр, дюйм. В последнем случае единицей измерения для линиатуры является Ipi (по аналогии с dpi).
Для дизеринга используют квадратное и диагональное расположение ячеек.
Для примера квадратного изображения специально была выбрана небольшая разрешающая способность, чтобы подчеркнуть структуру изображения. Ячейки образовывают достаточно заметный квадратный растр (рис. 1.42).
Для улучшения восприятия изображения можно использовать иное расположение ячеек, например, диагональное (рис 1.43).
Диагональное расположение можно получить, если сдвигать четные строки ячеек (рис. 1.44). Координаты пикселов ячеек можно вычислять следующим образом:
Для того чтобы получить диагональную структуру растра подобную той, что используется для печати газет, можно использовать квадратное расположение ячеек другого типа (рис. 1.45).
Для всех приведенных выше примеров дизеринга ячейки образовывают точки переменного размера с постоянным шагом. Однако часто используется иной подход переменная густота расположения точек постоянного размера. Такой способ получил название частотной модуляции (ЧМ) (рис. 1.46).
Положительная черта способа ЧМ меньшая заметность структуры растра. Однако его использование затруднено в случае, когда размер пикселов больше, чем их шаг. Начиная с определенной густоты, пикселы смыкаются. Кроме того, на дискретном растре невозможно обеспечить плавное изменение густоты (частоты), в особенности для ячеек небольшого размера. Рассмотрим пример ячеек 5 х5, реализующих ЧМ-дизеринг (рис. 1.47).
Для изображений, созданных методом ЧМ-дизеринга, наблюдается меньшая заметность растровой структуры (рис. 1.48).
Однако при регулярном расположении одинаковых ячеек всегда образовывается текстура, муар, лишние контуры. Одна из важных задач разработка таких вариантов ячеек, которые предопределяют наименее заметную растровую структуру (кроме тех случаев, когда, наоборот, такую структуру нужно подчеркнуть для создания изображения в стиле гравюры). Это довольно сложная задача.
Один из способов создания достаточно качественных изображений это диффузный дизеринг. Суть его в том, что ячейки создаются случайно (или псевдослучайно). Если для каждой градации создавать случайные ячейки, то даже для фрагмента растра пикселов с постоянным цветом не будут образовываться регулярные структуры. Это соответствует диффузному отражению света от матовой поверхности.
Модель это упрощенное представление реального устройства и/или протекающих в нем процессов, явлений.
Построение и исследование моделей, то есть моделирование, облегчает изучение имеющихся в реальном устройстве (процессе, …) свойств и закономерностей. Применяют для нужд познания (созерцания, анализа и синтеза).
Моделирование является обязательной частью исследований и разработок, неотъемлемой частью нашей жизни, поскольку сложность любого материального объекта и окружающего его мира бесконечна вследствие неисчерпаемости материи и форм её взаимодействия внутри себя и с внешней средой.
Моделирование исследование объектов познания на их моделях; построение и изучение моделей реально существующих объектов, процессов или явлений с целью получения объяснений этих явлений, а также для предсказания явлений, интересующих исследователя.
В силу многозначности понятия «модель» в науке и технике не существует единой классификации видов моделирования: классификацию можно проводить по характеру моделей, по характеру моделируемых объектов, по сферам приложения моделирования (в технике, физических науках, кибернетике и т. д.). Например, можно выделить следующие виды моделирования:
Информационное моделирование
Компьютерное моделирование
Математическое моделирование
Математико-картографическое моделирование
Молекулярное моделирование
Цифровое моделирование
Логическое моделирование
Педагогическое моделирование
Психологическое моделирование
Статистическое моделирование
Структурное моделирование
Физическое моделирование
Экономико-математическое моделирование
Имитационное моделирование
Эволюционное моделирование
Графическое и геометрическое моделирование
Натурное моделирование
и т. д.
Математическое моделирование это процесс построения и изучения математических моделей.
Все естественные и общественные науки, использующие математический аппарат, по сути занимаются математическим моделированием: заменяют объект его математической моделью и затем изучают последнюю. Связь математической модели с реальностью осуществляется с помощью цепочки гипотез, идеализаций и упрощений. С помощью математических методов описывается, как правило, идеальный объект, построенный на этапе содержательного моделирования.
Геометрическое моделирование - это моделирование, используемое в САПР для решения многих задач: визуализации, построения расчетных сеток, генерации управляющих программ ЧПУ и т.д. В первую очередь, они предназначены для хранения информации о форме объектов и их взаимном расположении, и предоставления ее для обработки в удобном для компьютерной программы виде. В этом ключевое отличие электронной геометрической модели от чертежа, который представляет собой условное символьно-графическое изображение, предназначенное для чтения человеком.
Во многих приложениях машинной графики возникает потребность в представлении трехмерных тел (вычислительный эксперимент, автоматизация проектирования, роботизация, вычислительная томография, тренажеры, видеографика и т.д.).
Можно выделить две основные задачи, связанные с представлением трехмерных тел, - построение модели уже существующего объекта и синтез модели заранее не существовавшего объекта.
При решении первой задачи в общем случае может потребоваться задание бесконечного количества координат точек. Чаще же всего объект с той или иной точностью аппроксимируют некоторым конечным набором элементов, например, поверхностей, тел и т.п.
При решении второй задачи, выполняемой чаще всего в интерактивном режиме, основное требование к средствам формирования и представления модели - удобство манипулирования.
Важно отметить, что 3D системы существенно ориентируются на область приложений так как многие характерные для них задачи, выполняемые программным путем, стоят очень дорого и сильно зависят от выбора возможных моделей. Типичными такими задачами, в частности, являются получение сечений и удаление невидимых частей изображения. Обычно имеется много вариантов реализации различных моделей в большей или меньшей степени эффективных в зависимости от различных областей приложений и решаемых задач. Поэтому в 3D системах стремятся использовать многообразие моделей и поддерживать средства перехода от одной модели к другой.
Другим важным обстоятельством является то, что для современных систем характерно стремление моделировать логику работы, принятую пользователем. Это требует наличия средств перехода от модели, удобной для пользователя, к модели удобной для визуализации (модели тел в виде граней).
Элементы моделей
При формировании 3D модели используются:
Из этих элементов с помощью различных операций формируется внутреннее представление модели.
Процесс моделирования
Процесс моделирования включает три элемента:
субъект (исследователь),
объект исследования,
модель, определяющую (отражающую) отношения познающего субъекта и познаваемого объекта.
Первый этап построения модели предполагает наличие некоторых знаний об объекте-оригинале. Познавательные возможности модели обусловливаются тем, что модель отображает (воспроизводит, имитирует) какие-либо существенные черты объекта-оригинала. Вопрос о необходимой и достаточной мере сходства оригинала и модели требует конкретного анализа. Очевидно, модель утрачивает свой смысл как в случае тождества с оригиналом (тогда она перестает быть моделью), так и в случае чрезмерного во всех существенных отношениях отличия от оригинала. Таким образом, изучение одних сторон моделируемого объекта осуществляется ценой отказа от исследования других сторон. Поэтому любая модель замещает оригинал лишь в строго ограниченном смысле. Из этого следует, что для одного объекта может быть построено несколько «специализированных» моделей, концентрирующих внимание на определенных сторонах исследуемого объекта или же характеризующих объект с разной степенью детализации.
На втором этапе модель выступает как самостоятельный объект исследования. Одной из форм такого исследования является проведение «модельных» экспериментов, при которых сознательно изменяются условия функционирования модели и систематизируются данные о её «поведении». Конечным результатом этого этапа является множество (совокупность) знаний о модели.
На третьем этапе осуществляется перенос знаний с модели на оригинал формирование множества знаний. Одновременно происходит переход с «языка» модели на «язык» оригинала. Процесс переноса знаний проводится по определенным правилам. Знания о модели должны быть скорректированы с учетом тех свойств объекта-оригинала, которые не нашли отражения или были изменены при построении модели.
Четвёртый этап практическая проверка получаемых с помощью моделей знаний и их использование для построения обобщающей теории объекта, его преобразования или управления им.
Моделирование циклический процесс. Это означает, что за первым четырёхэтапным циклом может последовать второй, третий и т. д. При этом знания об исследуемом объекте расширяются и уточняются, а исходная модель постепенно совершенствуется. Недостатки, обнаруженные после первого цикла моделирования, обусловленные малым знанием объекта или ошибками в построении модели, можно исправить в последующих циклах.
Сейчас трудно указать область человеческой деятельности, где не применялось бы моделирование. Разработаны, например, модели производства автомобилей, выращивания пшеницы, функционирования отдельных органов человека, жизнедеятельности Азовского моря, последствий атомной войны. В перспективе для каждой системы могут быть созданы свои модели, перед реализацией каждого технического или организационного проекта должно проводиться моделирование.
Методы построения моделей
Используются два основных способа формирования геометрических элементов моделей - это построение по заданным отношениям (ограничениям) и построение с использованием преобразований.
Построение с использованием отношений
Построение с использованием отношений заключается в том, что задаются:
· элемент подлежащий построению и список отношений и элементы, к которым относятся отношения.
Например, построение прямой, проходящей через точку пересечения двух других прямых и касательную к окружности.
Используется два способа реализации построения по отношениям - общий и частный.
При общем способе реализации построение по заданным отношениям можно представить в виде двухшаговой процедуры:
· на основе заданных типов отношений, элементов и параметров строится система алгебраических уравнений,
· решается построенная система уравнений.
Очевидное достоинство такого способа - простота расширения системы - для введения нового отношения достаточно просто написать соответствующие уравнения.
Основные проблемы такого способа заключаются в следующем:
· построенная система уравнений может иметь несколько решений, поэтому требуется выбрать одно из них, например, в диалоговом режиме,
· система уравнений может оказаться нелинейной, решаемой приближенными методами, что может потребовать диалога для выбора метода(ов) приближенного решения.
В связи с отмеченными проблемами общий подход реализован только в наиболее современных системах и при достаточно высоком уровне разработчиков в области вычислительной математики [8].
Большинство же систем реализует частный подход, первым приходящий в голову и заключающийся в том, что для каждой триады, включающей строящийся элемент, тип отношения и иные элементы, затрагиваемые отношением, пишется отдельная подпрограмма (например построение прямой, касательной к окружности в заданной точке). Требуемое построение осуществляется выбором из меню и тем или иным вводом требуемых данных [6,].
Преимущества такого подхода ясны - проще писать систему. Не менее очевидны и недостатки, когда пользователю требуется использовать сильно разветвленные меню и/или запоминать мало вразумительные сокращения или пиктограммы, так как обычно число требуемых вариантов построения исчисляется сотнями. Расширение системы, реализуемое добавлением новой подпрограммы, требует ее перепроектирования, по крайней мере в части обеспечения доступа пользователя к новым возможностям. В некотором смысле предельный пример этого подхода - система AutoCAD фирмы Autodesk. Авторы даже гордятся сложностью системы: "AutoCAD предоставляет эту крайне сложную технологию" (Предисловие к Справочному руководству AutoCAD версии 2.5).
Понятно, что перспективы за общим подходом с разумным использованием частных решений. Вместе с тем устаревшие системы типа AutoCad скорее всего также будут продолжать использоваться в силу распространенности, сложившегося круга обученных пользователей и т.п.
Сплайн функция, область определения которой разбита на конечное число отрезков, на каждом из которых сплайн совпадает с некоторым алгебраическим полиномом. Максимальная степень из использованных полиномов называется степенью сплайна. Разность между степенью сплайна и получившейся гладкостью называется дефектом сплайна. Например, непрерывная ломаная есть сплайн степени 1 и дефекта 1.
Сплайны имеют многочисленные применения как в математической теории, так и в разнообразных вычислительных приложениях. В частности, сплайны двух переменных интенсивно используются для задания поверхностей в различных системах компьютерного моделирования.
Виды сплайнов
Как отмечалось выше, существует большое количество конструкций, которые называют сплайнами. Поэтому необходимо внести определенную классификацию в это многообразие, имея целью выделить те признаки, которые позволят выбрать сплайны годные для конкретной прикладной задачи.
Вид фрагментов сплайна. То, что сплайн состоит из фрагментов одинакового вида, является одним из ключевых признаков, что отличает его от других кусковых функций.
Самые известные сплайны состоящие из фрагментов алгебраических полиномов не выше заданной степени. Как правило, это кубические полиномы, или полиномы нечётных степеней: первой, третьей (кубический), пятой степени. Более высокие степени применяют редко из-за усложнения расчетов и сложностей, описанных в предыдущем разделе. Основным их преимуществом является простота расчетов и анализа. Недостатком является то, что относительно мало реальных физических процессов соответствуют этой зависимости.
Экспоненциальные сплайны. Если гибкую металлическую линейку, зафиксированную в узлах, натянуть, то решением дифференциального уравнения будет не алгебраический полином, а экспонента. Поэтому такие сплайны называют также напряженными. Экспонента описывает многие физические процессы в динамических системах. Недостатком является трудоёмкость расчета.
Тригонометрическими являются сплайны, фрагменты которых описываются тригонометрическими полиномами. Имеют достаточно сложные расчетные выражения. Более пятидесяти различных по виду фрагментов сплайнов описаны в работах Б. А. Попова.
Также существуют рациональные сплайны и сплайны Паде. Их особенностью является возможность разрыва производных на фрагментах, при непрерывности в узлах. М. Ансерме строит фракциональные сплайны, где фрагменты заданы с помощью гамма-функции.
Целесообразность применения фрагментов определенного вида основана на конкретных условиях задачи и ограничениях реализации. Как правило, основное требование это достижение заданной точности интерполяции при приемлемых затратах времени и ресурсов на реализацию. Удачный выбор фрагментов, который соответствует характеру процесса, позволяет сократить время вычислений и требуемый объём памяти.
Число фрагментов. Очевидно, что минимальное число фрагментов один. Классическое определение сплайна ограничивает число фрагментов определенным числом на конечном отрезке. Однако можно строить сплайны и с бесконечным числом фрагментов, а реально эти методы и алгоритмы, которые не нуждаются в информации об определенном количестве фрагментов. Представителями этих сплайнов являются кардинальные сплайны, исследованные Шенбергом. Для построения сплайнов с неограниченным числом фрагментов лучше подходят локальные сплайны.
Ширина фрагментов. Следует выделить сплайны с равной шириной фрагментов. Это позволяет значительно упростить расчетные выражения, ускорить работу алгоритмов и снизить затраты на реализацию. Определенного упрощения можно достичь за счёт применения фрагментов с кратной шириной. Существуют сплайны с нулевой шириной фрагментов (Де Бур). Это приводит к кратности узлов и возможности приближать сплайны с неразрывными фрагментами разрывных функций. Расчетные выражения получают в результате предельных переходов. Сплайны могут иметь также фрагменты с бесконечной шириной. Эти фрагменты должны быть крайними. Иногда это позволяет естественно задать краевые условия.
Условия стыковки фрагментов. Еще один важный признак, что отличает сплайны. Когда идет речь о сплайнах, как правило, считают, что фрагменты стыкуются гладко. То есть обеспечивается непрерывность значений и первой производной. Понятие дефекта сплайна связано с числом непрерывных производных, которые имеет функция-фрагмент определенного вида и числом производных, непрерывность которых гарантирована в узлах. Экспонента, синусоида имеют бесконечное число производных. Для них это понятие не имеет смысла. Поэтому удобнее говорить прямо о числе производных, непрерывность которых гарантирована в узлах сплайна. Практически речь идет о непрерывности значений и первой, максимум второй производной. Разрыв второй и высших производных визуально не заметно, поэтому учитывается редко. Понятно, что первая производная в точках стыка может задаваться по-разному. Наиболее распространены два приёма. Значение первой производной выбирается так, чтобы обеспечить непрерывность второй (глобальные кубические сплайны минимального дефекта). Первая производная равняется первой производной интерполируемой функции (возможно приближенно) в эрмитовых сплайнах.
Краевые условия. Если сплайны имеют ограниченное число фрагментов, то, естественно, у них отсутствуют крайние фрагменты слева и справа, поэтому крайние узлы не с чем стыковать. Исключением являются лишь периодические сплайны, которые имеют естественное продолжение. Иногда естественными называют краевые условия с нулевой производной, хотя никаких оснований считать их более естественными, чем другие, нет. Если сплайн имеет фрагменты одинаковой ширины, считают недостающие фрагменты той же ширины. Другой вариант это считать недостающие фрагменты продлёнными в бесконечность. Преимущество такого подхода в возможности экстраполяции. Можно считать ширину фрагментов нулевой. Расчетные выражения получают предельными переходами. Если взглянуть на краевые условия с точки зрения формирования сплайна из базисных функций, то они сводятся к продолжению соответствующих локальных базисных функций. Ширина соседних фрагментов влияет на их форму. А простое обрезание часто приводит к осцилляции и росту погрешности на краях. Важное значение краевые условия имеют при обработке изображений и в задачах с экстраполяцией.
Дополнительные ограничения. Они чаще всего касаются производных в узлах. Иногда они вытекают из физики процесса. Условия: неотъемлемость значений, равенство моментов, площадей, условия нормирования. Дополнительные условия иногда упрощают анализ свойств сплайнов, но могут серьезно затруднять построение и затраты реализации.
Сетка точек интерполяции. Может существенно влиять на эффективность расчетов. Важны случаи равномерной сетки и равномерной сетки, с расстоянием между точками, кратным расстоянию между узлами сплайна.
Локальные свойства базисных функций. Сплайн можно представить как сумму взвешенных базисных сплайнов. Существенным является ширина этих базисных функций. Так, в глобальных сплайнах базисные сплайны ненулевые на всём отрезке интерполяции. Хотя стоит заметить, что с определенной точностью (достаточной для многих технических расчетов) их можно считать локальными. У локальных сплайнов ширина базисных функций невелика (четыре фрагмента у кубических эрмитовых сплайнов). Это существенно влияет на эффективность расчетов и затраты реализации.
Форма представления. Функции, задающие фрагменты сплайна, как правило, зависят от множества параметров, благодаря которым они меняют свою форму. Значения параметров на каждом из фрагментов индивидуальны. Эти параметры могут задавать конкретный сплайн. Для полиномиальных сплайнов это полиномиальные коэффициенты. Так, сплайн можно представить множеством параметров функций на каждом из фрагментов. Назовем это представление пофрагментным. Такое представление является наглядным, часто имеет явный физический смысл. Но число параметров является чрезмерным. Так, для кубического сплайна необходимо иметь 4 * (r-1) параметров (r число узлов сплайна). Значительно более компактным является представление сплайна в виде полинома, через базисные сплайн-функции в виде:
где базисные сплайн-функции (как правило локальные), числовые коэффициенты, задающие вес базисных функций при формировании сплайна. Число параметров, задающих сплайн, равно числу узлов сплайна. Между параметрами функции на фрагменте и коэффициентами полинома-сплайна существует зависимость, что позволяет с одними коэффициентами находить другие, хотя формулы могут иметь достаточно сложный вид.
Содержание коэффициентов сплайна. Как отмечалось в предыдущем пункте, содержание параметров сплайна при пофрагментном представлении определяется типом функции. При полиномиальном представлении следует выделить случай, когда коэффициенты имеют тот же физический смысл, что и входные данные. То есть, коэффициенты являются значениями сплайна в узлах. Такую форму называют Лагранжевой, по аналогии с полиномом Лагранжа. Следует заметить, что базисные сплайны этой формы равны единице в центральном узле и нулю во всех остальных.
Особые сплайны. В ряде случаев рассматривают функции, которые находятся близко к границе между сплайнами и обычными функциями, а также сплайнами и кусковыми функциями. К примеру, это сплайны, состоящие из двух фрагментов. Имеют упрощенный вариант построения, но особое внимание следует уделять краевым условиям.
Аффинные преобразования плоскости
Аффинным преобразованием α называется такое преобразование плоскости, которое всякую прямую переводит в прямую и сохраняет отношение, в котором точка делит отрезок.
На рис.1: L'= α(L), A'=α(A), B'=α(B), C'=α(C), |
рис. 1
Преобразования - движение и подобие - являются частными случаями аффинных, так как в силу свойств движения и подобия для них выполнены все требования определения аффинных преобразований.
Приведем пример аффинного преобразования, не сводящегося к ранее рассмотренным. С этой целью сначала рассмотрим параллельное проектирование плоскости на плоскость.
Пусть даны плоскости: w и w1 прямая l (направление проектирования), не параллельная ни одной из этих плоскостей (рис.2). Точка Аєw называется проекцией точки А1єw1, если АА1||l , то прямая АА1 называется проектирующей прямой. Параллельное проектирование представляет собой отображение плоскости w1 на w.
рис.2
Отметим следующие свойства параллельного проектирования.
В самом деле, прямые, проектирующие точки прямой а1, образуют плоскость (она проходит через а1 параллельно l), которая при пересечении с w дает образ прямой а1 прямую а(рис.2).
(рис.2)
Сразу следует из теоремы о пересечении сторон угла параллельными прямыми.
Перейдем непосредственно к построению примера аффинного преобразования.
Возьмем два экземпляра плоскости w и один из них переместим в другое положение w1(рис.3). Новое положение какой-либо точки Аєw обозначим А1єw1. Теперь плоскость w1 спроектируем в каком-нибудь положении на w, проекцию точки А1 обозначим А'.
Получилось преобразование плоскости w на себя, при котором . В силу симметричных свойств параллельного проектирования для данного преобразования выполняются оба требования определенного аффинного преобразования, следовательно, построенное сейчас преобразование перспективно- аффинное.
рис.3
3)Основная теорема. Каковы бы ни были 2 аффинных репера и , существует единственное аффинное преобразование, которое первый переводит во второй.
Существование. Рассмотрим преобразование а, которое произвольную точку А, имеющую в репере R координаты (х,у), переводит в точку А', имеющую в репере R' те же координаты (рис.4). Очевидно, что а(R)=R'. Покажем, что а - аффинное преобразование.
рис. 4
Образом прямой l, имеющей в репере R уравнение ах+ву+с=0, будет линия l', которая в R' имеет то же самое уравнение. Значит, l'- прямая(рис.5). Следовательно, образом произвольной прямой является прямая.
рис. 5
Пусть теперь точка С(х,у) делит отрезок, соединяющий точки А(х1,у1), В(х2,у2) в отношении
А так как образы этих точек- А',В',С' имеют те же координаты(в другой системе), то и, следовательно,
Итак для преобразования α выполнены оба требования определения, значит α- аффинное преобразование.
Единственность доказательства от противного. Пусть существует два аффинных преобразования α1 и α2, при которых . Тогда найдется такая точка А, что , где (рис.6). Обозначим через К точку пересечения прямых ОА и Е1Е2(если эти прямые параллельны, то надо взять Е1А, ОЕ2, если и эти прямые параллельны, надо взять Е2А и ОЕ1). Так как , то образом точки К будет точка К'1-точка пересечения прямых . В силу определения аффинного преобразования:
Аналогично для преобразования α2.
Таким образом
рис. 6
Первое из этих равенств показывает, что точки К'1 и К'2 совпадают, а тогда из второго следует А'1=А'2, что противоречит А. Полученное противоречие доказывает теорему.
Основную теорему можно сформулировать иначе: каковы бы ни были два треугольника, существует единственное аффинное преобразование, переводящее один в другой.
Доказанная основная теорема делает понятие аффинного преобразования конструктивным. Аффинное преобразование задается парой произвольных аффинных реперов.
4)Уравнения аффинного преобразования получаются из основной теоремы и формул преобразования аффинных координат точно так же, как и уравнения движения и подобия. Пусть даны два репера и (рис. 7).
рис. 7
O'(c1,c2),
OM'=OO'+O'M'
получаются уравнения:
Эти уравнения записаны в аффинной системе координат. В частности они действуют и в прямоугольных декартовых координатах.
2.2 Свойства аффинного преобразования
Доказательство от противного. Предположим, что образом параллельных прямых l и m являются пересекающиеся в точке А' прямые l' и m'(рис.8). В силу взаимной однозначности преобразования точка имеет прообраз, который обозначим А. Но так как А'єl', то Аєl. Аналогично Аєm. Это противоречит параллельности прямых l и m.
рис. 8
2.При аффинном преобразовании сохраняется отношение двух отрезков, расположенных на одной прямой: (рис.9)
В самом деле, по определению аффинного преобразования:
.
рис. 9
3.При аффинном преобразовании сохраняется отношение параллельных отрезков.
Дано: АВ||СD. По свойству 2 будет также А'В'||С'D'(рис.10)
Надо доказать:
рис. 10
Для доказательства проведем АС, затем DL||AC. Построим также А'С' и D'L'||A'C'. По свойству 2 прямая DL переходит в D'L' и значит, . Теперь по определению: . Но AL=CD, A'L'=C'L', поэтому отсюда сразу получается требуемое.
4.При аффинном преобразовании угол и отношение произвольных отрезков, вообще говоря, не сохраняются, так как любой треугольник можно перевести в любой другой. Поэтому высота и биссектриса треугольника преобразуются обычно в другие линии, медиана же переходит в медиану, так как середина отрезка переходит в середину.
5. При аффинном преобразовании параллелограмм переходит в параллелограмм, трапеция в трапецию.
Как только сцена была смоделирована в трех измерениях и преобразована в двухмерный вид, она готова к визуализации. Этот заключительный шаг создания изображения, которое будет выведено на ваш экран, называется визуализацией или рендерингом (rendering или shading). Существует несколько различных методов визуализации, и сейчас мы коротко рассмотрим наиболее часто применяемые.
Каркасный метод
Каркасный метод визуализации (wireframe rendering) не предназначен для создания реалистичных изображений и не требует выполнения всех тех действий, которые мы обсуждали до этого. В каркасных моделях выводятся только края граней объектов сцены, изображаемые прямыми линиями. На рис. 2.22 изображена сетка, выведенная в каркасном режиме.
Рис. 2.22. Каркасный метод визуализации
Неосвещенный метод
Неосвещенный метод визуализации (unlit rendering) получил свое название из-за того, что при его применении наличие источников света игнорируется. Грани рисуются с использованием назначенных им цветов и текстур без учета значений освещенности или ориентации грани. Сцены с применением неосвещенного метода создаются быстро, но объекты в этих сценах оказываются похожими на силуэты. Рис. 2.23 показывает результат использования данного метода визуализации.
Рис. 2.23. Неосвещенный метод визуализации
Равномерная закраска
Равномерная закраска (flat shading) позволяет получить более реалистичное изображение, чем каркасный или неосвещенный методы визуализации. При равномерной закраске учитывается освещенность грани. Для каждой грани вычисляется нормаль, которая применяется для вычисления параметров освещенности всей грани. Равномерная закраска требует большего объема вычислений, чем каркасный и неосвещенный методы. Рис. 2.24 показывает сцену, визуализированную с применением равномерной закраски. Обратите внимание, как выделяется каждая грань.
Рис. 2.24. Изображение, полученное методом равномерной закраски
Метод Гуро
Закраска методом Гуро (Gouraud shading) подобна равномерной закраске, за исключением того, что нормали рассчитываются для каждой вершины вместо того, чтобы рассчитывать их для каждой грани. Грань закрашивается с использованием интерполяции значений освещенности в вершинах. Это приводит к сглаживанию изображения сеток, и отдельные грани становятся неразличимыми. Закраска методом Гуро позволяет получить реалистичные изображения, но может сделать объекты неотчетливыми и смутными. Поскольку используются нормали к вершинам и усредненные значения для грани, метод Гуро требует большего объема вычислений, чем равномерная закраска. Закраска по методу Гуро использовалась для рис. 2.25.
Рис. 2.25. Закраска по методу Гуро
Метод Фонга
Закраска по методу Фонга (Phong shading) является усовершенствованием метода Гуро. Подобно методу Гуро, в методе Фонга используются нормали вершин, однако, вместо интерполяции вычисленных для вершин значений, производится вычисление нормалей для каждой точки грани. Эта дополнительная работа обеспечивает более точный результат. Как вы можете догадаться, закраска по методу Фонга медленнее, чем закраска по методу Гуро. Иллюстрация для этого метода не приводится, поскольку на момент написания книги Direct3D не поддерживал закраску по методу Фонга.
Трассировка лучей
Трассировка лучей (ray-tracing) позволяет получить наиболее реалистичное изображение по сравнению с любым другим методом визуализации. Действительно, трассировка лучей известна как способ получения фотореалистичных и даже гиперреалистичных изображений. Трассировка лучей использует метод полностью отличный от методов, которые мы обсудили ранее. Алгоритм трассировки лучей автоматически вычисляет тени, отражения и преломления (другие методы визуализации не выполняют эти вычисления).
К сожалению, трассировка лучей очень медленна. Для получения одного изображения могут потребоваться часы и даже дни. Разумеется, трассировка лучей не подходит для графики в реальном масштабе времени и не поддерживается Direct3D. На рис. 2.26 приведено изображение, полученное методом трассировки лучей (с помощью программы POV-Ray).
Рис. 2.26. Сцена, полученная методом трассировки лучей
Технологии построения трехмерного изображения
Три основных понятия трехмерной графики:
Вершина
Полигон
Текстура
Любой трехмерный объект, каким бы сложным он ни был, можно представить в виде набора простейших полигонов, которыми являются треугольники.
Поскольку речь идет о трехмерной графике, то любой объект представляется в виде набора точек, называемых вершинами, в трехмерном пространстве. Каждая вершина в трехмерном пространстве характеризуется тремя координатами, а система координат определяется тремя осями: горизонтальной (ось X), вертикальной (ось Y) и глубины (ось Z). Соединяя вершины между собой, можно любую трехмерную поверхность аппроксимировать набором полигонов (многоугольников), простейшими из которых являются треугольники. Положение этих полигонов и задается вершинами. Понятно, что для формирования изображения полигоны необходимо закрасить. Для этого часто прибегают к текстурам. Текстура это двухмерное изображение, которое может «натягиваться» на трехмерные объекты с учетом их формы и положения.
Текстурирование трехмерных поверхностей это самый распространенный метод закрашивания. К примеру, если бы мы попробовали смоделировать кирпичную стену без технологии наложения текстур, то нам потребовалось бы прорисовывать множество отдельных граней для моделирования множества кирпичей. Текстура дает больше реализма и требует меньше вычислительных ресурсов, так как позволяет оперировать со всей стеной как с единой поверхностью. Все текстуры хранятся в памяти, обычно установленной на видеокарте.
Для того чтобы придать реалистичность формируемому изображению, необходимо рассчитать, какие именно объекты должны выводиться на экран, а какие не должны попасть в поле зрения, К примеру, если один объект находится спереди, а второй позади, то часть второго объекта должна быть невидимой.
Для решения этой задачи применяется метод, называемый Z-буферизация. В так называемом Z-буфере (буфере глубины) хранятся значения глубины всех пикселов (Z-координаты). Когда рассчитывается новый пиксел, его глубина сравнивается со значениями глубин уже рассчитанных пикселов с теми же координатами X и Y. Если новый пиксел имеет значение глубины больше какого-либо значения в Z-буфере, новый пиксел не записывается в буфер для отображения, если меньше записывается.
Процесс обработки текстур и информации кадрового буфера называется рендерингом (или процессом закраски).
Аппаратная реализация Z-буферизации значительно увеличивает производительность графической подсистемы. Главная характеристика Z-буфера это его разрешающая способность. Она критична для высококачественного отображения сцен с большой глубиной. Чем выше разрешающая способность, тем выше дискретность Z-координат и точнее выполняется рендеринг удаленных объектов. Если при рендеринге разрешающей способности не хватает, может случиться, что два перекрывающихся объекта получат одну и ту же координату Z, что вызовет искажение изображения. Как правило, видеокарты имеют 32-разрядный Z-буфер.
Кроме буфера глубины, позволяющего отсекать невидимые поверхности, для создания реалистичных трехмерных изображений необходимо учитывать, что объекты могут быть полупрозрачными. Эффект полупрозрачности создается путем объединения цвета исходного пиксела с пикселом, уже находящимся в буфере. В результате цвет точки является комбинацией цветов переднего и заднего плана. Для учета прозрачности объектов используется так называемый alpha-коэффициент прозрачности, который имеет значение от 0 до 1 для каждого цветового пиксела.
Очевидно, что для создания реалистичной картины происходящего на экране необходимо частое обновление его содержимого. При формировании каждого следующего кадра 3D-акселератор проходит весь путь подсчета заново, поэтому он должен обладать немалым быстродействием. Но в ЗD-графике применяются и другие методы придания плавности движению. Наиболее распространенный метод двойной буферизации (Double Buffering).
Для двойной буферизации требуется наличие двух областей, зарезервированных в буфере кадров. Метод Double Buffering использует два буфера кадров для получения изображения: один для отображения картинки, другой для рендеринга. B то время как отображается содержимое одного буфера, в другом происходит рендеринг. Когда очередной кадр обработан, буферы переключаются (меняются местами). Без применения двойной буферизации изображение не будет иметь требуемой плавности, то есть будет прерывистым.
Технологии повышения реалистичности трехмерного изображения
Для повышения реалистичности отображения наложенных на полигоны текстур используются самые различные технологии: технология сглаживания (Anti-Aliasing), технология текстурной фильтрации, технология MIP mapping и т. д,
Технологии создания анимации.
В настоящее время существует различные технологии создания анимации:
Классическая (традиционная) анимация представляет собой поочередную смену рисунков, каждый из которых нарисован отдельно. Это очень трудоемкий процесс, так как аниматорам приходится отдельно создавать каждый кадр.
Стоп-кадровая (кукольная) анимация. Размещенные в пространстве объекты фиксируются кадром, после чего их положение изменяется и вновь фиксируется.
Спрайтовая анимация реализуется при помощи языка программирования.
Морфинг преобразование одного объекта в другой за счет генерации заданного количества промежуточных кадров.
Цветовая анимация при ней изменяется лишь цвет, а не положение объекта.
3D-анимация создается при помощи специальных программ (например, 3D MAX). Картинки получаются путем визуализации сцены, а каждая сцена представляет собой набор объектов, источников света, текстур.
Захват движения (Motion Capture) первое направление анимации, которое дает возможность передавать естественные, реалистичные движения в реальном времени. Датчики прикрепляются на живого актера в тех местах, которые будут приведены в соответствие с контрольными точками компьютерной модели для ввода и оцифровки движения. Координаты актера и его ориентация в пространстве передаются графической станции, и анимационные модели оживают.
Этапы создания анимации
Применение компьютерных технологий значительно упростило процесс создания анимационных фильмов, но только некоторые работы действительно привлекают внимание зрителя.
За кажущейся легкостью компьютерной анимации должна стоять грандиозная подготовительная работа писателя, режиссера, художника…
Все основные этапы создания анимационного фильма были реализованы при выполнении проекта «Свидание», который представляет собой совокупность пластилиновой стоп-кадровой анимации и живого видео.
Первый этап работы над фильмом придумывание сюжета и написание литературного сценария, ведь даже самая высококачественная компьютерная графика не скроет отсутствия сюжета.
Второй этап создание персонажей, нахождение стиля и техники будущего фильма.
На третьем этапе определяется схема фильма, рассчитывается время для каждого сюжета.
На четвертом этапе формируется композиция кадра, определяется оптимальное для каждого героя движение и осуществляется реализация этого движения в виде коротких сюжетов.
Пятый этап монтаж созданных ранее сюжетов в программе Adobe Premier, музыкальное оформление фильма.
OpenGL является одним из самых популярных прикладных программных интерфейсов (API Application Programming Interface) для разработки приложений в области двумерной и трехмерной графики.
Стандарт OpenGL (Open Graphics Library открытая графическая библиотека) был разработан и утвержден в 1992 году ведущими фирмами в области разработки программного обеспечения как эффективный аппаратно-независимый интерфейс, пригодный для реализации на различных платформах. Основой стандарта стала библиотека IRIS GL, разработанная фирмой Silicon Graphics Inc.
Библиотека насчитывает около 120 различных команд, которые программист использует для задания объектов и операций, необходимых для написания интерактивных графических приложений.
На сегодняшний день графическая система OpenGL поддерживается большинством производителей аппаратных и программных платформ. Эта система доступна тем, кто работает в среде Windows, пользователям компьютеров Apple. Свободно распространяемые коды системы Mesa (пакет API на базе OpenGL) можно компилировать в большинстве операционных систем, в том числе в Linux.
Характерными особенностями OpenGL, которые обеспечили распространение и развитие этого графического стандарта, являются:
Стабильность. Дополнения и изменения в стандарте реализуются таким образом, чтобы сохранить совместимость с разработанным ранее программным обеспечением.
Надежность и переносимость. Приложения, использующие OpenGL, гарантируют одинаковый визуальный результат вне зависимости от типа используемой операционной системы и организации отображения информации. Кроме того, эти приложения могут выполняться как на персональных компьютерах, так и на рабочих станциях и суперкомпьютерах.
Легкость применения. Стандарт OpenGL имеет продуманную структуру и интуитивно понятный интерфейс, что позволяет с меньшими затратами создавать эффективные приложения, содержащие меньше строк кода, чем с использованием других графических библиотек. Необходимые функции для обеспечения совместимости с различным оборудованием реализованы на уровне библиотеки и значительно упрощают разработку приложений.
Наличие хорошего базового пакета для работы с трехмерными приложениями упрощает понимание студентами ключевых тем курса компьютерной графики моделирование трехмерных объектов, закрашивание, текстурирование, анимацию и т.д. Широкие функциональные возможности OpenGL служат хорошим фундаментом для изложения теоретических и практических аспектов предмета.
Основы OpenGL
Основные возможности
Описывать возможности OpenGL мы будем через функции его библиотеки. Все функции можно разделить на пять категорий:
Функции описания примитивов определяют объекты нижнего уровня иерархии (примитивы), которые способна отображать графическая подсистема. В OpenGL в качестве примитивов выступают точки, линии, многоугольники и т.д.
Функции описания источников света служат для описания положения и параметров источников света, расположенных в трехмерной сцене.
Функции задания атрибутов. С помощью задания атрибутов программист определяет, как будут выглядеть на экране отображаемые объекты. Другими словами, если с помощью примитивов определяется, что появится на экране, то атрибуты определяют способ вывода на экран. В качестве атрибутов OpenGL позволяет задавать цвет, характеристики материала, текстуры, параметры освещения.
Функции визуализации позволяет задать положение наблюдателя в виртуальном пространстве, параметры объектива камеры. Зная эти параметры, система сможет не только правильно построить изображение, но и отсечь объекты, оказавшиеся вне поля зрения.
Набор функций геометрических преобразований позволяют программисту выполнять различные преобразования объектов поворот, перенос, масштабирование.
При этом OpenGL может выполнять дополнительные операции, такие как использование сплайнов для построения линий и поверхностей, удаление невидимых фрагментов изображений, работа с изображениями на уровне пикселей и т.д.
Интерфейс OpenGL
OpenGL состоит из набора библиотек. Все базовые функции хранятся в основной библиотеке, для обозначения которой в дальнейшем мы будем использовать аббревиатуру GL. Помимо основной, OpenGL включает в себя несколько дополнительных библиотек.
Первая из них библиотека утилит GL(GLU GL Utility). Все функции этой библиотеки определены через базовые функции GL. В состав GLU вошла реализация более сложных функций, таких как набор популярных геометрических примитивов (куб, шар, цилиндр, диск), функции построения сплайнов, реализация дополнительных операций над матрицами и т.п.
OpenGL не включает в себя никаких специальных команд для работы с окнами или ввода информации от пользователя. Поэтому были созданы специальные переносимые библиотеки для обеспечения часто используемых функций взаимодействия с пользователем и для отображения информации с помощью оконной подсистемы. Наиболее популярной является библиотека GLUT (GL Utility Toolkit). Формально GLUT не входит в OpenGL, но de facto включается почти во все его дистрибутивы и имеет реализации для различных платформ. GLUT предоставляет только минимально необходимый набор функций для создания OpenGL-приложения. Функционально аналогичная библиотека GLX менее популярна. В дальнейшем в этом пособии в качестве основной будет рассматриваться GLUT.
Рис. 1 Организация библиотеки OpenGL
Кроме того, функции, специфичные для конкретной оконной подсистемы, обычно входят в ее прикладной программный интерфейс. Так, функции, поддерживающие выполнение OpenGL, есть в составе Win32 API и X Window. На рисунке схематически представлена организация системы библиотек в версии, работающей под управлением системы Windows. Аналогичная организация используется и в других версиях OpenGL.
Архитектура OpenGL
Функции OpenGL реализованы в модели клиент-сервер. Приложение выступает в роли клиента оно вырабатывает команды, а сервер OpenGL интерпретирует и выполняет их. Сам сервер может находиться как на том же компьютере, на котором находится клиент (например, в виде динамически загружаемой библиотеки DLL), так и на другом (при этом может быть использован специальный протокол передачи данных между машинами).
GL обрабатывает и рисует в буфере кадра графические примитивы с учетом некоторого числа выбранных режимов. Каждый примитив это точка, отрезок, многоугольник и т.д. Каждый режим может быть изменен независимо от других. Определение примитивов, выбор режимов и другие операции описываются с помощью команд в форме вызовов функций прикладной библиотеки.
Примитивы определяются набором из одной или более вершин (vertex). Вершина определяет точку, конец отрезка или угол многоугольника. С каждой вершиной ассоциируются некоторые данные (координаты, цвет, нормаль, текстурные координаты и т.д.), называемые атрибутами. В подавляющем большинстве случаев каждая вершина обрабатывается независимо от других.
С точки зрения архитектуры графическая система OpenGL является конвейером, состоящим из нескольких последовательных этапов обработки графических данных.
Команды OpenGL всегда обрабатываются в том порядке, в котором они поступают, хотя могут происходить задержки перед тем, как проявится эффект от их выполнения. В большинстве случаев OpenGL предоставляет непосредственный интерфейс, т.е. определение объекта вызывает его визуализацию в буфере кадра.
С точки зрения разработчиков, OpenGL это набор команд, которые управляют использованием графической аппаратуры. Если аппаратура состоит только из адресуемого буфера кадра, тогда OpenGL должен быть реализован полностью с использованием ресурсов центрального процессора. Обычно графическая аппаратура предоставляет различные уровни ускорения: от аппаратной реализации вывода линий и многоугольников до изощренных графических процессоров с поддержкой различных операций над геометрическими данными.
Рис. 2. Функционирование конвейера OpenGL
OpenGL является прослойкой между аппаратурой и пользовательским уровнем, что позволяет предоставлять единый интерфейс на разных платформах, используя возможности аппаратной поддержки.
Кроме того, OpenGL можно рассматривать как конечный автомат, состояние которого определяется множеством значений специальных переменных и значениями текущей нормали, цвета, координат текстуры и других атрибутов и признаков. Вся эта информация будет использована при поступлении в графическую систему координат вершины для построения фигуры, в которую она входит. Смена состояний происходит с помощью команд, которые оформляются как вызовы функций.
Уже отмечалось, что исторически САПР являются одними из первых систем, в которых применялись и применяются методы и средства компьютерной графики. По данным аналитической компании Daratech, в 2005 году объем мирового рынка САПР для проектирования промышленных объектов превысил 700 млн. долларов, а в 2006 году, по прогнозу, увеличится на 11% и достигнет примерно 801 млн. долларов. Это свидетельствует о продолжающемся росте спроса на такие системы в связи с развитием производства и повышением цен на нефть и другие энергоносители.
Научные лаборатории продолжают генерировать новые идеи в области визуализации. Задача сообщества компьютерной графики состоит в создании удобных инструментов и эффективных технологий, позволяющих пользователям продолжать научные изыскания за границей возможного и безопасного эксперимента. Например, проект виртуального туннеля NASA Ames Research Center переносит аэродинамические данные в мир виртуальной реальности, интерес к которой значительно вырос в девяностые годы. NASA Ames было одним из пионеров в использовании и развитии технологий погружения людей в мнимую реальность. Специалисты NASA занимались разработкой специальных шлемов и дисплеев, трехмерных аудиоустройств, уникальных устройств ввода для оператора и созданием соответствующего программного обеспечения. Возник ряд компаний, занимающихся виртуальной реальностью, например: Fakespace, Cristal River Engineering и Telepresence Research.
Грядет всплеск использования графики в анимации, особенно в области индустрии развлечений. Кинофильм Стивена Спилберга "Парк Юрского периода" установил в 1993 году новый стандарт фотореализма в графике. Этот фильм не единичный случай применения компьютерной графики в кино, и Голливуд расширяет сферу использования специальных эффектов компьютерной графики.
В вышедшем в 2002 фильме «Властелин колец: Две крепости» режиссера Питера Джексона было 920 эпизодов с компьютерными эффектами и 15 компьютерных персонажей. По приблизительным подсчетам, если бы всех компьютерных персонажей фильма «рендерили» на обычном домашнем компьютере, на это ушло бы порядка 460 лет, что составляет 4 миллиона процессорных часов. На аппаратной базе проводившей основную работу над фильмом студии Weta, состоящей более чем из тысячи рабочих станций Silicon Graphics и IBM Linux, обработка заняла около 10 месяцев. Этот фильм как нельзя лучше отображает текущий уровень компьютерной графики и технологий.
Можно предположить, что в обозримом будущем появятся полнометражные фильмы, где в главных ролях можно будет наблюдать персонажей, полностью выполненных на компьютере и очень естественно и полноценно взаимодействующих с живыми актерами. Технологические возможности достигнут таких позиций, сто зрителю будет крайне сложно отличить вымысел от реальности. Растущие требования киноиндустрии приводят к эволюции компьютерной графики.
Лаборатория Media Lab МТИ является уникальным исследовательским центром разработки совершенных систем взаимодействия "человек-компьютер". Например, система News в проекте Future использует последние достижения в области графики, реконструкции звука и изображений, а также моделировании различных объектов для представления новых результатов исследований и их презентации в виде соответствующих текстов, графики, аудио и видео.
В 1998 году произошла так называемая трехмерная революция, когда появились новые модели трехмерных ускорителей, интегрированных в обычные видеокарты. С этого момента рынок переживал планомерное падение удельной цены компьютерной графики для персональных компьютеров. В настоящее время положительные внедрения в процесс оптимизации обработки графической информации возникают чуть ли не каждый день, а стоимость аппаратных решений постоянно уменьшается. В конечном итоге можно ожидать появления видеокарт с потрясающими возможностями при низком уровне цен на них.
Компьютерные игры, разработанные в последнее время, как нельзя лучше отражают текущее состояние компьютерной графики. Производители игр стремятся как можно сильнее приблизиться к заветному рубежу реальности, предъявляя все более высокие требования к аппаратуре компьютера. Это, в свою очередь, подстегивает промышленность находить решения для удовлетворения запросов конечных пользователей. В итоге получается замкнутый круг, и вырваться из него вряд ли когда-либо получиться.
Уровень компьютерной графики достиг такого состояния, о котором не приходилось мечтать 30-40 лет назад. С каждым годом наблюдается все большее и большее совершенствование технологий и программного обеспечения. Растут потребности как профессиональных аниматоров, так и конечных пользователей. Компании, специализирующиеся на компьютерной графике, постоянно предлагают свои новые продукты, чтобы удовлетворить самые высокие запросы человечества.
PAGE 1